هاك (لغة برمجة)

اختراق
شعار Hack، الذي يحتوي على أحرف "hack" صغيرة باللون الأبيض على خلفية سوداء، مع أشكال هندسية مثلثية منمقة على اليسار
صمم بواسطةجوليان فيرلاجويت، ألوك مينغراجاني، درو باروسكي، وآخرون [1]
المطورمنصات ميتا
ظهرت لأول مرة2014
إصدار مستقر
4.172  / 2 نوفمبر 2022 ؛ منذ 22 شهرًا ( 2 نوفمبر 2022 )
انضباط الطباعةثابت ، ديناميكي ، ضعيف ، تدريجي
نظام التشغيلمتعدد المنصات
رخصةرخصة معهد ماساتشوستس للتكنولوجيا [2]
موقع إلكترونيhacklang.org
متأثر بـ
PHP ، OCaml ، Java ، C# ، Scala ، Haskell

Hack هي لغة برمجة لآلة HipHop الافتراضية (HHVM)، تم إنشاؤها بواسطة Meta (المعروفة سابقًا باسم Facebook) كلغة PHP . تنفيذ اللغة مفتوح المصدر ، مرخص بموجب ترخيص MIT . [2] [3] [4]

يسمح هاك للمبرمجين باستخدام الكتابة الديناميكية والكتابة الثابتة . يُطلق على هذا النوع من نظام النوع الكتابة التدريجية ، والتي يتم تنفيذها أيضًا في لغات برمجة أخرى مثل ActionScript . [5] يسمح نظام النوع الخاص بـ Hack بتحديد الأنواع لحجج الوظيفة وقيم إرجاع الوظيفة وخصائص الفئة ؛ ومع ذلك، يتم استنتاج أنواع المتغيرات المحلية دائمًا ولا يمكن تحديدها. [3] [6]

تاريخ

تم تقديم Hack في 20 مارس 2014. [7] قبل الإعلان عن لغة البرمجة الجديدة، كان Facebook قد نفذ بالفعل الكود واختبره على جزء كبير من موقعه على الويب.

سمات

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

يقوم Hack بتوسيع تلميحات النوع المتاحة في PHP 5 من خلال تقديم الكتابة الثابتة، عن طريق إضافة تلميحات نوع جديدة (على سبيل المثال، للأنواع القياسية مثل الأعداد الصحيحة أو السلسلة)، وكذلك عن طريق توسيع استخدام تلميحات النوع (على سبيل المثال، لخصائص الفئة أو قيم إرجاع الوظيفة). ومع ذلك، لا يمكن تحديد أنواع المتغيرات المحلية. [6] نظرًا لأن Hack يستخدم نظام كتابة تدريجي، في الوضع الافتراضي، فإن تعليقات النوع ليست إلزامية حتى في الأماكن التي لا يمكن استنتاجها؛ سيفترض نظام النوع أن المؤلف صحيح ويقبل الكود. [9] ومع ذلك، يتوفر وضع "صارم" يتطلب مثل هذه التعليقات، وبالتالي يفرض كودًا سليمًا تمامًا. [10]

النحو والدلالات

البنية الأساسية لملف Hack script تشبه إلى حد كبير نص PHP مع بعض التغييرات. لا يتضمن ملف Hack <?phpعلامة الترميز الافتتاحية ويمنع استخدام إعلانات المستوى الأعلى. [11] يجب وضع الكود في دالة نقطة دخول. يتم تنفيذها تلقائيًا إذا كانت في ملف المستوى الأعلى، ولكن ليس إذا تم تضمين الملف عبر includeأو requireأو أداة التحميل التلقائي. مثل الوظائف الأخرى في Hack، يجب أن تكون أسماء الوظائف فريدة داخل المشروع - أي لا يمكن استدعاء المشاريع ذات نقاط الدخول المتعددة main:

<< __EntryPoint >> 
function  main () :  void  { 
  echo  'مرحبا بالعالم!' ; 
}

سيتم تنفيذ البرنامج النصي أعلاه، على غرار PHP، وسيتم إرسال الإخراج التالي إلى المتصفح:

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

على عكس PHP، لا يختلط كود Hack وHTML؛ بل يجب استخدام XHP أو محرك قالب آخر . [8]

الوظائف

مثل PHP 7، يسمح Hack بتحديد الأنواع لحجج الوظيفة وقيم إرجاع الوظيفة. وبالتالي، يتم شرح الوظائف في Hack بأنواع مثل ما يلي:

// يتم شرح وظائف الاختراق باستخدام الأنواع. 
function  negate ( bool  $x ) :  bool  { 
    return  ! $x ; 
}

انظر أيضا

مراجع

  1. ^ برايان أوسوليفان (2014-03-28). "Where Credit Belongs for Hack". مؤرشف من الأصل في 2021-03-01 . تم الاسترجاع في 2019-02-06 .
  2. ^ ab "facebook/hhvm: hhvm / hphp / hack / LICENSE". github.com . Meta Platforms . 2018-04-11. مؤرشف من الأصل في 2019-01-07 . تم الاسترجاع 2019-02-06 .
  3. ^ من قبل جوش لوكهارت (2014-04-03). "اختراق فيسبوك، HHVM، ومستقبل PHP". أوريلي ميديا . مؤرشف من الأصل في 2019-01-07 . تم الاسترجاع في 2019-02-06 .
  4. ^ كيد ميتز (2014-03-20). "فيسبوك يقدم "هاك"، لغة البرمجة المستقبلية". Wired . مؤرشف من الأصل في 2014-03-28 . تم الاسترجاع 2019-02-06 .
  5. ^ أسيم راستوجي؛ أفيك شودري؛ باسيل هوزمر (يناير 2012). "مداخل ومخارج الاستدلال التدريجي للأنواع" (PDF) . رابطة آلات الحوسبة (ACM). مؤرشف (PDF) من الأصل في 2017-08-12 . تم الاسترجاع في 2019-02-06 .
  6. ^ "دليل الاختراق: الاختراق وHHVM – تعليقات النوع". docs.hhvm.com . مؤرشف من الأصل في 2018-08-02 . تم الاسترجاع في 2019-02-06 .
  7. ^ Verlaguet, Julien; Menghrajani, GANDHI (2014-03-20). "Hack: a new programming language for HHVM". Facebook . مؤرشف من الأصل في 2019-02-09 . تم الاسترجاع في 2019-02-06 .
  8. ^ ab "التناقضات: المقدمة". docs.hhvm.com . مؤرشف من الأصل في 2019-04-04 . تم الاسترجاع 2019-04-04 .
  9. ^ "دليل الاختراق: الوضع الجزئي". docs.hhvm.com . مؤرشف من الأصل في 2018-11-19 . تم الاسترجاع 2019-02-06 .
  10. ^ "دليل الاختراق: الوضع الصارم". docs.hhvm.com . مؤرشف من الأصل في 2018-11-19 . تم الاسترجاع 2019-02-06 .
  11. ^ Emmott, Fred (2019-02-11). "HHVM 4.0.0". hhvm.com . مؤرشف من الأصل في 2021-05-14 . تم الاسترجاع 2019-05-02 .
  • الموقع الرسمي والمرجع اللغوي
  • الأسئلة والأجوبة على Facebook: اختراق يجلب الكتابة الثابتة إلى عالم PHP
  • برنامج تعليمي حول تحويل مشروع PHP موجود إلى Hack
  • KPHP: دلالات رسمية قابلة للتنفيذ لـ PHP
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=Hack_(programming_language)&oldid=1236878856"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate