تعليق (برمجة حاسوبية)

رسم توضيحي لرمز مصدر Java مع تعليقات تمهيدية موضحة باللون الأحمر وتعليقات مضمنة باللون الأخضر . رمز البرنامج باللون الأزرق .

في برمجة الكمبيوتر ، التعليق هو شرح أو تعليق يمكن للإنسان قراءته في الكود المصدر لبرنامج الكمبيوتر . تتم إضافتها بغرض جعل الكود المصدر أسهل للفهم من قبل البشر، وعادة ما يتم تجاهلها من قبل المترجمين والمفسرين . [ 1 ] [2] يختلف بناء الجملة للتعليقات في لغات البرمجة المختلفة بشكل كبير.

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

إن المرونة التي توفرها التعليقات تسمح بدرجة كبيرة من التنوع، ولكن الاتفاقيات الرسمية لاستخدامها تشكل عادةً جزءًا من أدلة أسلوب البرمجة .

ملخص

يتم تنسيق التعليقات بشكل عام إما كتعليقات كتلة (تسمى أيضًا تعليقات المقدمة أو تعليقات التدفق ) أو تعليقات السطر (تسمى أيضًا تعليقات مضمنة ). [3]

تحدد التعليقات الكتلية منطقة من الكود المصدري والتي قد تمتد على عدة أسطر أو جزء من سطر واحد. يتم تحديد هذه المنطقة بفاصل بداية وفاصل نهاية . تسمح بعض لغات البرمجة (مثل MATLAB ) بتداخل التعليقات الكتلية بشكل متكرر داخل بعضها البعض، لكن لغات أخرى (مثل Java ) لا تسمح بذلك. [4] [5] [6]

تبدأ تعليقات السطر إما بفاصل تعليق وتستمر حتى نهاية السطر، أو في بعض الحالات، تبدأ عند عمود معين (إزاحة سطر الحرف) في الكود المصدر، وتستمر حتى نهاية السطر. [6]

تستخدم بعض لغات البرمجة التعليقات الكتلية والتعليقات السطرية مع فواصل تعليق مختلفة. على سبيل المثال، تحتوي لغة C++/* على تعليقات كتلية محددة بـ و */والتي يمكن أن تمتد إلى عدة أسطر وتعليقات سطر محددة بـ //. تدعم لغات أخرى نوعًا واحدًا فقط من التعليقات. على سبيل المثال، تعليقات Ada هي تعليقات سطرية: تبدأ بـ --وتستمر حتى نهاية السطر. [6]

الاستخدامات

إن أفضل طريقة للاستفادة من التعليقات هي محل نزاع؛ فقد قدم العديد من المعلقين وجهات نظر متنوعة ومتعارضة في بعض الأحيان. [7] [8] هناك العديد من الطرق المختلفة لكتابة التعليقات والعديد من المعلقين يقدمون نصائح متضاربة. [8]

التخطيط والمراجعة

يمكن استخدام التعليقات كشكل من أشكال الكود الزائف لتحديد النية قبل كتابة الكود الفعلي. في هذه الحالة، يجب أن تشرح التعليقات المنطق وراء الكود وليس الكود نفسه.

/* تكرار للخلف عبر جميع العناصر التي أعادها الخادم 
(يجب معالجتها بترتيب زمني)*/ 
for ( i = ( numElementsReturned - 0 ); i >= 1 ; i -- ) { /* معالجة بيانات كل عنصر */ updatePattern ( i , returnsElements [ i ]); }          
    
     

إذا تم ترك هذا النوع من التعليقات، فإنه يبسط عملية المراجعة من خلال السماح بالمقارنة المباشرة بين الكود والنتائج المقصودة. من المغالطات المنطقية الشائعة أن الكود الذي يسهل فهمه يقوم بما يفترض أن يقوم به.

وصف الكود

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

"لا توثق الكود السيئ - قم بإعادة كتابته." [9]
"لا تكرر التعليقات الجيدة الكود أو تشرحه. بل إنها توضح الغرض منه. يجب أن تشرح التعليقات، على مستوى تجريد أعلى من الكود، ما تحاول القيام به." [10]

يمكن أيضًا استخدام التعليقات لشرح سبب عدم توافق كتلة من التعليمات البرمجية مع الأعراف أو أفضل الممارسات. وينطبق هذا بشكل خاص على المشاريع التي لا تتطلب سوى وقت قليل جدًا للتطوير، أو في إصلاح الأخطاء. على سبيل المثال:

'المتغير الثاني dim بسبب أخطاء الخادم الناتجة عند إعادة استخدام بيانات النموذج. لا توجد 
وثائق متاحة حول مشكلة سلوك الخادم، لذا فقط الترميز حولها. 
vtx = server . mappath ( "local settings" )  

الوصف الخوارزمي

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

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

 list = [ f ( b ), f ( b ), f ( c ), f ( d ), f ( a ), ... ] ; // نحتاج إلى فرز مستقر. بالإضافة إلى ذلك، فإن الأداء لا يهم حقًا. insertion_sort ( list );            
 
  

إدراج الموارد

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

الجزء التالي من التعليمات البرمجية عبارة عن رسم تخطيطي بسيط بتنسيق ASCII يصور تدفق العملية لبرنامج نصي لإدارة النظام موجود في ملف نصي يعمل بنظام Windows Script Host . ورغم أن القسم الذي يشير إلى التعليمات البرمجية يظهر كتعليق، فإن الرسم التخطيطي نفسه يظهر في الواقع في قسم XML CDATA ، والذي يعتبر من الناحية الفنية مختلفًا عن التعليقات، ولكنه يمكن أن يخدم أغراضًا مماثلة. [13]

<!-- begin: wsf_resource_nodes --> 
<resource id= "ProcessDiagram000" > <![CDATA[ HostApp (Main_process)     |     V script.wsf (app_cmd) --> ClientApp (async_run, batch_process)                 |                 |                 V          mru.ini (mru_history)   ]]> </resource> 











على الرغم من أنه كان من الممكن بسهولة تضمين هذا الرسم التخطيطي المتطابق كتعليق، إلا أن المثال يوضح حالة واحدة حيث قد يختار المبرمج عدم استخدام التعليقات كطريقة لتضمين الموارد في الكود المصدر. [13]

البيانات الوصفية

غالبًا ما تقوم التعليقات الموجودة في برنامج الكمبيوتر بتخزين بيانات وصفية حول ملف البرنامج.

على وجه الخصوص، يقوم العديد من مطوري البرامج بوضع إرشادات الإرسال في التعليقات لمساعدة الأشخاص الذين يقرؤون الكود المصدر لهذا البرنامج على إرسال أي تحسينات يقومون بها إلى المطور.

تتضمن البيانات الوصفية الأخرى: اسم منشئ الإصدار الأصلي لملف البرنامج وتاريخ إنشاء الإصدار الأول، واسم المشرف الحالي على البرنامج، وأسماء الأشخاص الآخرين الذين قاموا بتحرير ملف البرنامج حتى الآن، وعنوان URL للوثائق حول كيفية استخدام البرنامج، واسم ترخيص البرنامج لملف البرنامج هذا، وما إلى ذلك.

عندما تعتمد خوارزمية في بعض أقسام البرنامج على وصف في كتاب أو مرجع آخر، يمكن استخدام التعليقات لإعطاء رقم الصفحة وعنوان الكتاب أو طلب التعليقات أو مرجع آخر.

تصحيح الأخطاء

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

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

إنشاء الوثائق تلقائيًا

تخزن أدوات البرمجة أحيانًا الوثائق والبيانات الوصفية في التعليقات. [14] قد تتضمن هذه مواضع الإدراج لإدراج ملف الرأس تلقائيًا، أو أوامر لتعيين وضع تمييز بناء الجملة للملف ، [15] أو رقم مراجعة الملف . [16] يُشار إلى تعليقات التحكم الوظيفية هذه أيضًا باسم التعليقات التوضيحية . يُعتبر الاحتفاظ بالوثائق داخل تعليقات التعليمات البرمجية المصدرية إحدى الطرق لتبسيط عملية التوثيق، فضلاً عن زيادة فرص تحديث الوثائق بالتغييرات في التعليمات البرمجية. [17]

تتضمن أمثلة مولدات الوثائق برامج Javadoc للاستخدام مع Java ، وDdoc لـ D ، وDoxygen لـ C ، وC++ ، وJava، و IDL ، و Visual Expert لـ PL/SQL ، وTransact-SQL ، و PowerBuilder ، و PHPDoc لـ PHP . تدعم Python و Lisp و Elixir و Clojure أشكال سلسلة الوثائق . [18]

تطبق لغات C# و F# و Visual Basic .NET ميزة مشابهة تسمى "تعليقات XML" والتي يتم قراءتها بواسطة IntelliSense من تجميع .NET المجمّع . [19]

تمديد بناء الجملة

في بعض الأحيان، يتم إعادة استخدام عناصر بناء الجملة التي كانت مخصصة في الأصل لتكون تعليقات لنقل معلومات إضافية إلى البرنامج، مثل " التعليقات الشرطية ". قد تكون مثل هذه "التعليقات الساخنة" هي الحل العملي الوحيد الذي يحافظ على التوافق مع الإصدارات السابقة، ولكن يُنظر إليها على نطاق واسع على أنها حل مؤقت . [20]

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

استخدامات التوجيه

هناك حالات يتم فيها استغلال أحرف التعليق العادية لإنشاء توجيه خاص لمحرر أو مترجم.

ومن الأمثلة على هذا التوجيه للمترجم:

  • " Shebang " Unix #!- يستخدم في السطر الأول من البرنامج النصي للإشارة إلى المترجم الذي يجب استخدامه.
  • "التعليقات السحرية" التي تحدد الترميز الذي يستخدمه ملف المصدر، [21] على سبيل المثال، PEP 263 في Python. [22]

يُظهر البرنامج النصي أدناه لنظام يشبه يونكس كلا من هذه الاستخدامات:

#!/usr/bin/env python3 
# -*- الترميز: UTF-8 -*- 
الطباعة ( "اختبار" )

يشبه إلى حد ما استخدام التعليقات في C للتواصل مع المترجم بأن "السقوط" الافتراضي في بيان الحالة تم عمدًا:

التبديل ( الأمر ) {  
    حالة CMD_SHOW_HELP_AND_EXIT : 
      do_show_help ();
      /* السقوط من خلال */
    الحالة CMD_EXIT : 
      do_exit ();
      استراحة ؛
    الحالة CMD_OTHER : 
      افعل_الآخر ();
      استراحة ؛
    /* ... إلخ. ... */
  }

كان إدراج مثل هذا /* Fall thru */التعليق للقراء البشر اتفاقية شائعة بالفعل، ولكن في عام 2017 بدأ مُجمِّع gcc في البحث عن هذه التعليقات (أو غيرها من مؤشرات القصد المتعمد)، وإذا لم يتم العثور عليها، فإنه يصدر: "تحذير: قد يفشل هذا البيان". [23]

ستقوم العديد من برامج التحرير وبيئات التطوير المتكاملة بقراءة التعليقات ذات التنسيق الخاص. على سبيل المثال، ميزة "modelline" في Vim ؛ والتي من شأنها تغيير طريقة تعاملها مع علامات التبويب أثناء تحرير مصدر ما مع تضمين هذا التعليق بالقرب من أعلى الملف:

# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

تخفيف التوتر

في بعض الأحيان، يقوم المبرمجون بإضافة تعليقات كوسيلة لتخفيف التوتر من خلال التعليق على أدوات التطوير، أو المنافسين، أو أصحاب العمل، أو ظروف العمل، أو جودة الكود نفسه. [24] يمكن ملاحظة حدوث هذه الظاهرة بسهولة من الموارد عبر الإنترنت التي تتعقب الألفاظ البذيئة في الكود المصدر. [25]

وجهات نظر معيارية

توجد وجهات نظر معيارية مختلفة وآراء راسخة منذ فترة طويلة فيما يتعلق بالاستخدام الصحيح للتعليقات في الكود المصدر. [26] [27] بعضها غير رسمي ويعتمد على التفضيل الشخصي، بينما يتم نشر أو إصدار البعض الآخر كإرشادات رسمية لمجتمع معين. [28]

الحاجة إلى التعليقات

لدى الخبراء وجهات نظر مختلفة حول ما إذا كانت التعليقات مناسبة في الكود المصدر، ومتى تكون كذلك. [9] [29] يؤكد البعض أن الكود المصدر يجب أن يُكتب مع القليل من التعليقات، على أساس أن الكود المصدر يجب أن يكون واضحًا بذاته أو موثقًا بذاته . [9] يقترح آخرون أن الكود يجب أن يكون مُعلقًا عليه على نطاق واسع (ليس من غير المألوف أن يكون أكثر من 50٪ من الأحرف غير المسافات البيضاء في الكود المصدري موجودة داخل التعليقات). [30] [31]

بين هذه الآراء هناك تأكيد على أن التعليقات ليست مفيدة ولا ضارة في حد ذاتها، وأن ما يهم هو أن تكون صحيحة ومتزامنة مع الكود المصدر، ويتم حذفها إذا كانت غير ضرورية أو مفرطة أو يصعب صيانتها أو غير مفيدة بأي شكل آخر. [32] [33]

يتم استخدام التعليقات في بعض الأحيان لتوثيق العقود في نهج التصميم حسب العقد في البرمجة.

مستوى التفاصيل

اعتمادًا على الجمهور المستهدف من الكود واعتبارات أخرى، قد يختلف مستوى التفاصيل والوصف بشكل كبير.

على سبيل المثال، سيكون التعليق التالي في Java مناسبًا في نص تمهيدي مصمم لتعليم البرمجة المبتدئة:

سلسلة s = "Wikipedia" ؛ /* تعيين القيمة "Wikipedia" للمتغير s. */    

ومع ذلك، فإن هذا المستوى من التفصيل لن يكون مناسبًا في سياق الكود الإنتاجي، أو المواقف الأخرى التي تنطوي على مطورين ذوي خبرة. مثل هذه الأوصاف الأولية تتعارض مع المبدأ التوجيهي: "التعليقات الجيدة ... توضح النية". [10] علاوة على ذلك، بالنسبة لبيئات الترميز الاحترافية، يتم تحديد مستوى التفصيل بشكل جيد عادةً لتلبية متطلب أداء محدد تحدده العمليات التجارية. [31]

الأنماط

هناك العديد من البدائل الأسلوبية المتاحة عند التفكير في كيفية ظهور التعليقات في الكود المصدر. بالنسبة للمشاريع الأكبر التي تتضمن فريقًا من المطورين، يتم الاتفاق على أنماط التعليقات قبل بدء المشروع، أو تتطور كمسألة اتفاقية أو حاجة مع نمو المشروع. عادةً ما يفضل المبرمجون الأنماط المتسقة وغير المعوقة وسهلة التعديل ويصعب كسرها. [34]

حظر التعليق

إن أجزاء التعليمات البرمجية التالية في لغة C تمثل مجرد مثال صغير لكيفية اختلاف التعليقات من الناحية الأسلوبية، مع الاستمرار في نقل نفس المعلومات الأساسية:

/* 
     هذا هو نص التعليق. 
     الاختلاف الأول. 
*/
/***************************\ 
* * 
* هذا هو نص التعليق. 
* 
* * 
\****************************/

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

مستشار البرمجيات والمعلق التكنولوجي ألين هولوب [35] هو أحد الخبراء الذين يدعون إلى محاذاة الحواف اليسرى للتعليقات: [36]

 /* هذا هو الأسلوب الموصى به من قبل Holub للغة C وC++. 
  * تم توضيح ذلك في ''Enough Rope''، في القاعدة 29. 
  */
 /* هذه طريقة أخرى للقيام بذلك، أيضًا في C. 
** من الأسهل القيام بذلك في المحررين الذين لا يقومون تلقائيًا بوضع مسافة بادئة للأسطر الثانية 
** خلال الأسطر الأخيرة من التعليق بمسافة واحدة من الأسطر الأولى. 
** يتم استخدامها أيضًا في كتاب Holub، في القاعدة 31. 
*/

تم توريث استخدام /* و */ كفاصلات لتعليقات الكتل من PL/I إلى لغة البرمجة B، السلف المباشر للغة البرمجة C. [37]

تعليقات الخط

تستخدم تعليقات السطر بشكل عام فاصلًا عشوائيًا أو سلسلة من الرموز للإشارة إلى بداية التعليق، وحرف سطر جديد للإشارة إلى نهاية التعليق.

في هذا المثال، سيتم تجاهل كل النص من الأحرف ASCII // إلى نهاية السطر.

// ------------------------- 
// هذا هو نص التعليق. 
// -------------------------

غالبًا ما يتعين على مثل هذا التعليق أن يبدأ من أقصى اليسار ويمتد إلى السطر بالكامل. ومع ذلك، في العديد من اللغات، من الممكن أيضًا وضع تعليق مضمنًا في سطر الأوامر، لإضافة تعليق إليه - كما في مثال Perl هذا:

طباعة $s . "\n" ; # إضافة حرف سطر جديد بعد الطباعة        

إذا كانت اللغة تسمح بكل من تعليقات السطر وتعليقات الكتلة، فقد تقرر فرق البرمجة استخدامهما بشكل مختلف: على سبيل المثال، تعليقات السطر فقط للتعليقات البسيطة، وتعليقات الكتلة لوصف التجريدات ذات المستوى الأعلى.

العلامات

قد يستخدم المبرمجون علامات غير رسمية في التعليقات للمساعدة في فهرسة المشكلات الشائعة. وقد يكون من الممكن البحث عنها باستخدام أدوات البرمجة الشائعة، مثل أداة grep في نظام التشغيل Unix أو حتى تمييزها من خلال بناء الجملة داخل محررات النصوص . يشار إليها أحيانًا باسم "علامات الكود" [38] [39] أو "الرموز"، وقد تساعدك أدوات التطوير حتى في سردها جميعًا. [40]

تختلف هذه العلامات على نطاق واسع، ولكنها قد تتضمن:

  • خطأ، تصحيح الأخطاء — خطأ معروف يجب تصحيحه.
  • FIXME — ينبغي تصحيحه.
  • HACK، BODGE، KLUDGE — الحل البديل.
  • TODO - شيء يجب القيام به.
  • ملحوظة - تستخدم لتسليط الضوء على الأخطاء الملحوظة بشكل خاص .
  • UNDONE — عكس أو "تراجع" عن الكود السابق.
  • XXX - تحذير المبرمجين الآخرين من الكود الإشكالي أو المضلل

أمثلة

مقارنة

تختلف الأعراف الطباعية المستخدمة في تحديد التعليقات بشكل كبير. علاوة على ذلك، توفر لغات البرمجة الفردية أحيانًا متغيرات فريدة.

آدا

تستخدم لغة البرمجة Ada علامة '--' للإشارة إلى التعليق حتى نهاية السطر.

على سبيل المثال:

  -- تتلقى مهمة مراقب الحركة الجوية طلبات للإقلاع والهبوط 
   نوع المهمة  Controller ( My_Runway : Runway_Access ) هو -- إدخالات المهمة لتمرير الرسائل المتزامنة entry Request_Takeoff ( ID : in Airplane_ID ; Takeoff : out Runway_Access ); entry Request_Approach ( ID : in Airplane_ID ; Approach : out Runway_Access ); end Controller ;   
      
           
          
    

أبل

يستخدم APL للإشارة إلى تعليق يصل إلى نهاية السطر.

على سبيل المثال:

⍝ الآن أضف الأرقام: 
ج أ + ب ⍝ الجمع 

في اللهجات التي تحتوي على البدائيات ("يسار") و ("يمين")، يمكن أن تكون التعليقات غالبًا داخل عبارات أو عبارات منفصلة، ​​في شكل سلاسل متجاهلة:

د 2 × ج 'حيث' ج أ + 'حد' ب    

أبل سكريبت

يعرض هذا القسم من كود AppleScript النمطين للتعليقات المستخدمين في هذه اللغة.

(* 
يعرض هذا البرنامج تحية. 
*) 
عند  عرض التحية ( myGreeting ) 
     يتم عرض مربع حوار  myGreeting  &  "world!" 
end  greeting

-- إظهار التحية 
( " مرحبا" )

أساسي

في هذا الجزء الكلاسيكي المبكر من كود BASIC، يتم استخدام الكلمة الأساسية REM ( "Remark" ) لإضافة التعليقات.

10 REM يوضح هذا البرنامج الأساسي استخدام عبارات PRINT وGOTO. 15 REM يملأ الشاشة بعبارة "HELLO" 20 PRINT "HELLO" 30 GOTO 20 
 
  
  

في إصدارات Microsoft BASIC اللاحقة، بما في ذلك Quick Basic ، وQ Basic ، و Visual Basic ، و Visual Basic .NET ، و VB Script ؛ وفي الإصدارات اللاحقة مثل FreeBASIC و Gambas، يتم أيضًا التعامل مع أي نص في السطر بعد حرف ' (علامة اقتباس أحادية) باعتباره تعليقًا.

مثال في Visual Basic .NET:

فئة عامة Form1 وفئة فرعية خاصة Button1_Click ( sender As Object و EventArgs ) تتعامل مع Button1 . انقر فوق الزر "يتم تنفيذ الكود التالي عندما ينقر المستخدم " على الزر في نافذة البرنامج. لا تزال تعليقات rem موجودة.  
             
        
        
        

        MessageBox . Show ( "Hello, World" ) 'إظهار نافذة منبثقة تحتوي على تحية End Sub End Class 
     
 

ج

يوضح هذا المقطع من التعليمات البرمجية بلغة C استخدام تعليق تمهيدي أو "تعليق كتلة" لوصف غرض العبارة الشرطية . يشرح التعليق المصطلحات والمفاهيم الأساسية، ويتضمن توقيعًا قصيرًا للمبرمج الذي ألف التعليمات البرمجية.

 /* 
  * تحقق مما إذا كنا قد تجاوزنا الحد الأقصى للعمليات، ولكن تأكد من 
  استبعاد الجذر. هذا ضروري لتمكين تسجيل الدخول 
  والأصدقاء من تعيين حد العملية لكل مستخدم إلى شيء أقل 
  من عدد العمليات التي يقوم الجذر بتشغيلها. -- Rik 
  */ 
if ( atomic_read ( & p -> user -> processes ) >= p -> rlim [ RLIMIT_NPROC ]. rlim_cur && ! able ( CAP_SYS_ADMIN ) && ! able ( CAP_SYS_RESOURCE )) goto bad_fork_free ;    
        
      

منذ C99، أصبح من الممكن أيضًا استخدام بناء الجملة // من C++، مما يشير إلى تعليق مكون من سطر واحد.


يتيح توفر تعليقات الكتلة وضع علامة على الاختراقات الهيكلية، أي الانتهاكات المقبولة لقاعدة الدخول الفردي/الخروج الفردي في البرمجة المنظمة ، بشكل واضح، كما هو الحال في المثال التالي:

static Edge edge_any ( Node n , Node m ) { // يُرجع ما إذا كانت أي حافة تقع بين العقدتين $n و$m. Edge e ; for ( e = n -> borders ; e ; e = e -> next ) { if ( e -> dst == m ) { /*********/ return e ; } } for ( e = m -> borders ; e ; e = e -> next ) { if ( e -> dst == n ) { /*****/ break ; } } return e ; }      
    
     
        
            
    
        
            
       
      

في العديد من اللغات التي تفتقر إلى تعليق كتلة، مثل awk ، يمكنك استخدام تسلسلات من فواصل العبارات مثل ;بدلاً من ذلك. ولكن من المستحيل القيام بذلك في اللغات التي تستخدم المسافة البادئة كإشارة صارمة إلى بنية الكتلة المقصودة، مثل Python .

تكوين Cisco IOS وIOS-XE

يمكن استخدام علامة التعجب ( ! ) لتمييز التعليقات في وضع تكوين جهاز توجيه Cisco، ومع ذلك لا يتم حفظ مثل هذه التعليقات في ذاكرة غير متطايرة (التي تحتوي على ملف تكوين بدء التشغيل)، ولا يتم عرضها بواسطة أمر "show run". [41] [42]

من الممكن إدراج محتوى يمكن قراءته بواسطة الإنسان وهو في الواقع جزء من التكوين، ويمكن حفظه في تكوين بدء تشغيل NVRAM عبر:

  • الأمر "الوصف"، المستخدم لإضافة وصف إلى تكوين واجهة أو جار BGP
  • معلمة "الاسم" لإضافة ملاحظة إلى مسار ثابت
  • أمر "الملاحظة" في قوائم الوصول
!الصق النص أدناه لإعادة توجيه حركة المرور يدويًا
تكوين t
int gi0/2
لا اغلاق
مسار IP 0.0.0.0 0.0.0.0 gi0/2 اسم ISP2
لا يوجد مسار IP 0.0.0.0 0.0.0.0 gi0/1 اسم ISP1
int gi0/1
اغلق
مخرج

كولد فيوجن

يستخدم ColdFusion تعليقات مشابهة لتعليقات HTML ، ولكن بدلاً من شرطتين، يستخدم ثلاث شرطات. يتم التقاط هذه التعليقات بواسطة محرك ColdFusion ولا يتم طباعتها في المتصفح.

مثل هذه التعليقات قابلة للتعشيش.

 <!--- يؤدي هذا إلى طباعة "Hello World" في المتصفح. 
   <!--- هذا تعليق مستخدم داخل التعليق الأول. 
   ---> 
---> 
 <cfoutput> 
   Hello World < br  /> 
 </cfoutput>

د

يستخدم D تعليقات بنمط C++، بالإضافة إلى تعليقات متعددة الأسطر بنمط D، والتي تبدأ بـ '/+' وتنتهي بـ '+/'.

// هذا تعليق مكون من سطر واحد. 
/* هذا تعليق مكون من عدة أسطر.

*/ 
/+ هذا هو 
  /+ تعليق متداخل +/ 
    +/

فورتران الرابع

يوضح هذا المقطع من التعليمات البرمجية للغة Fortran IV كيفية استخدام التعليقات في هذه اللغة، والتي تعتمد بشكل كبير على الأعمدة. يؤدي الحرف "C" في العمود 1 إلى معاملة السطر بالكامل كتعليق.

C 
C الأسطر التي تبدأ بحرف "C" (في العمود الأول أو عمود "التعليق") هي تعليقات 
C 
WRITE ( 6 , 610 )   610 FORMAT ( 12 H HELLO WORLD ) END       
   
      

لاحظ أن أعمدة السطر يتم التعامل معها عادةً كأربعة حقول: الحقل من 1 إلى 5 هو حقل التسمية، والحقل 6 يتسبب في اعتبار السطر استمرارًا للبيان السابق؛ أما الإعلانات والبيانات فتذهب في الحقل من 7 إلى 72.

فورتران 90

يوضح هذا الجزء من كود Fortran كيفية استخدام التعليقات في هذه اللغة، حيث تصف التعليقات نفسها قواعد التنسيق الأساسية.

! 
* * ...


       

هاسكل

تبدأ تعليقات الأسطر في Haskell بـ '--' (علامتي وصل) حتى نهاية السطر، وتبدأ تعليقات الأسطر المتعددة بـ '{-' وتنتهي بـ '-}'.

{- هذا تعليق 
على المزيد من الأسطر -} 
-- وهذا تعليق على سطر واحد 
putStrLn "Wikipedia" -- هذا تعليق آخر   

كما توفر لغة Haskell طريقة برمجة متعلمة للتعليق تُعرف باسم "Bird Style". [43] وفي هذه الطريقة يتم تفسير جميع الأسطر التي تبدأ بعلامة > على أنها كود، ويعتبر كل شيء آخر بمثابة تعليق. ومن المتطلبات الإضافية أن تترك دائمًا سطرًا فارغًا قبل وبعد كتلة الكود:

في نمط Bird، يجب عليك ترك مساحة فارغة قبل الكود.

> حقيقة :: عدد صحيح -> عدد صحيح > حقيقة 0 = 1 > حقيقة ( ن + 1 ) = ( ن + 1 ) * حقيقة ن    
   
      

ويجب عليك ترك سطر فارغ بعد الكود أيضًا.

يمكن أيضًا تنفيذ البرمجة المتقنة في Haskell باستخدام LaTeX . يمكن استخدام بيئة التعليمات البرمجية بدلاً من أسلوب Richard Bird: في أسلوب LaTeX ، يكون هذا معادلاً للمثال أعلاه، حيث يمكن تعريف بيئة التعليمات البرمجية في مقدمة LaTeX. فيما يلي تعريف بسيط:

\usepackage { حرفيًا } 
\newenvironment { الكود }{ \verbatim }{ \endverbatim }

في وقت لاحق

% ملف مصدر LaTeX تحسب مكالمة الدالة \verb 
| fact n| $ n ! $ إذا كان $ n \ge 0 $ ، فإليك التعريف: \\ \begin { code } fact :: Integer -> Integer fact 0 = 1 fact ( n + 1 ) = ( n + 1 ) * fact n \end { code } 
إليك المزيد من التوضيح باستخدام ترميز
 \LaTeX {} 

    
   
      

جافا

يعرض هذا الجزء من كود Java تعليقًا مطولًا يستخدم لوصف setToolTipTextالطريقة. يتوافق التنسيق مع معايير Sun Microsystems Javadoc . تم تصميم التعليق ليتم قراءته بواسطة معالج Javadoc.

/** 
* هذا تعليق كتلة في Java. 
* تسجل طريقة setToolTipText النص الذي سيتم عرضه في تلميح الأداة. 
* يتم عرض النص عندما يتوقف المؤشر فوق المكون. 
* 
* @param text السلسلة التي سيتم عرضها. إذا كان "text" فارغًا، 
* يتم إيقاف تشغيل تلميح الأداة لهذا المكون. 
*/ 
public void setToolTipText ( String text ) { // هذا تعليق مضمن في Java. TODO: كتابة التعليمات البرمجية لهذه الطريقة. }    
    

جافا سكريبت

يستخدم JavaScript // لتسبق التعليقات و/* */ للتعليقات متعددة الأسطر.

// تعليق JavaScript بسطر واحد 
var iNum = 100 ; var iTwo = 2 ; // تعليق في نهاية السطر /* تعليق JavaScript متعدد الأسطر */   
    




لوا

تستخدم لغة برمجة Lua علامات الوصل المزدوجة، --، للتعليقات على سطر واحد بطريقة مشابهة للغات Ada و Eiffel و Haskell و SQL و VHDL . تحتوي Lua أيضًا على تعليقات كتلة، تبدأ بـ --[[وتستمر حتى إغلاق]]

على سبيل المثال:


--[[ تعليق طويل 
متعدد الأسطر ]] 
طباعة ( 20 )    -- طباعة النتيجة

إحدى التقنيات الشائعة للتعليق على جزء من التعليمات البرمجية، [44] هي وضع التعليمات البرمجية بين --[[و --]]، كما هو موضح أدناه:

--[[ 
print(10) 
--]] 
-- لا يوجد إجراء (تم التعليق عليه)

في هذه الحالة، من الممكن إعادة تنشيط الكود عن طريق إضافة شرطة واحدة إلى السطر الأول:

---[[ 
طباعة ( 10 ) 
--]] 
--> 10

في المثال الأول، --[[تبدأ علامة the في السطر الأول تعليقًا طويلًا، ولا تزال الواصلتان في السطر الأخير داخل هذا التعليق. في المثال الثاني، ---[[تبدأ السلسلة تعليقًا عاديًا من سطر واحد، بحيث يصبح السطر الأول والأخير تعليقين مستقلين. في هذه الحالة، printتكون علامة the خارج التعليقات. في هذه الحالة، يصبح السطر الأخير تعليقًا مستقلاً، حيث يبدأ بعلامة --.

يمكن أن تكون التعليقات الطويلة في Lua أكثر تعقيدًا من هذه، كما يمكنك القراءة في القسم المسمى "السلاسل الطويلة" راجع البرمجة في Lua .

ماتلاب

في لغة برمجة MATLAB ، يشير الحرف '%' إلى تعليق من سطر واحد. تتوفر أيضًا تعليقات متعددة الأسطر عبر أقواس %{ و%} ويمكن تعشيشها، على سبيل المثال

% هذه هي المشتقات لكل حد 
d = [ 0 - 1 0     

%{ 
  %{ ( 
مثال     على تعليق متداخل، المسافة البادئة مخصصة لمستحضرات التجميل (ويتم تجاهلها).) 
% } نقوم   بتكوين 
التسلسل ، باتباع صيغة تايلور . لاحظ أننا نعمل على متجه . % } seq = d . * ( x - c ) . ^ n ./ ( factorial ( n ) )         
        

       

% نضيف للحصول على تقريب تايلور 
approx = sum ( seq )  

نيم

يستخدم Nim علامة "#" للتعليقات المضمنة. يتم فتح تعليقات الكتل متعددة الأسطر باستخدام "#[" وإغلاقها باستخدام "]#". يمكن تضمين تعليقات الكتل متعددة الأسطر.

يحتوي Nim أيضًا على تعليقات توثيقية تستخدم ترميز Markdown و ReStructuredText المختلط . تستخدم تعليقات التوثيق المضمنة '##' ويتم فتح تعليقات توثيق الكتل متعددة الأسطر باستخدام '##[' وإغلاقها باستخدام ']##'. يمكن للمترجم إنشاء توثيق HTML و LaTeX و JSON من تعليقات التوثيق. تعليقات التوثيق هي جزء من شجرة بناء الجملة المجردة ويمكن استخراجها باستخدام وحدات الماكرو. [45]

## توثيق الوحدة *ReSTructuredText* و**MarkDown** 
# هذا تعليق، ولكنه ليس تعليق توثيق.

النوع Kitten = object ## توثيق النوع age : int ## توثيق الحقل     
     

proc purr ( self : Kitten ) = ## توثيق الدالة echo "Purr Purr" # هذا تعليق، ولكنه ليس تعليق توثيق.   
  
     

# هذا تعليق، ولكنه ليس تعليقًا على الوثائق.

أوكامل

يستخدم OCaml تعليقات قابلة للتضمين، وهو أمر مفيد عند التعليق على كتلة التعليمات البرمجية.

codeLine (* مستوى التعليق 1(* مستوى التعليق 2*)*)

باسكال، دلفي

في باسكال ودلفي ، يتم تحديد التعليقات بواسطة '{ ... }'. يمكن أن تبدأ أسطر التعليقات أيضًا بـ '\\'. كبديل، بالنسبة لأجهزة الكمبيوتر التي لا تدعم هذه الأحرف، يُسمح بـ '(* ... *)'. [46]

في عائلة اللغات الحديثة لنيكلاوس ويرث (بما في ذلك Modula-2 و Oberon )، يتم تحديد التعليقات بواسطة '(* ... *)'. [47] [48]

على سبيل المثال:

(* اختبار الأقطار *) 
columnDifference := testColumn - column ؛ إذا ( row + columnDifference = testRow ) أو .......    
      
    

يمكن تضمين التعليقات. // يمكن تضمينها في {} ويمكن تضمين {} في (**).

بيرل

تبدأ تعليقات السطر في Perl ، والعديد من لغات البرمجة النصية الأخرى ، برمز التجزئة (#).

# مثال بسيط 
# 
my $s = "Wikipedia" ; # تعيين المتغير s إلى "Wikipedia". print $s . "\n" ; # إضافة حرف سطر جديد بعد الطباعة    
        

بدلاً من بناء التعليق الكتلي العادي، يستخدم Perl توثيقًا بسيطًا ، وهي لغة ترميز للبرمجة المتعلمة ، [49] على سبيل المثال: [50]

=item Pod::List-E<gt>new()

إنشاء كائن قائمة جديد. يمكن تحديد الخصائص من خلال 
مرجع تجزئة مثل هذا:

  قائمتي $list = Pod::List->new({ -start => $., -indent => 4 });

راجع الأساليب/الخصائص الفردية للحصول على التفاصيل.

=قطع

sub new { my $this = shift ؛ my $class = ref ( $this ) || $this ؛ my %params = @_ ؛ my $self = { %params bless $self ، $class ؛ $self -> initialize ()؛ return $self ؛ }  
       
         
       
       
      
    
     

ر

يدعم R فقط التعليقات المضمنة التي تبدأ بعلامة التجزئة (#).

# هذا تعليق 
مطبوع ( "هذا ليس تعليقًا" ) # هذا تعليق آخر  

راكو

يستخدم Raku (الذي كان يسمى سابقًا Perl 6) نفس تعليقات الأسطر وتعليقات توثيق POD مثل Perl العادي (انظر قسم Perl أعلاه)، لكنه يضيف نوع تعليق كتلة قابل للتكوين: "تعليقات متعددة الأسطر / مضمنة". [51]

تبدأ هذه النصوص بعلامة تجزئة، تليها علامة عكسية، ثم بعض أحرف الأقواس الافتتاحية، وتنتهي بعلامة الأقواس الختامية المطابقة. [51] لا يمكن للمحتوى أن يمتد إلى عدة أسطر فحسب، بل يمكن أيضًا تضمينه في السطر.

#`{{ "التعليق على" هذا الإصدار 
toggle-case(Str:D $s)

تبديل حالة كل حرف في السلسلة:

  سلسلة $toggled-string = toggle-case("اسمي هو مايكل!");

}}

sub  toggle-case ( Str:D  $s ) #`(يتم استخدام هذا الإصدار من الأقواس الآن) {
    ...
}

بي اتش بي

يمكن أن تكون التعليقات في PHP إما بنمط C++ (سواء مضمنة أو كتلية)، أو تستخدم علامات التجزئة. PHPDoc هو نمط مقتبس من Javadoc وهو معيار شائع لتوثيق كود PHP.

بدءًا من PHP 8، لا يمكن لعلامة # أن تعني تعليقًا إلا إذا لم يتبعها مباشرة '['. وإلا، فإنها تعني سمة دالة، والتي تعمل حتى ']':

/** 
* تحتوي هذه الفئة على توثيق نموذجي. 
* 
* @author Unknown 
*/ 
#[ Attribute ] 
class  MyAttribute  { 
    const  VALUE  =  'value' ; 
    // هذا تعليق مضمن. يبدأ بـ '//'، كما هو الحال في C++. 
    private  $value ; 
    # هذا تعليق مضمن على غرار يونكس، يبدأ بـ '#'. 
    public  function  __construct ( $value  =  null )  { 
        $this -> value  =  $value ; 
    } 
    /* 
    هذا تعليق متعدد الأسطر.

    لا يمكن تضمين هذه التعليقات. 
    */

}

باورشيل

التعليقات في Windows PowerShell

# تعليق على سطر واحد 
Write-Host  "مرحبا بالعالم!"

<#تعليق متعدد 
   السطور 
   #>

اكتب المضيف  "وداعا أيها العالم!"

بايثون

تستخدم التعليقات المضمنة في Python علامة التجزئة (#)، كما هو الحال في المثالين الموجودين في هذا الكود:

# يقوم هذا البرنامج بطباعة "Hello World" على شاشة 
الطباعة ( "Hello World!" )   # لاحظ بناء الجملة الجديد

لا توجد تعليقات كتلة، كما هو موضح في هذه المقالة، من الناحية الفنية في بايثون. [52] يمكن استخدام حرف سلسلة مجردة يتم تمثيلها بسلسلة مقتبسة ثلاثية، [53] ولكن لا يتم تجاهلها بواسطة المترجم بنفس الطريقة التي يتم بها تجاهل تعليق "#". [52] في الأمثلة أدناه، تعمل السلاسل المقتبسة الثلاثية بهذه الطريقة كتعليقات، ولكن يتم التعامل معها أيضًا كسلاسل توثيق :

""" 
بافتراض أن هذا هو الملف mymodule.py، فإن هذا السلسلة، كونها 
العبارة الأولى في الملف، ستصبح 
سلسلة توثيق وحدة "mymodule" عند استيراد الملف. 
"""

class  MyClass : 
"""سلسلة توثيق الفصل"""    

    def  my_method ( self ): 
"""سلسلة توثيق الطريقة"""        

def  my_function (): 
"""سلسلة توثيق الوظيفة"""    

روبي

تبدأ التعليقات المضمنة في Ruby برمز #.

لإنشاء تعليق متعدد الأسطر، يجب وضع "=begin" في بداية السطر، ثم يتم تجاهل كل شيء حتى "=end" الذي يبدأ السطر. يؤدي إضافة مسافة بعد علامة يساوي في هذه الحالة إلى حدوث خطأ في بناء الجملة.

يضع "هذا ليس تعليقًا" 

# هذا تعليق

يضع "هذا ليس تعليقًا" 

=بداية

كل ما يدخل في هذه السطور

هو فقط للقارئ البشري

=نهاية

يضع "هذا ليس تعليقًا" 

إس كيو إل

تكون التعليقات القياسية في SQL في شكل سطر واحد فقط، باستخدام شرطتين:

-- هذا تعليق من سطر واحد 
-- يتبعه سطر ثانٍ 
SELECT COUNT ( * ) FROM Authors WHERE Authors . name = 'Smith' ; -- ملاحظة: نريد فقط 'smith' -- يظهر هذا التعليق بعد كود SQL 
        
           
                                     

بدلاً من ذلك، يتم دعم صيغة تعليق مطابقة لنمط "التعليق الكتلي" المستخدم في صيغة C وJava بواسطة Transact-SQL و MySQL و SQLite و PostgreSQL و Oracle . [54] [55] [56] [57] [58]

يدعم MySQL أيضًا التعليقات من علامة التجزئة (#) إلى نهاية السطر.

سويفت

تبدأ التعليقات المكونة من سطر واحد بعلامتي شرطة مائلتين للأمام (//):

//هذا تعليق.

تبدأ التعليقات متعددة الأسطر بعلامة مائلة للأمام تليها علامة النجمة (/*) وتنتهي بعلامة النجمة تليها علامة مائلة للأمام (*/):

/* هذا أيضًا تعليق 
ولكنه مكتوب على عدة أسطر. */

يمكن تضمين التعليقات متعددة الأسطر في Swift داخل تعليقات متعددة الأسطر أخرى. يمكنك كتابة التعليقات المتداخلة عن طريق بدء كتلة تعليق متعددة الأسطر ثم بدء تعليق متعدد الأسطر ثانٍ داخل الكتلة الأولى. ثم يتم إغلاق الكتلة الثانية، متبوعة بالكتلة الأولى:

/* هذه هي بداية التعليق متعدد الأسطر الأول. 
/* هذا هو التعليق متعدد الأسطر الثاني المتداخل. */ 
هذه هي نهاية التعليق متعدد الأسطر الأول. */

XML (أو HTML)

يتم تقديم التعليقات في XML (أو HTML) باستخدام

< !--

ويمكن أن تنتشر على عدة أسطر حتى النهاية،

-->

على سبيل المثال،

<!-- حدد السياق هنا --> 
<param name= "context" value= "public" />   

من أجل التوافق مع SGML ، لا يُسمح باستخدام السلسلة "--" (علامة الوصل المزدوجة) داخل التعليقات.

القضايا الأمنية

في اللغات المفسرة، تكون التعليقات مرئية للمستخدم النهائي للبرنامج. في بعض الحالات، مثل أقسام الكود التي يتم "التعليق عليها"، قد يمثل هذا ثغرة أمنية . [59]

انظر أيضا

الملاحظات والمراجع

  1. ^ يمكن تقسيم الكود المصدر إلى كود برنامج (يتكون من تعليمات قابلة للترجمة آليًا)؛ وتعليقات ( تتضمن ملاحظات يمكن قراءتها من قبل البشر وأنواع أخرى من التعليقات التوضيحية لدعم كود البرنامج). بيني جروب، أرمسترونج تاكانج (2003). صيانة البرمجيات: المفاهيم والممارسة . وورلد ساينتيفيك. ص. 7، يرجى البدء 120-121. رقم ISBN 978-981-238-426-3.
  2. ^ لأغراض هذه المقالة، يتم التعامل مع تعليقات لغة البرمجة على أنها غير مميزة عن التعليقات التي تظهر في لغات الترميز وملفات التكوين وغيرها من السياقات المماثلة. علاوة على ذلك، غالبًا ما يتم دمج لغة الترميز بشكل وثيق مع كود لغة البرمجة، وخاصة في سياق إنشاء الكود . انظر على سبيل المثال، Ganguli، Madhushree (2002). Making Use of Jsp . New York: Wiley. ISBN 978-0-471-21974-3.، هيويت، إيبن (2003). جافا لمطوري كولد فيوجن . أبر سادل ريفر: بيرسون للتعليم. رقم ISBN 978-0-13-046180-3.
  3. ^ Dixit, JB (2003). Computer Fundamentals and Programming in C . Laxmi Publications. ISBN 978-81-7008-882-0.
  4. ^ هيغام، ديزموند (2005). دليل MATLAB . SIAM. ISBN 978-0-89871-578-1.
  5. ^ Vermeulen, Al (2000). The Elements of Java Style. Cambridge University Press. ISBN 978-0-521-77768-1.
  6. ^ abc "استخدام التعليق الصحيح في جافا". 2000-03-04 . تم الاسترجاع في 2007-07-24 .
  7. ^ WR, Dietrich (2003). Applied Pattern Recognition: Algorithms and Implementation in C++ . Springer. ISBN 978-3-528-35558-6.يقدم وجهات نظر حول الاستخدام الصحيح للتعليقات في الكود المصدر. ص 66.
  8. ^ ab Keyes, Jessica (2003). دليل هندسة البرمجيات . CRC Press. ISBN 978-0-8493-1479-7.يناقش التعليقات و"علم التوثيق" ص 256.
  9. ^ abc عناصر أسلوب البرمجة ، كيرنيجان وبلاوجر
  10. ^ ab Code Complete ، McConnell
  11. ^ Spinellis, Diomidis (2003). Code reading: The Open Source Perspective . Addison-Wesley. ISBN 978-0-201-79940-8.
  12. ^ "CodePlotter 1.6 – إضافة وتحرير المخططات في الكود الخاص بك باستخدام هذه الأداة "المشابهة لبرنامج Visio". مؤرشف من الأصل في 2007-07-14 . تم الاسترجاع في 2007-07-24 .
  13. ^ ab Niederst, Jennifer (2006). Web Design in a Nutshell: A Desktop Quick Reference . O'Reilly. ISBN 978-0-596-00987-8.في بعض الأحيان، ينطوي الاختلاف بين "التعليق" وعناصر بناء الجملة الأخرى في لغة البرمجة أو لغة الترميز على فروق دقيقة. يشير نيدرست إلى أحد هذه المواقف بقوله: "للأسف، تعتبر برامج XML التعليقات معلومات غير مهمة وقد تزيل التعليقات ببساطة من المستند قبل معالجته. لتجنب هذه المشكلة، استخدم قسم XML CDATA بدلاً من ذلك."
  14. ^ انظر على سبيل المثال، Wynne-Powell, Rod (2008). Mac OS X for Photographers: Optimized Image Workflow for the Mac User. Oxford: Focal Press. p. 243. ISBN 978-0-240-52027-8.
  15. ^ لامب، ليندا (1998). تعلم المحرر السادس. سيباستوبول: أوريلي وشركاؤه. رقم ISBN 978-1-56592-426-0.يصف استخدام بناء جملة النموذج في ملفات تكوين Vim.
  16. ^ انظر على سبيل المثال، برلين، دانييل (2006). التخريب العملي، الطبعة الثانية . بيركلي: أبريس. ص. 168. رقم ISBN 978-1-59059-753-8.
  17. ^ Ambler, Scott (2004). The Object Primer: Agile Model-Driven Development with UML 2.0 . Cambridge University Press. ISBN 978-1-397-80521-8.
  18. ^ تعريف الوظيفة باستخدام سلسلة توثيق في Clojure
  19. ^ Murach. C# 2005 . ص 56.
  20. ^ ج2: التعليقات الساخنة
  21. ^ "class Encoding". Ruby . ruby-lang.org . تم الاسترجاع في 5 ديسمبر 2018 .
  22. ^ "PEP 263 – تعريف ترميزات الكود المصدري لـ Python". Python.org . تم الاسترجاع في 5 ديسمبر 2018 .
  23. ^ Polacek, Marek (2017-03-10). "-Wimplicit-fallthrough in GCC 7". Red Hat Developer . Red Hat . تم الاسترجاع في 10 فبراير 2019 .
  24. ^ ليزا إيديسيكو (27 مارس 2014). "مبرمجو مايكروسوفت يخفون مجموعة من الألفاظ النابية في أكواد البرامج المبكرة". بيزنس إنسايدر أستراليا . مؤرشف من الأصل في 29 ديسمبر 2016.
  25. ^ (انظر على سبيل المثال، Linux Swear Count).
  26. ^ Goodliffe, Pete (2006). Code Craft . سان فرانسيسكو: No Starch Press. ISBN 978-1-59327-119-0.
  27. ^ سميث، ت. (1991). مبادئ وتقنيات البرمجة المتوسطة باستخدام باسكال . بلمونت: شركة ويست للنشر. رقم ISBN 978-0-314-66314-6.
  28. ^ انظر على سبيل المثال، Koletzke, Peter (2000). Oracle Developer Advanced Forms & Reports . Berkeley: Osborne/McGraw-Hill. ISBN 978-0-07-212048-6.الصفحة 65.
  29. ^ "أسوأ الممارسات - التعليقات السيئة" . تم الاسترجاع في 2007-07-24 .
  30. ^ موريللي، رالف (2006). جافا، جافا، جافا: حل المشكلات الموجهة للكائنات . كلية برنتيس هول. رقم ISBN 978-0-13-147434-5.
  31. ^ "كيفية كتابة تعليقات المستندات لأداة Javadoc" . تم الاسترجاع في 2007-07-24 .تحدد إرشادات Javadoc أن التعليقات تشكل أهمية بالغة بالنسبة للمنصة. علاوة على ذلك، فإن المستوى المناسب من التفاصيل محدد بشكل جيد إلى حد ما: "نحن نقضي الوقت والجهد في التركيز على تحديد الشروط الحدودية ونطاقات الحجج والحالات الخاصة بدلاً من تحديد مصطلحات البرمجة الشائعة وكتابة النظرة العامة المفاهيمية وإدراج الأمثلة للمطورين".
  32. ^ يوردون، إدوارد (2007). تقنيات هيكل البرنامج وتصميمه . جامعة ميشيغان. 013901702X.يمكن أن تجعل التعليقات غير الموجودة من الصعب فهم الكود، ولكن التعليقات قد تكون ضارة إذا كانت قديمة أو مكررة أو غير صحيحة أو تجعل من الصعب فهم الغرض المقصود من الكود المصدر.
  33. ^ Dewhurst, Stephen C (2002). C++ Gotchas: Avoiding Common Problems in Coding and Design . Addison-Wesley Professional. ISBN 978-0-321-12518-7.
  34. ^ "Coding Style". مؤرشف من الأصل في 2007-08-08 . تم الاسترجاع في 2007-07-24 .
  35. ^ "Allen Holub". مؤرشف من الأصل في 20 يوليو 2007. تم استرجاعه في 24 يوليو 2007 .
  36. ^ ألين هولوب، حبل كافٍ لإطلاق النار على قدمك ، ISBN 0-07-029689-8 ، 1995، ماكجرو هيل 
  37. ^ كين تومسون. "مرجع المستخدمين إلى B" . تم الاسترجاع في 2017-07-21 .
  38. ^ "PEP 0350 – Codetags"، مؤسسة برمجيات بايثون
  39. ^ "لا تنسَ أبدًا أي شيء قبل وبعد وأثناء الترميز"، باستخدام تعليقات "codetag" كبقايا إنتاجية
  40. ^ "استخدام قائمة المهام"، msdn.microsoft.com
  41. ^ "اترك تعليقًا في running-config". شبكة تعليم سيسكو (منتدى المناقشة) .
  42. ^ "دليل إدارة ملفات التكوين لنظام Cisco IOS XE الإصدار 3S (سلسلة ASR 900)".
  43. ^ "البرمجة المتعلمة". haskell.org .
  44. ^ "البرمجة في لغة Lua 1.3". www.Lua.org . تم الاسترجاع في 2017-11-08 .
  45. ^ macros.extractDocCommentsAndRunnables
  46. ^ كاثلين جنسن، نيكلاوس ويرث (1985). دليل مستخدم باسكال والتقرير . سبرينغر-فيرلاغ. رقم ISBN 0-387-96048-1.
  47. ^ نيكلاوس ويرث (1983). البرمجة في Modula-2 . سبرينغر-فيرلاغ. رقم ISBN 0-387-15078-1.
  48. ^ * مارتن ريزر، نيكلاوس ويرث (1992). البرمجة في أوبيرون . أديسون ويسلي. ISBN 0-201-56543-9.
  49. ^ "perlpod – تنسيق التوثيق القديم البسيط" . تم الاسترجاع في 12 سبتمبر 2011 .
  50. ^ "Pod::ParseUtils – مساعدات لتحليل POD وتحويله" . تم الاسترجاع في 12 سبتمبر 2011 .
  51. ^ "وثائق Perl 6 – بناء الجملة (التعليقات)" . تم الاسترجاع في 2017-04-06 .
  52. ^ ab "Python 3 Basic Syntax". مؤرشف من الأصل في 19 أغسطس 2021 . تم الاسترجاع في 25 فبراير 2019 . يتم التعامل مع علامات الاقتباس الثلاثية كسلاسل عادية باستثناء أنها يمكن أن تمتد على عدة أسطر. أعني بالسلاسل العادية أنه إذا لم يتم تعيينها إلى متغير فسيتم جمعها على الفور بمجرد تنفيذ هذا الكود. وبالتالي لا يتم تجاهلها بواسطة المترجم بنفس الطريقة التي يتم بها تجاهل #a comment.
  53. ^ "نصيحة بايثون: يمكنك استخدام سلاسل متعددة الأسطر كتعليقات متعددة الأسطر"، 11 سبتمبر 2011، جويدو فان روسوم
  54. ^ Talmage, Ronald R. (1999). Microsoft SQL Server 7. Prima Publishing. ISBN 978-0-7615-1389-6.
  55. ^ "دليل مرجعي لـ MySQL 8.0". Oracle Corporation . تم الاسترجاع في 2 يناير 2020 .
  56. ^ "SQL كما يفهمها SQLite". اتحاد SQLite . تم الاسترجاع في 2 يناير 2020 .
  57. ^ "وثائق PostgreSQL 10.11". مجموعة تطوير PostgreSQL العالمية . تم الاسترجاع في 2 يناير 2020 .
  58. ^ "مرجع قاعدة بيانات Oracle® SQL". Oracle Corporation . تم الاسترجاع في 2 يناير 2020 .
  59. ^ أندريس، ماندي (2003). البقاء على قيد الحياة في مجال الأمن: كيفية دمج الأشخاص والعمليات والتكنولوجيا . دار نشر سي آر سي. رقم ISBN 978-0-8493-2042-2.

قراءة إضافية

  • Movshovitz-Attias, Dana وCohen, William W. (2013) نماذج اللغة الطبيعية للتنبؤ بالبرمجة التعليقات. في جمعية اللغويات الحاسوبية (ACL)، 2013.
  • كيفية كتابة التعليقات بقلم دينيس كروكوفسكي
  • توثيق الكود المصدري كدليل مستخدم مباشر بواسطة PTLogica
  • كيفية كتابة التعليقات لأداة Javadoc
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=تعليق_(برمجة_الحاسوب)&oldid=1258397066"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate