لغة برمجة موجهة نحو التعبيرات
لغة البرمجة الموجهة بالتعبيرات هي لغة برمجة يكون فيها كل بناء (أو معظمه) تعبيرًا ، وبالتالي ينتج عنه قيمة. [ 1 ] الاستثناءات النموذجية هي تعريفات الماكرو ، وأوامر المعالج المسبق ، والتصريحات ، والتي غالبًا ما تعاملها لغات البرمجة الموجهة بالتعبيرات على أنها عبارات .
لغة Lisp [ 2 ] ولغة ALGOL 68 هما لغتان موجهتان نحو التعبيرات. أما لغة Pascal فهي ليست لغة موجهة نحو التعبيرات.
جميع لغات البرمجة الوظيفية موجهة نحو التعبيرات.
النقد والوقاية
يلقي النقاد، بمن فيهم مصممو اللغات، [ 3 ] باللوم على التوجه التعبيري في فئة كاملة من أخطاء البرمجة حيث يقوم المبرمج عن طريق الخطأ بترميز تعبير تعيين ، والذي يستبدل متغيرًا بتعبير بدلاً من اختباره للتأكد من مساواته مع ذلك التعبير.
تمنع بعض اللغات مثل Ada و Java هذا النوع من الأخطاء عن طريق تقييد تعبيرات التحكم بتلك التي تُقيّم بدقة إلى نوع البيانات المنطقية . [ 4 ] [ 5 ]
تُنفّذ بعض اللغات، مثل بايثون، عملية الإسناد كعبارة بدلاً من تعبير، مما يمنع تضمين الإسناد داخل أي عبارة أو تعبير آخر. [ 6 ] (حتى الإصدار 3.8 الذي أضاف "تعبيرات الإسناد"، بصيغة مختلفة . [ 7 ] )
في بعض اللغات الموجهة نحو التعبيرات، فإن التعبيرات التي تسبب آثارًا جانبية فقط تُرجع أنواعًا فارغة .
أمثلة
انظر أيضاً
مراجع
- ↑ "مسرد المصطلحات - لغة برمجة Rust" . web.mit.edu . تم الاطلاع عليه بتاريخ 2022-07-06 .
- 1 2 سايم، دون (2020-06-14). "التاريخ المبكر للغة F#" . وقائع مؤتمر ACM للغات البرمجة . 4 (HOPL): 1-58 . doi : 10.1145/3386325 . ISSN 2475-1421 .
- ↑ اصطلاحات كتابة كود جافا "10.4 إسناد المتغيرات"
- ↑ مواصفات لغة جافا، إصدار جافا SE 8 "14.9 عبارة if"
- ↑ تقديم آدا
- ↑ مرجع لغة بايثون "6.2. عبارات الإسناد"
- ↑ "PEP 572: تعابير الإسناد"
- ↑ "الدوال - لغة برمجة Rust" . web.mit.edu . تم الاطلاع عليه بتاريخ 2022-07-06 .
- ↑ "COS 326: البرمجة الوظيفية" . www.cs.princeton.edu . تم الاطلاع عليه بتاريخ 2022-07-06 .
- تصنيف لغات البرمجة
