لغة برمجة شكسبير
لغة برمجة شكسبير ( SPL ) هي لغة برمجة غامضة صممها جون أسلوند وكارل ويبرغ. [ 1 ] ومثل لغة برمجة شيف ، فهي مصممة لجعل البرامج تبدو وكأنها شيء آخر غير البرامج - في هذه الحالة، مسرحيات شكسبيرية .
تُعرّف قائمة الأحرف في بداية البرنامج عددًا من المكدسات ، تحمل أسماءً مثل "روميو" و"جولييت". تتفاعل هذه الأحرف فيما بينها، حيث تُعدّل القيم العليا لبعضها البعض، وتُضيف وتُزيل عناصر من بعضها، وتُجري عمليات الإدخال والإخراج . كما يمكن للأحرف أن تطرح على بعضها أسئلة تُعتبر بمثابة عبارات شرطية . عمومًا، يُشبه نموذج البرمجة لغة التجميع إلى حد كبير ، ولكنه أكثر تفصيلًا.
البرمجة في شكسبير
عنوان
يُطلق على السطر الأول في برنامج شكسبير اسم "العنوان". ويعتبر المترجم أي شيء من السطر الأول إلى النقطة الأولى بمثابة تعليق.
الشخصيات الدرامية
هذا هو القسم الذي تُعلن فيه المتغيرات. يمكن لكل متغير أن يحمل قيمة عددية صحيحة ذات إشارة، ويكون على الشكل التالي:
الاسم، الوصف
أين Nameاسم المتغير الذي Descriptionيتجاهله المترجم؟ لن يتعرف المترجم إلا على الأسماء التي تتوافق مع شخصيات شكسبيرية حقيقية. [ 1 ]
فصول ومشاهد
يُقسّم جزء من الشفرة في أعمال شكسبير إلى أجزاء، Actsيحتوي كل جزء منها على Scenesالأحرف (المتغيرات) التي تتفاعل فيما بينها. يُرقّم كل Actجزء Sceneبرقم روماني ويُستخدم كعلامة GOTO. أي شفرة بعد النقطتين تُعتبر تعليقًا. تُكتب التعليقات بالشكل التالي:
الفصل الأول: إهانات هاملت ومديحه. المشهد الأول: إهانة روميو.
ادخل، اخرج، واخرج
تتخذ أسطر التعليمات البرمجية الفردية عادةً شكل حوار بين شخصيتين؛ وبهذه الطريقة يتم تعيين قيمة متغير (الشخصية المُخاطَبة) أو تغييرها أو إخراجها. لا يمكن مخاطبة الشخصية إلا بضمائر المخاطب المفردة "أنتَ" أو "أنتِ" أو "أنتِ". لذا، يجب أن يكون هناك شخصيتان فقط "على المسرح" عند نطق أي سطر: واحدة للتحدث، والأخرى للمخاطبة. [ 1 ] لاستدعاء متغير إلى المسرح، Enterيُستخدم الأمر مع قائمة تضم شخصية واحدة أو أكثر. Exitيُخبر الأمر شخصية واحدة فقط من القائمة بمغادرة المسرح. أما الأمر Exeuntفيستدعي أكثر من شخصية للمغادرة، أو في حالة عدم وجود أي شخصيات في القائمة، فستغادر جميع الشخصيات المسرح. [ 1 ] يُستخدم التنسيق التالي:
[تدخل جولييت] [يدخل روميو وجولييت] [خروج روميو] [يخرج روميو وجولييت] [يخرجون]
خطوط
تُمثَّل الأسطر بحوارٍ يُلقيه أحد الشخصيات، وتتألف من جملة واحدة على الأقل. قد تُسند كل جملة قيمةً جديدةً لمتغير، أو تُوجِّه متغيرًا لإخراج قيمته، أو تُوجِّهه لاستقبال مُدخل. كما يُمكن للأسطر التلاعب بالمكدسات أو العمل كعبارات شرطية (if/then) أو عبارات انتقال (goto). يبدأ السطر باسم الشخصية متبوعًا بنقطتين رأسيتين. وبما أن هذه الشخصية هي المتحدثة، فإن الشخصية الأخرى على المسرح هي المتغير الذي يُخاطَب بضمير المخاطب المفرد "أنتَ" أو "أنتِ" أو "أنتِ".
الثوابت وتعيين القيم
تُمثَّل الثوابت بمجموعات من الأسماء والصفات؛ إذ تتعرف اللغة على قائمة محدودة من كلٍّ منهما، وتُصنَّف كلتا القائمتين إلى قوائم ذات دلالة إيجابية أو سلبية أو محايدة، كما يراها آسلوند وهسلستروم. تحمل الأسماء الإيجابية والمحايدة قيمة 1، بينما تحمل الأسماء السلبية قيمة -1. أي صفة تُضاعف الاسم، ويمكن تركيب الصفات. [ 1 ] يتجاهل المحلل اللغوي ضمائر الملكية، بينما تُعرَف الكلمات المتعلقة بالحساب الأساسي كعمليات، مثل "المجموع" و"القسمة" و"التكعيب". الجملة التي تُسند قيمةً لحرفٍ ما، والتي تبدأ بـ "أنتَ/أنتِ" أو "أنتم/أنتن" أو "أنتن/أنتن"، يمكن أن تستمر اختياريًا بـ "مثل [أي صفة] مثل"، ثم تُعطي الصيغة الرياضية بالأسماء والصفات والمتغيرات والعمليات للقيمة الجديدة. فيما يلي أمثلة على هذه الأسطر: [ 1 ]
قرية: يا كاذب، غبي، يتيم، كبير، كريه الرائحة، نصف أحمق، جبان! جولييت: أنت شريرٌ كالجذر التربيعي لروميو!
يمكن للصيغ الرياضية أيضًا استخدام أسماء شخصيات أخرى (حتى لو لم تكن تلك الشخصيات موجودة على المسرح) لاستخدام القيمة الحالية لتلك الشخصية في عملية حسابية، أو "نفسك" أو "نفسك" للشخصية التي يتم التحدث إليها.
المدخلات والمخرجات
يمكن للأسطر أيضًا استدعاء متغير لإخراج قيمة أو استقبال مدخلات. يُخرج الأمر "Open your heart" القيمة العددية للمتغير، بينما يُخرج الأمر "Speak your mind" الحرف المقابل له في نظام ASCII. أما الأمران "Listen to your heart" و"Open your mind" فيجعلان المتغير يستقبل مدخلات من المستخدم؛ الأول لرقم والثاني لحرف. [ 1 ]
العبارات الشرطية وعبارات goto
تُصاغ عبارة if/then على شكل سؤال يطرحه أحد الشخصيات. تمثل عبارة "مثل [أي صفة] مثل" اختبارًا للمساواة، بينما تُشير كلمتا "أفضل" و"أسوأ" إلى "أكبر من" و"أصغر من" على التوالي. يُحدد السطر اللاحق، الذي يبدأ بـ "if so" أو "if not"، ما يحدث استجابةً لصدق أو خطأ الشرط الأصلي. تبدأ عبارة goto بـ "Let us" أو "We shall" أو "We must"، وتستمر بـ "return to" أو "proceed to"، ثم تُحدد فصلًا أو مشهدًا. يُفسر المشهد على أنه ذلك المشهد في الفصل الحالي؛ لا يمكن لعبارة goto استدعاء مشهد في فصل مختلف. [ 1 ] تبدو العبارة الشرطية لاستدعاء goto كما يلي: [ 1 ]
جولييت: هل أنا أفضل منك؟ قرية: إذا كان الأمر كذلك، فلننتقل إلى المشهد الثاني.
دفع وسحب الأكوام
كل متغير عبارة عن مكدس . يُضاف عدد صحيح إلى مكدس المتغير إذا طُلب من الشخصية "تذكر" قيمة مناسبة، مثل "تذكرني" أو "تذكر نفسك". تُحذف القيمة العلوية من المكدس (أي يأخذ المتغير هذه القيمة) إذا طُلب من الشخصية "استدعاء" أي شيء؛ ويُعامل كل نص بعد هذه الكلمة كتعليق. [ 1 ]
مثال على التعليمات البرمجية
برنامج "مرحباً بالعالم!" القياسي :
الفكرة هي توليد قيم ASCII لكل حرف من السلسلة وطباعتها باستخدام أمر "عبّر عن رأيك". على سبيل المثال، يستخدم السطر الأول من حوار هاملت مجموعة من العمليات الحسابية لتعيين القيمة العشرية 72 (الثنائية 1001000) للشخصية الرئيسية الأخرى روميو، والتي تُقابل في ASCII الحرف 'H'.
لا تودع، مسرحية من فصلين. روميو، شاب يتمتع بصبر ملحوظ. جولييت، وهي شابة تتمتع برشاقة ملحوظة. أوفيليا، امرأة رائعة كانت على خلاف كبير مع هاملت. هاملت، المتملق لشركة أندرسن إنسولتينغ إيه/إس. الفصل الأول: إهانات هاملت ومديحه. المشهد الأول: إهانة روميو. [يدخل هاملت وروميو] قرية: يا كاذب، غبي، يتيم، كبير، كريه الرائحة، نصف أحمق، جبان! أنت غبي بقدر الفرق بين رجل وسيم غني شجاع بطل ونفسك! عبّر عن رأيك! أنت شجاع بقدر مجموع شجاعة دميتك الصغيرة السمينة المحشوة والمتسخة والمهملة قطعة قماش قديمة بالية تغطي العانة، وصيف جميل دافئ هادئ مشمس صحتك تعتمد على الفرق بين مجموع أحلى وردة حمراء، وأبي وأنتِ! قولي ما في قلبكِ! أنت جبان بقدر ما أنت عليه مجموع نفسك والفرق بينهما بين مملكة عظيمة وقوية وفخورة وحصان. عبّر عن رأيك. عبّر عن رأيك! [خروج روميو] المشهد الثاني: مدح جولييت. [تدخل جولييت] قرية: أنتِ حلوة كحلاوة مجموع روميو وحصانه و... يا قطة سوداء! تكلمي بصدق! [خروج جولييت] المشهد الثالث: مدح أوفيليا. [تدخل أوفيليا] قرية: أنتِ جميلةٌ كالفرق بين روميو والمربع شجرة خضراء ضخمة مسالمة. عبّر عن رأيك! أنتِ جميلة كجمال نتاج بلدة ريفية كبيرة، ومذهلة! حقيبة مطرزة لا قعر لها. عبّر عن رأيك! أنتِ محبةٌ كحبة نتاج السماء الزرقاء الصافية الحلوة ومجموع سنجاب وحصان أبيض. أنتِ جميلة مثل الفرق بين جولييت وبين نفسك. عبّر عن رأيك! [تخرج أوفيليا وهاملت] الفصل الثاني: خلف ظهر هاملت. المشهد الأول: محادثة روميو وجولييت. [يدخل روميو وجولييت] روميو: عبّر عن رأيك. أنت قلق بقدر قلقك أنت و... الفرق بين هامستري الصغير الأملس وأنفي. تكلم عقل! جولييت: عبّر عن رأيك! أنت سيء مثل هاملت! أنت صغير مثل... الفرق بين مربع الفرق بين مهرتي الصغيرة وكلبك الكبير الأشعث ومكعبك الصغير البائس قطعة قماش تغطي العانة. عبّر عن رأيك! [خروج روميو] المشهد الثاني: محادثة جولييت وأوفيليا. [تدخل أوفيليا] جولييت: أنت لا تقل قيمة عن حاصل قسمة روميو على مجموع عدد قليل من حيوان فروي وعلقة. عبّر عن رأيك! أوفيليا: أنت مقرف بقدر النسبة بين روميو وضعف الفرق بين نبات الدبق والبثور المصابة المتقيحة! تكلم عقلك! [يخرجون]
انظر أيضاً
مراجع
المراجع المضمنة
مراجع عامة
- هيريك، كلوي (27 يونيو 2011). "دليل لغات البرمجة: شكسبير" . كمبيوتر وورلد . مؤرشف من الأصل في 11 نوفمبر 2018. تم الاطلاع عليه في 10 نوفمبر 2018 .
- بيرن، مايكل (26 سبتمبر 2015). "اعرف لغتك: عناء البرمجة ومتاعبها مع شكسبير" . موقع Motherboard . تم الاطلاع عليه بتاريخ 10 نوفمبر 2018 .
- لانغ، ميركو؛ أوغستين، ستيفان (12 يوليو 2017). "البرمجة الباطنية، الجزء 2: لغة برمجة شكسبير" . dev-insider.de (بالألمانية) . تم الاطلاع عليه بتاريخ 10 نوفمبر 2018 .
- نيلسون، آندي (2 مارس 2014). "لغة برمجة شكسبير" . المسرح والأدب الإنجليزي في لندن . تم الاطلاع عليه بتاريخ 10 نوفمبر 2018 .
- كوناست ، تشارلي (ديسمبر 2010). "Aus dem Alltag eines Sysadmin: لغة برمجة شكسبير" . مجلة لينكس (باللغة الألمانية) . تم الاسترجاع في 10 نوفمبر 2018 .
- في، أنيت (2017). معرفة البرمجة: كيف تُغير برمجة الحاسوب الكتابة . كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا . ص 124-125 . ISBN 9780262036245.
- "StackHack - لغة برمجة شكسبير - Datorföreningen Stacken" . www.stacken.kth.se (باللغة السويدية) . تم الاسترجاع في 10 نوفمبر 2018 .
روابط خارجية
- لغات البرمجة الباطنية
- ويليام شكسبير
