مرحبا بالعالم

برنامج " مرحباً بالعالم " هو عادةً برنامج حاسوبي بسيط يعرض على الشاشة (غالباً وحدة التحكم ) رسالة مشابهة لعبارة "مرحباً بالعالم". وهو عبارة عن جزء صغير من التعليمات البرمجية في معظم لغات البرمجة العامة ، ويُستخدم لتوضيح البنية الأساسية للغة . غالباً ما يكون هذا البرنامج هو أول ما يكتبه طالب لغة برمجة جديدة، [ 1 ] ولكنه يُستخدم أيضاً كفحص أولي للتأكد من تثبيت برنامج الحاسوب المُخصص لتجميع أو تشغيل التعليمات البرمجية المصدرية بشكل صحيح، وأن مُستخدمه يفهم كيفية استخدامه.

تاريخ

برنامج لإخراج عبارة "مرحباً بالعالم"، مكتوب بخط اليد بلغة C وموقع من قبل برايان كيرنيغان (1978).

على الرغم من وجود العديد من برامج الاختبار الصغيرة منذ تطوير الحواسيب القابلة للبرمجة ، إلا أن تقليد استخدام عبارة "Hello, world" كرسالة اختبار تأثر ببرنامج نموذجي في كتاب " لغة البرمجة C" الصادر عام 1978 ، [ 2 ] مع احتمال استخدامه سابقًا في لغة BCPL . يطبع البرنامج النموذجي من الكتاب"مرحبا بالعالم"، وقد ورثت من مذكرة داخلية لمختبرات بيل عام 1974 من قبل برايان كيرنيغان ، البرمجة بلغة C: دليل تعليمي : [ 3 ]

main ( ) { printf ( "hello, world" ); }

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

سبقت نسخة لغة C كتاب كيرنيغان الخاص لعام 1972 بعنوان "مقدمة تعليمية للغة B" ، [ 4 ] حيث توجد النسخة الأولى المعروفة من البرنامج في مثال يستخدم لتوضيح المتغيرات الخارجية:

رئيسي( ) { extrn a, b, c; putchar(a); putchar(b); putchar(c); putchar('!*n'); } جحيم؛ قَوس'؛ ج 'العالم'؛ 

البرنامج أعلاه يطبعمرحبا بالعالم!على الطرفية، بما في ذلك حرف سطر جديد . تُقسّم العبارة إلى متغيرات متعددة لأن الثابت الحرفي في B يقتصر على أربعة أحرف ASCII . المثال السابق في البرنامج التعليمي طبعأهلاً!على الجهاز، والعبارةمرحبا بالعالم!تم تقديمها كتحية أطول قليلاً تتطلب عدة ثوابت حرفية للتعبير عنها.

يذكر موقع " ملف المصطلحات " أن عبارة "مرحباً بالعالم!" ظهرت في عام 1967 مع لغة BCPL . [ 5 ] أما خارج مجال الحوسبة، فقد بدأ استخدام هذه العبارة تحديداً قبل ذلك بأكثر من عقد من الزمان؛ إذ كانت العبارة المميزة لمذيع الراديو النيويوركي ويليام ب. ويليامز بدءاً من خمسينيات القرن الماضي. [ 6 ]

الاختلافات

"Hello World"، تم عرضها بواسطة برنامج يعمل على جهاز PlayStation Portable من سوني كإثبات للمفهوم

تختلف برامج "مرحباً بالعالم" في تعقيدها بين اللغات المختلفة. ففي بعض اللغات، وخاصة لغات البرمجة النصية ، يمكن كتابة برنامج "مرحباً بالعالم" بعبارة واحدة، بينما في لغات أخرى (وخاصة العديد من اللغات منخفضة المستوى ) قد يتطلب الأمر عددًا أكبر من العبارات. على سبيل المثال، في لغة بايثون ، لطباعة السلسلةمرحبا بالعالمبعد سطر جديد، يكفي كتابة . في المقابل، يتطلب الكود المكافئ في لغة C++ [ 7 ] استيراد مكتبة C++ القياسية ، وتحديد نقطة دخول (الدالة الرئيسية)، واستدعاء لطباعة سطر من النص إلى دفق الإخراج القياسي.print("Hello, world")

اختبار التشغيل الآلي باستخدام التحكم العددي الحاسوبي (CNC) في مادة بولي (ميثيل ميثاكريلات) (بيرسبكس)

شهدت عبارة "Hello, world" اختلافاتٍ عديدة في حالة الأحرف وعلامات الترقيم، كوجود الفاصلة أو علامة التعجب أو غيابهما. بعض الأجهزة تُقيّد هذا التنسيق باختلافاتٍ مُحددة، مثل النسخ المكتوبة بأحرف كبيرة فقط على الأنظمة التي تدعم الأحرف الكبيرة فقط، بينما قد تضطر بعض لغات البرمجة المُتخصصة إلى طباعة سلسلة مُعدّلة قليلاً. استُخدمت لغات بشرية أخرى كمخرجات؛ على سبيل المثال، أصدر برنامج تعليمي للغة Go أحرفًا إنجليزية وصينية أو يابانية ، مُظهرًا دعم اللغة المُدمج لنظام Unicode . [ 8 ] مثالٌ آخر جديرٌ بالذكر هو لغة Rust ، حيث يُدرج نظام إدارتها تلقائيًا برنامج "Hello, World" عند إنشاء مشاريع جديدة.

رسالة "مرحباً بالعالم" يتم عرضها من خلال الرسم الضوئي ذي التعريض الطويل باستخدام شريط متحرك من الثنائيات الباعثة للضوء (LEDs).

تُغيّر بعض لغات البرمجة وظيفة برنامج "Hello, world" مع الحفاظ على جوهره المتمثل في عرض مثال بسيط. تميل لغات البرمجة الوظيفية ، مثل Lisp و ML و Haskell ، إلى استبدال برنامج "Hello, world" ببرنامج حساب المضروب ، لأن البرمجة الوظيفية تُركّز على التقنيات التكرارية، بينما تُركّز الأمثلة الأصلية على الإدخال والإخراج، مما يُخالف جوهر البرمجة الوظيفية البحتة بإنتاج آثار جانبية . يمكن أيضًا استخدام اللغات القادرة على طباعة "Hello, world" ( لغة التجميع ، C ، VHDL ) في الأنظمة المُدمجة ، حيث يكون إخراج النصوص إما صعبًا (يتطلب مكونات إضافية أو اتصالًا بجهاز كمبيوتر آخر) أو غير موجود. بالنسبة لأجهزة مثل المتحكمات الدقيقة ، ومصفوفات البوابات المنطقية القابلة للبرمجة الميدانية ، وأجهزة المنطق القابلة للبرمجة المعقدة (CPLDs)، يمكن استبدال "Hello, world" بضوء ثنائي باعث للضوء (LED) وامض، مما يُوضّح التوقيت والتفاعل بين المكونات. [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ]

توفر توزيعات لينكس ديبيان وأوبونتو برنامج "Hello, world" من خلال أنظمة إدارة حزم البرامج الخاصة بها ، والتي يمكن استدعاؤها باستخدام الأمرمرحبًايُستخدم هذا كفحص مبدئي ومثال بسيط لتثبيت حزمة برمجية. بالنسبة للمطورين، يوفر مثالاً على إنشاء حزمة .deb ، سواء بالطريقة التقليدية أو باستخدام debhelper ، بالإضافة إلى إصدارها.مرحبًايُستخدم برنامج GNU Hello كمثال على كتابة برنامج GNU . [ 14 ]

تم عرض نسخ مختلفة من برنامج "مرحباً بالعالم" تُنتج مخرجات رسومية (بدلاً من مخرجات نصية). وقد عرضت شركة صن برنامج "مرحباً بالعالم" بلغة جافا يعتمد على رسومات متجهة قابلة للتوسيع ، [ 15 ] كما تتميز لغة البرمجة XL بعرض كرة أرضية دوارة مع عبارة "مرحباً بالعالم" باستخدام رسومات حاسوبية ثلاثية الأبعاد . [ 16 ] وقد أشار مارك غوزديال وإليوت سولواي إلى أن رسالة اختبار "مرحباً بالعالم" قد تكون قديمة الآن بعد أن أصبح من الممكن التلاعب بالرسومات والصوت بسهولة التلاعب بالنصوص. [ 17 ]

في مجال رسومات الحاسوب ، يُستخدم رسم المثلث - "مثلث الترحيب" - أحيانًا كمثال تمهيدي لمكتبات الرسومات . [ 18 ] [ 19 ]

حان وقت "مرحباً بالعالم"

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

تم توسيع نطاق هذا المفهوم ليشمل واجهات برمجة التطبيقات (APIs) إلى جانب لغات البرمجة ، كمقياس لمدى سهولة تشغيل مثال أساسي من قِبل مطور جديد؛ فكلما قلّ الوقت، دلّ ذلك على سهولة اعتماد المطورين لواجهة برمجة التطبيقات. [ 21 ] [ 22 ]

مقالات ويكيبيديا التي تحتوي على برامج "مرحباً بالعالم"

انظر أيضاً

مراجع

  1. لانغبريدج، جيمس أ. (3 ديسمبر 2013). تطوير أنظمة ARM المدمجة الاحترافية . جون وايلي وأولاده. ISBN 9781118887820.
  2. كيرنيغان، برايان دبليوريتشي، دينيس إم. (1978). لغة البرمجة سي ( الطبعة الأولى). إنجلوود كليفس، نيو جيرسي : برنتيس هول . ص 6. ISBN   0-13-110163-3.
  3. كيرنيغان، برايان (1974). "البرمجة بلغة سي: دليل تعليمي" (ملف PDF) . مختبرات بيل. مؤرشف من الأصل (ملف PDF) في 22 مارس 2022. تم الاطلاع عليه في 9 يناير 2019 .
  4. جونسون، إس سي؛ كيرنيغان، بي دبليو. لغة البرمجة ب . مختبرات بيل. مؤرشف من الأصل في 11 يونيو 2015. تم الاسترجاع في 8 أغسطس 2024 .
  5. "BCPL" . ملف المصطلحات . مؤرشف من الأصل في 3 أبريل 2018. تم الاطلاع عليه في 21 أبريل 2013 .
  6. "وفاة ويليام ب. ويليامز، الشخصية الإذاعية" . صحيفة نيويورك تايمز . 4 أغسطس 1986.
  7. "برمجة C++/أمثلة/مرحباً بالعالم" . ويكي بوكس . مؤرشف من الأصل في 28 مارس 2022. تم الاطلاع عليه في 16 مارس 2022 .
  8. دليل تعليمي للغة البرمجة Go. مؤرشف في 26 يوليو 2010 على موقع Wayback Machine. لغة البرمجة Go. تم ​​الاطلاع عليه في 26 يوليو 2011.
  9. سيلفا، مايك (11 سبتمبر 2013). "مقدمة في المتحكمات الدقيقة - مرحباً بالعالم" . EmbeddedRelated.com . مؤرشف من الأصل في 22 مايو 2015. تم الاطلاع عليه في 19 مايو 2015 .
  10. جورج، ليغو (8 مايو 2013). "وميض مؤشر LED باستخدام متحكم Atmega32 وبرنامج Atmel Studio" . electroSome . مؤرشف من الأصل في 5 نوفمبر 2014. تم الاطلاع عليه في 19 مايو 2015 .
  11. بي تي، رانجيث. "2. دليل استخدام متحكمات AVR الدقيقة في لينكس" . مشروع توثيق لينكس . مؤرشف من الأصل في 2 مايو 2015. تم الاطلاع عليه في 19 مايو 2015 .
  12. ^ أندرسون ، سفين اكي (2 أبريل 2012). "3.2 أول تصميم لـ Altera FPGA" . Raidió Teilifís Éireann. مؤرشفة من الأصلي في 21 مايو 2015 . تم الاسترجاع 19 مايو 2015 .
  13. فابيو، آدم (6 أبريل 2014). "دليل تعليمي حول الدوائر المنطقية القابلة للبرمجة: تعلم المنطق القابل للبرمجة بطريقة سهلة" . هاكاداي . مؤرشف من الأصل في 20 مايو 2015. تم الاطلاع عليه في 19 مايو 2015 .
  14. "مرحباً" . مشروع جنو . مؤسسة البرمجيات الحرة . تم الاطلاع عليه بتاريخ 7 يوليو 2017 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  15. جوليف، كريستوف (يناير 2003). "تقديم قوة SVG لتطبيقات جافا". شبكة مطوري صن .
  16. ^ دي دينشين ، كريستوف (24 يوليو 2010). "مرحبا بالعالم!" . جرينويل بويلي.
  17. "تعليم جيل نينتندو البرمجة" (ملف PDF) . bfoit.org . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 5 مايو 2016. تم الاطلاع عليه بتاريخ 27 ديسمبر 2015 .
  18. فريس، جوي دي (2020). تعلم OpenGL - برمجة الرسومات . كيندال وويلينغ. ص 26. ISBN  978-90-90-33256-7.
  19. بيوكين، برايان (يناير 2018). "برمجة الألعاب على راسبيري باي بلغة C/C++ الجزء 1". مجلة ماج باي . العدد 65. صفحة 57. في المرة القادمة، سنوسع نطاق الكود الخاص بنا ليشمل العمل مع الرسومات وكود "مرحباً أيها المثلث" الشهير الذي لا يستخدمه أحد على الإطلاق باستثناء مبرمجي الألعاب.  
  20. أودواير، آرثر (سبتمبر 2017). إتقان مكتبة القوالب القياسية للغة C++17: الاستفادة الكاملة من مكونات المكتبة القياسية في C++17 . دار نشر Packt المحدودة . ص 251. ISBN  978-1-78728-823-2تم الاطلاع عليه بتاريخ 4 ديسمبر 2019 .
  21. ويغرز، هارولد (28 يونيو 2018). "أهمية برنامج API فعال: "حان وقت كتابة أول رسالة Hello, World!"" . مؤرشف من الأصل في 19 فبراير 2020. تم الاطلاع عليه في 19 فبراير 2020 .
  22. جين، بريندا؛ ساهني، سوراب؛ شيفات، أمير (29 أغسطس 2018). تصميم واجهات برمجة تطبيقات الويب: بناء واجهات برمجة تطبيقات يحبها المطورون . دار نشر أورايلي ميديا. رقم ISBN 9781492026877تم الاطلاع عليه بتاريخ 19 فبراير 2020 .