لغة برمجة متسلسلة
لغة البرمجة المتسلسلة هي لغة برمجة حاسوبية خالية من النقاط حيث تشير جميع التعبيرات إلى وظائف ، ويشير تقابل التعبيرات إلى تكوين الوظائف . [1] تحل البرمجة المتسلسلة محل تطبيق الوظائف ، وهو أمر شائع في أنماط البرمجة الأخرى، مع تكوين الوظائف كطريقة افتراضية لبناء البرامج الفرعية .
مثال
على سبيل المثال، سلسلة من العمليات في لغة تطبيقية مثل التالية:
y = foo ( x ) z = شريط ( y ) w = baz ( z )
... مكتوبة بلغة متسلسلة كسلسلة من الوظائف: [2]
x فو بار باز
الوظائف والإجراءات المكتوبة بأسلوب التجميع ليست على مستوى القيمة ، أي أنها لا تمثل عادةً هياكل البيانات التي تعمل عليها بأسماء أو معرفات صريحة . بدلاً من ذلك، فهي على مستوى الوظيفة - يتم تعريف الوظيفة على أنها خط أنابيب ، أو تسلسل من العمليات التي تأخذ المعلمات من بنية بيانات ضمنية تعمل عليها جميع الوظائف، وتعيد نتائج الوظيفة إلى تلك البنية المشتركة حتى يتم استخدامها بواسطة المشغل التالي. [3]
إن الجمع بين الدلالات التركيبية والنحو الذي يعكس مثل هذه الدلالة يجعل اللغات المتسلسلة قابلة بدرجة كبيرة للتلاعب الجبري بالبرامج؛ [4] على الرغم من أنه قد يكون من الصعب كتابة التعبيرات الرياضية مباشرة فيها. [5] يمكن تنفيذ اللغات المتسلسلة بكفاءة باستخدام آلة المكدس ، وعادة ما تكون موجودة ضمنيًا في الآلات الافتراضية في شكل مجموعات التعليمات الخاصة بها . [5]
ملكيات
إن خصائص اللغات المتسلسلة هي نتيجة لتركيبها النحوي ودلالاتها:
- إن اختزال أي تعبير هو تبسيط دالة إلى دالة أخرى؛ وليس من الضروري أبدًا التعامل مع تطبيق الدوال على الكائنات. [6]
- يمكن استبدال أي تعبير فرعي باسم يمثل نفس التعبير الفرعي. ويشار إلى هذا في مجتمع التجميع باسم التحليل إلى عوامل ، ويُستخدم على نطاق واسع لتبسيط البرامج إلى أجزاء أصغر.
- تشكل قواعد اللغة والدلالات في اللغات المتسلسلة البنية الجبرية للمونويد . [ 7]
- يمكن جعل اللغات المتسلسلة مناسبة تمامًا للتنفيذ المستوحى من المنطق الخطي حيث لا يتم إنشاء أي قمامة على الإطلاق. [8]
التنفيذات
كانت لغة البرمجة التسلسلية الأولى هي Forth ، على الرغم من أن Joy كانت أول لغة تطلق على نفسها اسم التسلسلية. ومن اللغات التسلسلية الأخرى dc و Factor و Onyx و PostScript و RPL .
تعتمد معظم لغات التجميع الحالية على المكدس ؛ وهذا ليس شرطًا أساسيًا وقد تم اقتراح نماذج أخرى. [9] [10] [11] تُستخدم لغات التجميع حاليًا في البرمجة المضمنة وسطح المكتب والويب ، كلغات مستهدفة ، ولأغراض البحث.
معظم اللغات المتسلسلة هي لغات ذات كتابة ديناميكية . تشمل الاستثناءات لغة Cat ذات الكتابة الثابتة . [12]
انظر أيضا
مراجع
- ^ "كريستوفر ديجينز: ما هي اللغة المتسلسلة". Drdobbs.com. 2008-12-31 . تم الاسترجاع في 2013-07-01 .
- ^ "رمز الاسم ليس قيمًا". Concatenative.org . تم الاسترجاع في 13 سبتمبر 2013 .
- ^ "لغة متسلسلة". Concatenative.org . تم الاسترجاع في 13 سبتمبر 2013 .
- ^ "الأساس المنطقي للفرح، لغة وظيفية". مؤرشف من الأصل في 15 يناير 2011.
- ^ "لماذا البرمجة المتسلسلة مهمة" . تم الاسترجاع في 13 سبتمبر 2013 .
- ^ "von Thun, Manfred: Joy comparison with other function language". مؤرشف من الأصل في 2011-10-06.
- ^ "فون ثون، مانفريد: الأسس الرياضية للفرح". مؤرشف من الأصل في 2010-07-31.
- ^ "هنري بيكر: المنطق الخطي ومجموعات التباديل — الرابع سيكون الأول". Home.pipeline.com. مؤرشف من الأصل في 2014-07-24 . تم الاسترجاع في 2013-07-01 .
- ^ "اللغة المتسلسلة XY". Nsl.com . تم الاسترجاع في 2013-07-01 .
- ^ "لغة البرمجة Enchilada". Enchiladacode.nl . تم الاسترجاع في 2013-07-01 .
- ^ "لغة البرمجة أوم". Om-language.org . تم الاسترجاع في 2013-07-01 .
- ^ "Cat Specification". Cat-language.com. مؤرشف من الأصل في 2015-02-05 . تم الاسترجاع في 2013-07-01 .
روابط خارجية
- concatenative.org: ويكي حول اللغات المتسلسلة
- Staapl: Forth on Scheme for Embedded Controllers
- لغة البرمجة Enchilada
- اللغة المتسلسلة XY
- لغة البرمجة أوم
