مقارنة لغات البرمجة (بناء الجملة)

تقارن هذه المقالة بين بنية العديد من لغات البرمجة البارزة .

تعابير الوجه

يمكن تصنيف تعابير لغات البرمجة بشكل عام إلى أربعة هياكل نحوية:

تدوين البادئة
تدوين الوسطي
اللاحقة، أو اللاحقة، أو تدوين اللغة البولندية العكسية
رموز رياضية

تحديد نطاق البيان

اللغة التي تدعم بنية العبارة عادة ما تحتوي على قواعد لواحد أو أكثر من الجوانب التالية:

  • فاصل العبارة – يشير إلى نهاية العبارة
  • فاصل العبارات – يحدد الحد الفاصل بين عبارتين؛ غير مطلوب للعبارة الأخيرة
  • استمرار السطر – يهرب من سطر جديد لمواصلة العبارة في السطر التالي

تُعرّف بعض اللغات حرفًا خاصًا كفاصل بين الأسطر، بينما تعتمد لغات أخرى، تُسمى اللغات الموجهة نحو الأسطر ، على سطر جديد . عادةً ما تتضمن اللغات الموجهة نحو الأسطر خاصية استمرار السطر، بينما لا تحتاج لغات أخرى إلى استمرار السطر لأن السطر الجديد يُعامل كأي مسافة بيضاء أخرى . توفر بعض اللغات الموجهة نحو الأسطر فاصلًا لاستخدامه بين العبارات في السطر الواحد.

لغةتحديد نطاق البيان
ABAPفترة مفصولة
آدافاصلة منقوطة
ألغولمفصول بفاصلة منقوطة
ALGOL 68مفصولة بفاصلة منقوطة وفاصلة [ 1 ]
APLتم إنهاء السطر الجديد، [Direct_function ⋄]تم الفصل
أبل سكريبتتم إنهاء السطر الجديد
أوتوهوتكيتم إنهاء السطر الجديد
محرجسطر جديد أو فاصلة منقوطة
أساسيتم إنهاء السطر الجديد، وتم فصل النقطتين الرأسيتين
بوتم إنهاء السطر الجديد
جالتعبيرات المنتهية بفاصلة منقوطة والمفصولة بفواصل
لغة سي++التعبيرات المنتهية بفاصلة منقوطة والمفصولة بفواصل
سي شاربفاصلة منقوطة
كوبولمفصولة بمسافات بيضاء، وأحيانًا بنقاط، ويمكن فصلها اختياريًا بفواصل أو فواصل منقوطة
الكوبراتم إنهاء السطر الجديد
كوفي سكريبتتم إنهاء السطر الجديد
كريستالالتعبيرات المنتهية بسطر جديد والمفصولة بفاصلة منقوطة
CSSفاصلة منقوطة
دفاصلة منقوطة
إيفلتم إنهاء السطر الجديد، وفصلت النقاط بفاصلة منقوطة
إرلانغتم فصل النقطتين، وانتهت الدورة الشهرية
فا#تم إنهاء السطر الجديد، فاصلة منقوطة
فورترانتم إنهاء السطر الجديد، وفصلت النقاط بفاصلة منقوطة
إلى الأمامتُستخدم الفاصلة المنقوطة لإنهاء تعريفات الكلمات؛ وتُستخدم المسافة لإنهاء استخدام الكلمات
GFA BASICتم إنهاء السطر الجديد
يذهبمفصولة بفاصلة منقوطة (أدخلها المترجم)
هاسكلفي صيغة do: يتم الفصل بين الأسطر الجديدة، وفي صيغة do مع الأقواس: يتم الفصل بين الفواصل المنقوطة
جافافاصلة منقوطة
جافا سكريبتيتم الفصل بينها بفاصلة منقوطة (ولكن غالبًا ما يتم إدخالها كفاصلة بين الجمل).
كوتلينيتم الفصل بينها بفاصلة منقوطة (ولكن يتم إدراجها ضمنيًا أحيانًا في أسطر جديدة)
لغة لوامفصولة بمسافات بيضاء (الفاصلة المنقوطة اختيارية)
ماثيماتيكا المعروفة أيضًا باسم وولفراممفصول بفاصلة منقوطة
MATLABيتم إنهاء السطر الجديد، ويتم الفصل بينهما بفاصلة منقوطة أو فاصلة (الفاصلة المنقوطة - نتيجة العبارة المتراجعة مخفية، الفاصلة - النتيجة معروضة)
المومبس أو Mيُنهي سطر جديد نطاق السطر، وهو الأقرب إلى "عبارة" في لغة M، حيث تفصل المسافة بين الأوامر أو تُنهيها، مما يسمح بظهور أمر آخر بعدها.
نيمتم إنهاء السطر الجديد
أوبجكت باسكال ( دلفي )مفصول بفاصلة منقوطة
أوبجكتيف سيفاصلة منقوطة
أوكاميلمفصول بفاصلة منقوطة
باسكالمفصول بفاصلة منقوطة
بيرلمفصول بفاصلة منقوطة
PHPفاصلة منقوطة
اختر الأساسيتم إنهاء السطر الجديد، وفصلت النقاط بفاصلة منقوطة
باور شيلتم إنهاء السطر الجديد، وفصلت النقاط بفاصلة منقوطة
مقدمةمفصولة بفاصلة (حرف عطف)، مفصولة بفاصلة منقوطة (حرف فصل)، منتهية بنقطة (جملة)
بايثونتم إنهاء السطر الجديد، وفصلت النقاط بفاصلة منقوطة
Rتم إنهاء السطر الجديد، وتم فصل النص بفاصلة منقوطة [ 2 ]
راكومفصول بفاصلة منقوطة
أحمرمفصول بمسافات بيضاء
روبيتم إنهاء السطر الجديد، وفصلت النقاط بفاصلة منقوطة
الصدأتنتهي الكلمات بفاصلة منقوطة، وتفصل الفاصلة بين العبارات.
سكالاتم إنهاء السطر الجديد، فاصلة منقوطة
سيد7مفصولة بفاصلة منقوطة (يُسمح بإنهاء الجملة بفاصلة منقوطة)
محاكاةمفصول بفاصلة منقوطة
دارجةمفصول بفاصلة منقوطة
أحاديث قصيرةفترة مفصولة
لغة الآلة القياسيةمفصول بفاصلة منقوطة
سويفتمفصولة بفاصلة منقوطة (أدخلها المترجم)
تي سي إلسطر جديد أو فاصلة منقوطة
V (Vlang)ينتهي السطر بسطر جديد، أو مفصول بفاصلة أو فاصلة منقوطة
فيجوال بيسكتم إنهاء السطر الجديد، وتم فصل النقطتين الرأسيتين
فيجوال بيسك (.NET)تم إنهاء السطر الجديد، وتم فصل النقطتين الرأسيتين
زوجوتم إنهاء السطر الجديد
زيجفاصلة منقوطة

استمرار السطر

فيما يلي بعض لغات البرمجة البارزة التي تعتمد على الأسطر وتوفر إمكانية استمرار النص في السطر. ما لم يُذكر خلاف ذلك، يجب أن يكون مُحدِّد الاستمرار هو النص الأخير في السطر.

علامة العطف (&)
رد فعل عكسي
علامة اقتباس معكوسة
واصلة
تسطير
علامة الحذف (ثلاث نقاط)
  • في MATLAB : لا يشترط أن تنتهي علامة الحذف (...) عند نهاية السطر، ولكن يتم تجاهل النص الذي يليها. [ 5 ] تبدأ هذه العلامة تعليقًا يمتد حتى (بما في ذلك) أول سطر جديد لاحق. قارن هذا بتعليق السطر الذي يمتد حتى السطر الجديد التالي.
فاصلة
  • روبي: قد يتبع التعليق المحدد
فاصل القوس الأيسر
رمز المشغل
  • روبي: كآخر عنصر في السطر؛ قد يتبع التعليق عامل التشغيل
  • AutoHotkey : كأول حرف في السطر المتواصل؛ أي عوامل تعبير باستثناء ++ و --، وفاصلة أو نقطة [ 7 ]
يُستخدم نوع من أنواع التعليقات على الأسطر كامتداد للسطر
موقع الشخصية
  • فورتران 77 : يُعتبر السطر غير التعليقي استمرارًا للسطر غير التعليقي السابق إذا ظهر أي حرف غير مسافة في العمود 6. لا يمكن استمرار الأسطر التعليقية.
  • COBOL : يمكن استكمال الثوابت النصية عن طريق عدم إنهاء السلسلة الأصلية في عبارة PICTURE بـ '، ثم إدراج -في العمود 7 (نفس موضع *التعليق المستخدم).
  • ملاحظة : الأسطر التي تبدأ بعلامة جدولة (بعد أي مسافة بادئة مطلوبة حسب السياق) تستمر في تنفيذ الأمر السابق.

يقوم مترجم لغة C بربط السلاسل النصية المتجاورة حتى لو كانت على أسطر منفصلة، ​​ولكن هذا ليس بناء جملة استمرار السطر لأنه يعمل بنفس الطريقة بغض النظر عن نوع المسافة البيضاء بين السلاسل النصية.

استهلاك البرامج الخارجية

تدعم لغات البرمجة طرقًا متنوعة للإشارة إلى البرامج الأخرى واستخدامها ضمن بنية اللغة. في بعض الحالات، يتم ذلك عن طريق استيراد الوظائف المُصدَّرة من مكتبة أو حزمة أو وحدة برمجية ، بينما في حالات أخرى، تكون الآليات أبسط، مثل تضمين ملفات نصية.

يمكن تصنيف الاستيراد حسب المستوى (الوحدة النمطية، الحزمة، الفئة، الإجراء، ...) وحسب بناء الجملة (اسم التوجيه، السمات، ...).

ملف مضمن

استيراد الملفات

استيراد الحزم

استيراد الفئة

استيراد الإجراءات/الدوال
  • from module import functionبايثون
  • import package.module : symbol;د
  • import package.module : altsymbolname = symbol;د
  • import Module (function)هاسكل
  • import function from "modname";جافا سكريبت
  • import {function} from "modname";جافا سكريبت
  • import {function as altname} from "modname";جافا سكريبت
  • import package.functionMATLAB
  • import package.class.functionسكالا
  • import package.class.{ function => alternativeName, otherFunction }سكالا
  • useModule('symbol');بيرل
  • use function Namespace\function_name;PHP
  • use Namespace\function_name as function_alias_name;PHP
  • using namespace::subnamespace::symbol;لغة C++
  • use module::submodule::symbol;الصدأ
  • use module::submodule::{symbol1, symbol2};الصدأ
  • use module::submodule::symbol as altname;الصدأ

استيراد مستمر

  • use const Namespace\CONST_NAME;PHP

يمكن أيضًا تصنيف العبارات المذكورة أعلاه حسب ما إذا كانت وسيلة ملائمة نحوية (تسمح بالإشارة إلى الأشياء باسم أقصر، ولكن لا يزال من الممكن الإشارة إليها باسم مؤهل بالكامل دون استيراد)، أو ما إذا كانت مطلوبة بالفعل للوصول إلى الكود (بدونها يستحيل الوصول إلى الكود، حتى مع الأسماء المؤهلة بالكامل).

سهولة التركيب النحوي

مطلوب للوصول إلى الرمز

تحديد حدود الكتلة

الكتلة البرمجية هي مجموعة من التعليمات البرمجية التي تُعامل كوحدة واحدة. يمكن أن تتكون العديد من صيغ الكتل البرمجية من أي عدد من العناصر (عبارات، أو تعابير، أو وحدات برمجية أخرى)، بما في ذلك عنصر واحد أو صفر. تحدد لغات البرمجة الكتلة البرمجية بطرق متنوعة: بعضها عن طريق تمييز النص، والبعض الآخر عن طريق التنسيق النسبي مثل مستويات المسافة البادئة.

الأقواس المعقوفة (المعروفة أيضًا باسم الأقواس المعقوفة) {...}
الأقواس (...)
الأقواس المربعة [...]
  • Rebol و Red و Self و Smalltalk (الكتل هي كائنات من الدرجة الأولى، وتُعرف أيضًا باسم الإغلاقات)
begin...end
do...end
do...done
do...end
  • Lua و Ruby (تمرير الكتل كوسائط، forحلقة تكرارية)، Seed7 (تضمين أجسام الحلقات التكرارية بين doو end)
X ... end(مثال if... end):
  • روبي ( عبارات if، while، until، def، class، moduleأوكاميل ( حلقات forو whileماتلاب ( ifشروط switchوحلقات forوعبارات whileو try، package، classdef، properties، ، methods، وكتل eventsو functionلوا ( then/ elseو function)
( begin...)
(توقعات ...)
( do...)
المسافة البادئة
آحرون

تعليقات

فيما يتعلق بتعريف اللغة، يمكن تصنيف بناء جملة التعليقات بعدة طرق، بما في ذلك:

  • الفرق بين التعليق السطري والتعليق الكتلي: يبدأ التعليق السطري بفاصل ويستمر حتى نهاية السطر ( علامة سطر جديد )، بينما يبدأ التعليق الكتلي بفاصل وينتهي بفاصل آخر، ويمكنه أن يمتد عبر الأسطر.
  • قابل للتداخل - ما إذا كان يمكن أن يكون تعليق الكتلة داخل تعليق كتلة آخر
  • كيفية تحليلها بالنسبة للغة؛ قد تقوم الأدوات (بما في ذلك المترجمات والمفسرات) أيضًا بتحليل التعليقات، ولكن قد يكون ذلك خارج تعريف اللغة.

طرق أخرى لتصنيف التعليقات التي لا تندرج ضمن تعريف اللغة:

  • التعليقات المضمنة مقابل التعليقات التمهيدية – يأتي التعليق المضمن بعد الكود في نفس السطر، بينما يسبق التعليق التمهيدي الكود البرمجي الذي يتعلق به؛ ويمكن استخدام التعليقات السطرية أو الكتلية كتعليقات مضمنة أو تمهيدية.
  • دعم إنشاء وثائق واجهة برمجة التطبيقات (API) خارج نطاق تعريف اللغة

تعليق السطر

رمزاللغات
Cمن Fortran I إلى Fortran 77 (C في العمود 1)
REMلغة بيسك ، ملفات الدفعات ، فيجوال بيسك
::ملفات الدفعات ، COMMAND.COM ، cmd.exe
NB.J ؛ من الاختصار الشائع (تاريخيًا) Nota bene ، وهي الكلمة اللاتينية التي تعني "لاحظ جيدًا".
APL ؛ والطريقة التذكيرية هي أن الرمز (النقطة التي تم ضربها بضربة حذاء) يشبه مصباح المكتب، وبالتالي "يضيء" ما سبق.
#Boo ، Bourne shell وغيرها من أغلفة UNIX ، Cobra ، Crystal ، Perl ، Python ، Ruby ، Seed7 ، PowerShell ، PHP ، R ، Make ، Maple ، Elixir ، Julia ، Nim [ 10 ]
%TeX ، Prolog ، MATLAB ، [ 11 ] Erlang ، S-Lang ، Visual Prolog ، PostScript
//ActionScript ، Boo ، C (C99) ، C++ ، C# ، D ، F# ، Go ، Java ، JavaScript ، Kotlin ، Object Pascal ( DelphiObjective-C ، PHP ، Rust ، Scala ، Sass ، Swift ، Xojo ، V (Vlang) ، Zig
'مونكي، فيجوال بيسك ، في بي سكريبت ، سمول بيسك ، جامباس ، زوجو
!فاكتور ، فورتران ، بيسك بلس، إنفورم، بيك بيسك
;معظم لغات التجميع ، AutoHotkey ، AutoIt ، Lisp ، Common Lisp ، Clojure ، PGN ، Rebol ، Red ، Scheme
--Euphoria ، Haskell ، SQL ، Ada ، AppleScript ، Eiffel ، Lua ، VHDL ، SGML ، PureScript ، Elm
*Assembler S/360 (* في العمود 1)، COBOL I إلى COBOL 85، PAW ، Fortran IV إلى Fortran 77 (* في العمود 1)، Pick Basic ، GAMS (* في العمود 1)
||حليقة
"Vimscript ، ABAP
\إلى الأمام
*>كوبول 90

حظر التعليق

في هذه الأمثلة، ~يُمثل النص محتوى التعليق، والنص المحيط به هو الفواصل. لا تُعتبر المسافات البيضاء (بما في ذلك سطر جديد ) فواصل.

بناء الجملةاللغات
comment~;ALGOL 60 ، محاكاة
¢~ ¢, #~ #, co~ co, comment~commentALGOL 68 [ 12 ] [ 13 ]
/*~*/ActionScript، AutoHotkey ، C، C++، C#، CSS ، D، [ 14 ] Go، Java ، JavaScript ، Kotlin ، Objective-C ، PHP ، PL/I ، Prolog ، Rexx ، Rust (قابلة للتداخل)، Scala (قابلة للتداخل)، SAS ، SASS، SQL، Swift (قابلة للتداخل)، V (Vlang) ، Visual Prolog
#cs~#ceAutoIt [ 15 ]
/+~+/D (يمكن أن يكون متداخلًا) [ 14 ]
/#~#/كوبرا (يمكن أن تكون متداخلة)
<#~#>باور شيل
<!--~-->HTML ، XML
=begin~=cutبيرل (التوثيق البسيط القديم)
#`(~)Raku (يمكن أن تكون أحرف الأقواس ()، <>، {}، []، أي أحرف Unicode ذات انعكاسات ثنائية الاتجاه، أو أحرف Unicode ذات خصائص Ps/Pe/Pi/Pf)
=begin~=endروبي
#<TAG>~ , ~ , ~ , ~ , ~ , ~#</TAG>#stopEOF#iffalse#endif#ifntrue#endif#if false#endif#if !true#endifS-Lang [ 16 ]
{-~-}هاسكل (يمكن أن تكون متداخلة)، إلم
(*~*)دلفي ، إم إل ، ماثيماتيكا ، أوبجكت باسكال ، باسكال ، سيد 7 ، أبل سكريبت ، أو كاميل (يمكن تداخلها)، ستاندرد إم إل (يمكن تداخلها)، مابل ، نيو سبيك ، إف شارب
{~}دلفي، أوبجكت باسكال، باسكال، PGN ، ريد
{#~#}نانجوكس، غصن
{{!~}}شارب ، مقود دراجة
{{!--~--}}المقابض (لا يمكن أن تكون متداخلة، ولكن قد تحتوي على {{و }})
|#~#|حليقة
%{~%}MATLAB [ 11 ] (يجب أن تكون الرموز في سطر منفصل)
#|~|#Lisp و Scheme و Racket (يمكن تضمينها في الثلاثة جميعها).
#=~=#جوليا [ 17 ]
#[~]#نيم [ 18 ]
--[[~ ]]، --[=[~ ]=]، --[==[~ ]==]إلخ.لغة لوا (يمكن أن تحتوي الأقواس على أي عدد من =الأحرف المتطابقة؛ ويمكن أن تكون متداخلة داخل محددات غير متطابقة)
"~"أحاديث قصيرة
(comment~)كلوجر
#If COMMENT Then~ [ أ ]#End Ifفيجوال بيسك (.NET)
#if COMMENT~ #endif[ ب ]سي شارب
' comment _، [ ج ]REM comment _لغة البرمجة الكلاسيكية Visual Basic ، VBA ، VBScript

أنواع فريدة

فورتران

يُعدّ وضع مسافة بادئة للأسطر في لغة فورتران 66/77 أمرًا بالغ الأهمية. يُكتب النص الفعلي في الأعمدة من 7 إلى 72 من السطر. أي حرف غير مسافة في العمود 6 يُشير إلى أن هذا السطر هو امتداد للسطر السابق. وجود علامة اقتباس مفردة (' C') في العمود 1 يُشير إلى أن هذا السطر بأكمله عبارة عن تعليق. قد تحتوي الأعمدة من 1 إلى 5 على رقم يُستخدم كعلامة. يتم تجاهل الأعمدة من 73 إلى 80، ويمكن استخدامها للتعليقات؛ في زمن البطاقات المثقبة ، كانت هذه الأعمدة تحتوي غالبًا على رقم تسلسلي لتسهيل فرز مجموعة البطاقات بالترتيب الصحيح في حال سقوطها عن طريق الخطأ. ألغى فورتران 90 الحاجة إلى قاعدة المسافة البادئة، وأضاف تعليقات الأسطر، مستخدمًا الحرف !كفاصل للتعليقات.

كوبول

في التعليمات البرمجية ذات التنسيق الثابت، يُعدّ ترتيب الأسطر مهمًا. يتم تجاهل الأعمدة من 1 إلى 6 والأعمدة من 73 فصاعدًا. إذا وُجدت قيمة a *أو /في العمود 7، فإن هذا السطر يُعتبر تعليقًا. حتى إصدار COBOL 2002، إذا وُجدت قيمة a Dأو dفي العمود 7، فإنها تُعرّف "سطر تصحيح الأخطاء" الذي يتم تجاهله ما لم يُطلب من المُصرّف ترجمته.

الكوبرا

يدعم برنامج كوبرا التعليقات المطولة باستخدام " /#... #/"، وهي تشبه " /*... */" الموجودة عادةً في لغات البرمجة المبنية على لغة C، ولكن مع اختلافين: أولهما، #إعادة استخدام الحرف من صيغة التعليق أحادي السطر " #..."، وثانيهما، إمكانية تداخل التعليقات المطولة، مما يُسهّل عملية التعليق على أجزاء كبيرة من التعليمات البرمجية.

حليقة

يدعم Curl التعليقات المضمنة مع علامات محددة من قبل المستخدم كما في |foo# ... #foo|.

لغة لوا

كما هو الحال مع السلاسل النصية الخام، يمكن أن يحتوي كل من وسم الفتح ووسم الإغلاق على عدد متطابق من علامات المساواة؛ وهذا يسمح بالتداخل طالما أن التعليقات/السلاسل النصية الخام المتداخلة تستخدم عددًا مختلفًا من علامات المساواة عن التعليق المحيط بها. --[[comment --[=[ nested comment ]=] ]]تتجاهل لغة Lua أول سطر جديد (إن وجد) يلي وسم الفتح مباشرةً.

بيرل

تُعتبر التعليقات المطولة في لغة بيرل جزءًا من التوثيق، ويُطلق عليها اسم " التوثيق البسيط القديم " (POD). من الناحية التقنية، لا يوجد في بيرل اتفاقية محددة لإدراج التعليقات المطولة في شفرة المصدر، ولكن يُستخدم التوثيق البسيط القديم بشكل روتيني كحل بديل.

PHP

يدعم PHP التعليقات القياسية على نمط C/C++، ولكنه يدعم نمط Perl أيضًا.

بايثون

إن استخدام علامات الاقتباس الثلاثية للتعليق على أسطر من التعليمات البرمجية المصدرية لا يشكل تعليقًا فعليًا. [ 19 ] يصبح النص المضمن سلسلة نصية حرفية، والتي يتجاهلها بايثون عادةً (إلا إذا كانت العبارة الأولى في جسم وحدة أو فئة أو دالة؛ انظر docstring ).

إكسير

الحيلة المذكورة أعلاه، والمستخدمة في بايثون، تعمل أيضًا في إليكسير، لكن المُصرّف سيُصدر تحذيرًا إذا رصدها. لتجاهل هذا التحذير، يجب إضافة رمز ~S(يمنع استيفاء السلاسل النصية) قبل السلسلة النصية المُحاطة بثلاث علامات اقتباس، ما يُؤدي إلى البنية النهائية ~S""" ... """. إضافةً إلى ذلك، تدعم إليكسير شكلًا محدودًا من التعليقات الكتلية كميزة لغوية رسمية، ولكن كما هو الحال في بيرل، فإن هذه البنية مُخصصة لكتابة التوثيق فقط. على عكس بيرل، لا يُمكن استخدامها كحل بديل، إذ تقتصر على أجزاء مُعينة من الكود، وتُصدر أخطاءً أو حتى تُعطّل الدوال إذا استُخدمت في أماكن أخرى. [ 20 ]

راكو

يستخدم راكو#`(...) للدلالة على التعليقات الكتلية. [ 21 ] يسمح راكو فعليًا باستخدام أي زوج من الأقواس "اليمنى" و"اليسرى" بعد #`(أي #`(...)، #`[...]و #`{...}، و #`<...>، وحتى الأقواس الأكثر تعقيدًا كلها تعليقات كتلية صالحة). كما يُسمح بتداخل الأقواس داخل التعليقات (أي، حتى آخر قوس إغلاق).#`{{...}}#`{ a { b } c }

روبي

يُفتح التعليق الكتلي في لغة روبي عند =beginالسطر 1 ويُغلق عند =endالسطر 2.

دارجة

يتجاهل المفسر منطقة الأسطر المحصورة بين علامتي و . يمكن أن يكون اسم الوسم أي سلسلة من الأحرف والأرقام تُستخدم للإشارة إلى كيفية فك تشفير الكتلة المحصورة. على سبيل المثال، قد يشير إلى بداية كتلة من وثائق LaTeX المنسقة.#<tag>#</tag>#<latex>

مخطط واحتيال

يمكن التعليق على المكون النحوي الكامل التالي (تعبير-s) باستخدام #;.

ABAP

يدعم ABAP نوعين مختلفين من التعليقات. إذا كان الحرف الأول من السطر، بما في ذلك المسافة البادئة، علامة نجمية (* *)، يُعتبر السطر بأكمله تعليقًا، بينما "تبدأ علامة اقتباس مزدوجة واحدة (*) تعليقًا ضمن السطر يستمر حتى نهايته. لا يمكن كتابة تعليقات ABAP بين العبارات، EXEC SQLوذلك لأن لغة SQL الأصلية لها استخدامات أخرى لهذه الأحرف. في معظم لهجات SQL، يمكن استخدام ENDEXECالشرطة المزدوجة (- ) بدلاً من ذلك.--

اللغات الباطنية

تتبع العديد من لغات البرمجة الباطنية الاتفاقية القائلة بأن أي نص لا يتم تنفيذه بواسطة مؤشر التعليمات (مثل Befunge ) أو يتم تعيين معنى له بطريقة أخرى (مثل Brainfuck ) يعتبر "تعليقًا".

مقارنة التعليقات

توجد أنماط كتابة متنوعة لكتابة التعليقات في الشيفرة المصدرية. BlockCommentيُستخدم الخط المائل هنا للإشارة إلى نمط التعليق الكتلي. LineCommentويُستخدم الخط المائل هنا للإشارة إلى نمط التعليق السطري.

لغةتعليق مضمنحظر التعليق
Ada و Eiffel و Euphoria و Occam و SPARK و ANSI SQL و VHDL-- LineComment
ALGOL 60comment BlockComment;
ALGOL 68¢ BlockComment ¢

commentBlockCommentcommentcoBlockCommentco# BlockComment #£ BlockComment £

APLLineComment
أبل سكريبت-- LineComment(* BlockComment *)
لغة التجميع (تختلف); LineComment  مثال واحد (معظم لغات التجميع تستخدم التعليقات السطرية فقط)
أوتوهوتكي; LineComment/* BlockComment */
AWK ، Bourne shell ، C shell ، Maple ، PowerShell# LineComment<# BlockComment #>
سحق# LineComment<<EOFBlockCommentEOF: 'BlockComment'
اللغة الأساسية (بلهجات مختلفة):'LineComment(ليست كل اللهجات)

*LineComment(ليست كل اللهجات) (ليست كل اللهجات) !LineCommentREM LineComment

C (K&R، ANSI/C89/C90)، CHILL ، PL/I ، REXX/* BlockComment */
C (C99) ، C++ ، Go ، Swift ، JavaScript ، V (Vlang)// LineComment/* BlockComment */
سي شارب// LineComment/// LineComment(تعليق على وثائق XML)/* BlockComment *//** BlockComment */(تعليق توثيق XML) (توجيه المترجم) [ ب ]#if COMMENT BlockComment#endif
من COBOL I إلى COBOL 85 * LineComment(* في العمود 7)
كوبول 2002*> LineComment
حليقة||LineComment|# BlockComment #|

|foo# BlockComment #|

الكوبرا# LineComment/# BlockComment #/(قابل للتداخل)
د// LineComment/// Documentation LineComment(تعليقات ddoc)/* BlockComment *//** Documentation BlockComment */(تعليقات ddoc)

/+ BlockComment +/(قابل للتداخل) (قابل للتداخل، تعليقات ddoc)/++ Documentation BlockComment +/

DCL$! LineComment
ECMAScript ( جافا سكريبت ، أكشن سكريبت ، إلخ.)// LineComment/* BlockComment */
إكسير# LineComment~S"""BlockComment"""@doc """BlockComment"""(الوثائق، تعمل فقط في الوحدات النمطية) (وثائق الوحدة النمطية) (وثائق النوع)@moduledocBlockComment"""@typedocBlockComment"""
إلى الأمام\ LineComment( BlockComment )(سطر واحد وأسطر متعددة)

( before -- after )اتفاقية التعليقات على المكدس

من FORTRAN I إلى FORTRAN 77C LineComment(ج في العمود 1)
فورتران 90 والإصدارات الأحدث! LineComment#if 0 BlockComment#endif[ د ]
هاسكل-- LineComment{- BlockComment -}
جNB.
جافا// LineComment/* BlockComment */

/** BlockComment */( تعليق على توثيق جافا دوك )

جوليا# LineComment#=BlockComment=#
لغة ليسب ، لغة سكيم; LineComment#|BlockComment|#
لغة لوا-- LineComment --[==[ BlockComment]==](عدد متغير من علامات المساواة، قابلة للتداخل مع محددات ذات أعداد مختلفة من علامات المساواة)
خشب القيقب# LineComment(* BlockComment *)
ماثيماتيكا(* BlockComment *)
MATLAB% LineComment%{BlockComment (nestable)%}[ هـ ]
نيم# LineComment#[BlockComment]#
أوبجكت باسكال// LineComment(* BlockComment *){ BlockComment }
أوكاميل(* BlockComment (* nestable *) *)
باسكال ، مودولا-2 ، مودولا-3 ، أوبيرون ، إم إل :(* BlockComment *)
بيرل ، روبي# LineComment=beginBlockComment=cut( =endفي لغة روبي) ( تعليق توثيقي لـ POD )

__END__Comments after end of code

PGN ، أحمر; LineComment{ BlockComment }
PHP# LineComment// LineComment/* BlockComment *//** Documentation BlockComment */( تعليقات توثيق PHP )
طيارR:LineComment
PLZ/SYS! BlockComment !
PL/SQL ، TSQL-- LineComment/* BlockComment */
مقدمة% LineComment/* BlockComment */
بايثون# LineComment'''BlockComment'''""" BlockComment """

( سلسلة التوثيق عند السطر الأول من الوحدة النمطية أو الفئة أو الطريقة أو الدالة)

R# LineComment
راكو# LineComment#`{BlockComment}

=comment    This comment paragraph goes until the next POD directive    or the first blank line.[ 23 ] [ 24 ]

الصدأ// LineComment

/// LineComment (تعليق rustdoc الخارجي) (تعليق rustdoc الداخلي) //! LineComment

/* BlockComment */ (قابل للتداخل)

/** BlockComment */ (تعليق rustdoc الخارجي) (تعليق rustdoc الداخلي) /*! BlockComment */

ساس* BlockComment;/* BlockComment */
سيد7# LineComment(* BlockComment *)
محاكاةcomment BlockComment;! BlockComment;
أحاديث قصيرة"BlockComment"
سمارتي{* BlockComment *}
لغة الآلة القياسية(* BlockComment *)
TeX ، LaTeX ، PostScript ، Erlang ، S-Lang% LineComment
معلومات تقنية@c LineComment

@comment LineComment

مدرس خاص* LineCommentcommand $$ LineComment
فيجوال بيسك'LineCommentRem LineComment'BlockComment _BlockCommentRem BlockComment _BlockComment[ ج ]
فيجوال بيسك (.NET)'LineComment

'''LineComment(تعليق على وثائق XML) Rem LineComment

#If COMMENT Then BlockComment#End If
مقدمة مرئية% LineComment/* BlockComment */
لغة وولفرام(* BlockComment *)
زوجو' LineComment// LineCommentrem LineComment
زيج// LineComment/// LineComment//! LineComment

انظر أيضاً

مراجع

  1. ثلاثة أنواع مختلفة من الجمل، كل منها يفصل العبارات والوحدات بشكل مختلف:
      1. العبارة التسلسلية باستخدام go-on-token (أي الفاصلة المنقوطة): ابدأ أ؛ ب؛ ج نهاية - يتم تنفيذ الوحدات بالترتيب.
      2. collateral-clause using and-also-token (viz. ","): begin a, b, c end – سيتم تحسين ترتيب التنفيذ بواسطة المترجم.
      3. العبارة المتوازية باستخدام رمز "و" أيضًا (أي ","): par begin a, b, c end – يجب تشغيل الوحدات في سلاسل متوازية.
  2. من تعريف لغة R ، القسم 3.2 هياكل التحكم: "تشير الفاصلة المنقوطة دائمًا إلى نهاية العبارة، بينما قد يشير سطر جديد إلى نهاية العبارة. إذا لم تكن العبارة الحالية مكتملة نحويًا، فإن المُقيِّم يتجاهل الأسطر الجديدة ببساطة."
  3. دليل مرجع Bash ، 3.1.2.1 حرف الهروب
  4. توثيق بايثون ، 2. التحليل المعجمي : 2.1.5. وصل الأسطر الصريح
  5. "Mathworks.com" . مؤرشف من الأصل في 7 فبراير 2010.
  6. "الأقواس - موجه أوامر ويندوز - SS64.com" . ss64.com .
  7. "البرامج النصية - التعريف والاستخدام | AutoHotkey" .
  8. لكي يكون ملف M (مصدر MATLAB) قابلاً للوصول إليه بالاسم، يجب أن يكون الدليل الأصل الخاص به موجودًا في مسار البحث (أو الدليل الحالي).
  9. 1 2 3 "الصيغة المطولة - F# | مايكروسوفت ليرن" . مايكروسوفت ليرن . 5 نوفمبر 2021. تم الاطلاع عليه في 17 نوفمبر 2022 .
  10. "دليل لغة نيم" . nim-lang.org .
  11. 1 2 "Mathworks.com" . مؤرشف من الأصل في 21 نوفمبر 2013. تم الاطلاع عليه في 25 يونيو 2013 .
  12. "Algol68_revised_report-AB.pdf" (الصفحات 61-62 من التقرير بصيغة PDF، والصفحات 121-122 من الوثيقة الأصلية) (PDF) . تم الاطلاع عليه بتاريخ 27 مايو 2014 .
  13. "نسخة HTML من تقرير Algol68 المنقح AB" . مؤرشف من الأصل بتاريخ 17 مارس 2013. تم الاطلاع عليه بتاريخ 27 مايو 2014 .
  14. 1 2 "DLang.org، المعجمي" . تم الاطلاع عليه بتاريخ 27 مايو 2014 .
  15. "مرجع الكلمات الرئيسية لموقع AutoItScript.com، #comments-start" . تم الاطلاع عليه بتاريخ 27 مايو 2014 .
  16. "slang-2.2.4/src/slprepr.c – السطر 43 إلى 113" . مؤرشف من الأصل بتاريخ 21 نوفمبر 2017. تم الاطلاع عليه بتاريخ 28 مايو 2014 .
  17. "علامات الترقيم · لغة جوليا" .
  18. "دليل لغة نيم" . nim-lang.org .
  19. «نصيحة بايثون: يمكنك استخدام السلاسل النصية متعددة الأسطر كتعليقات متعددة الأسطر» ، 11 سبتمبر 2011، غيدو فان روسوم
  20. "كتابة التوثيق - Elixir الإصدار 1.12.3" . تم الاطلاع عليه بتاريخ 28 يوليو 2023 .
  21. "توثيق بيرل 6 (بناء الجملة)" . docs.perl6.org. التعليقات . تم الاطلاع عليه في 5 أبريل 2017 .
  22. "استخدام معالج FPP المسبق" . مؤرشف من الأصل بتاريخ 18 نوفمبر 2022. تم الاطلاع عليه بتاريخ 18 نوفمبر 2022 .
  23. "تعليقات حول Perl 6 POD" . 25 مايو 2023.
  24. "Perl 6 POD (الكتل المختصرة)" . 25 مايو 2023.

ملحوظات

  1. لا يدعم Visual Basic (.NET) التعليقات التقليدية متعددة الأسطر، ولكن يمكن محاكاتها من خلال توجيهات المترجم.
  2. 1 2 بينما يدعم C# التعليقات الكتلية التقليدية/* ... */، يمكن استخدام توجيهات المترجم لمحاكاتها، كما هو الحال في VB.NET.
  3. ١ ٢ يمكن استخدام رمز استمرار السطر_لتمديد تعليق من سطر واحد إلى السطر التالي دون الحاجة إلى كتابة الرمز'مرةREMأخرى. ويمكن القيام بذلك حتى ٢٤ مرة متتالية.
  4. لا تدعم لغة فورتران التعليقات التقليدية على شكل كتل، ولكن بعض المترجمات تدعم توجيهات المعالج المسبق على غرار لغة C / C++ ، مما يسمح للمبرمج بمحاكاة التعليقات متعددة الأسطر. [ 22 ]
  5. يجب أن يكون رمز النسبة المئوية والأقواس هما الحرفان الوحيدان غير الفراغات على سطورهما الخاصة.