أوكام

من أرابيكا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
أوكام
معلومات عامة
التنميط
صممها
التطوير
المطور
الإصدار الأول
1983؛ منذ 41 سنوات (1983)
الإصدار الأخير
2.1 (official), 2.5 (unofficial), 3 (not fully implemented)
التأثير
متأثرة بـ
أثرت في

أوكام (بالإنجليزية: occam)‏ يُعرف أوكام بلغة البرمجة متزامنة ومبنية على عملية التواصل المتسلسل ويعالج الجبر ويشاركه في كثير من مواصفاته، وسميت نسبة للعالم وليم الأوكامي.[1]

نبذة

تُعد أوكام برمجة أمرية وإجرائية مثل باسكال ولقد طورها دافيد ماي والباقون في شركة إينموس (INMOS) أخذا بإشارة من توني هور، تبين الأمثلة الآتية أن كلا من إضافة المسافة البادئة والتنسيق بالغ في الأهمية في بيان ومعالجة الرمز الذي يشير إلى أن بلوغ نهاية السطر هو سبب في تفريق بين الجمل، وحقيقة ينبغي أن يكون قائمة التعبيرات والجمل على نمط واحد عند إضافة المسافة البادئة، ويسمى هذه المواصفات بحكم التسلل ويعمل أيضا بهذه المواصفات في لغات أخرى مثل هاسكل وبايتون، ويكون التواصل بين إجراءات العمل عن طريق ما يسمى بالقنوات، وأحدها يعالج نتائج البيانات إلى القنوات عبر (!) وغيره يعالج البيانات المدخولة ب (?) ولا يمكن استمرار معالجة البيانات المدخولة ونتائج البيانات إلا إذا وجد إقبال من العملية الأخرى وجاهزة لقبول أو تقديم البيانات (وفي حالة عدم استمرار المعالجة غالبا تكون المشكلة في القنوات، ولكن في هذه الحالة يستدير البرنامج ولا ينظر غالبا حل المشكلة، فهنالك تظهر مصطلحات مثل «انتظر» «معلق» «أنتج» وهذه المصطلحات تعبر عن حالة البرمجة وجدير بالذكر هنا أن هذه الإشكاليات لا تمنع معالجة بعض العملية التي لا علاقة لها بهذه القنوات مثل (س. عنصر متغير) لغة برمجة وتنقيحها.[2]

أوكام 1

أوكام 1 (الذي أصدر عام 1983) الإصدار التمهيدي للغة برمجة وهو مستعار من عمل دافيد ماي على EPL ومن عمل توني هور على CSP، ويعمل أوكام 1 خاصة في نوع بيانات VAR، وهو يعد نوعا متكاملا الذي يناسب ويوافق الطول الأصلي للكلمة في الطراز المعماري المستهدف وكذلك ترتيب الصفوف ذات أبعاد واحدة.[3]

أوكام 2

أوكام 2 امتدادا لأوكام 1 أنتجته شركة إينمس عام 1987 الذي أضاف للسابق قوة حسابات الفاصلة المتحركة، واختصاصات وصفوف ذات متعدد الأبعاد وبعض أنواع من البيانات متغير الأشكال أو الحجم (INT16, INT32) وبت، وبسبب إعادة التنقيح، تطور أوكام2 حتى صار أقوى لغة برمجة ذات قدرة عالية في التعبير عن البرامج المفيدة في سوق البرمجة غير أن أوكام 1 أكثر مناسبة في معالجة الخوارزمي وكذلك في اكتشاف لغة برمجة جديدة (ولكن مترجم برنامج أوكام 1 مكتوب في أوكام فهذا يشعر أن هنا مستندًا يدل على أن البرامج المفيدة ذات حجم مناسب غالبا يكتب بلغة أوكام 1 مع أن اختصاصاته محدودة.[4]

أوكام 2.1

يُعد أوكام 2.1 آخر وأحدث إصدارات أوكام في مجال تطوير لغة برمجة التي تساهم بها شركة إينموس، وتم تحديدها وإنشاءها عام 1994، ولقد آثر في سرعة استخراجها اقتراح سابق على استخراج لغة برمجة أوكام 3 (ويسمى كذلك باسم أوكام 91 في بداية تطويرها) أنشأها واستخرجها مهندس جيأوف باريت في شركة أينموس أوائل عام 1990، ونشر دليل البرمجة المنقحة للناس ليجدوا تعليقاتهم وملحوظاتهم غير أن لغة برمجة لهذا الإصدار أوكام 2.1 غير مطبق كاملا في مترجم أوكام 2.1.[5]

مصادر أخرى

  • Communicating Process Architectures 2007 – WoTUG-30. IOS Press. 2007. ص. 513 pages. ISBN:978-1-58603-767-3. [1]
  • Communicating Process Architectures 2006 – WoTUG-29. IOS Press. 2006. ص. 391 pages. ISBN:978-1-58603-671-3. [2]
  • Communicating Process Architectures 2005 – WoTUG-28. IOS Press. 2005. ص. 405 pages. ISBN:978-1-58603-561-7. [3]
  • Kerridge، Jon، المحرر (1993). Transputer and Occam Research: New Directions. IOS Press. ص. 253 pages. ISBN:0-8247-0711-7.
  • Roscoe، Andrew William؛ Hoare، Charles Antony Richard (1986). The Laws of Occam Programming. Programming Research Group, Oxford University.
  • Egorov, A., Technical University – Sofia, (1983-2011) Записки по Компютърни архитектури

مراجع

  1. ^ occam 2.1 Reference Manual (PDF). SGS-Thomson Microelectronics Ltd. 1995-05-12. Inmos document 72 occ 45 03
  2. ^ occam Programming Manual. Prentice-Hall. 1984. ISBN 0-13-629296-8.
  3. ^ Ericsson-Zenith, Steven (1988). occam 2 Reference Manual. Prentice-Hall. ISBN 0-13-629312-3.
  4. ^ Cook, Barry M; Peel, RMA (1999-04-11). "Occam on Field-Programmable Gate Arrays". In Cook, Barry M. (ed.). Architectures, Languages and Techniques for Concurrent Systems. 22nd World Occam and Transputer User Group Technical Meeting. Keele, United Kingdom: IOS Press. p. 219. ISBN 90-5199-480-X. Retrieved 2016-11-28.
  5. ^ Barrett, Geoff; Ericsson-Zenith, Steven (1992-03-31). "occam 3 Reference Manual" (PDF). Inmos. Retrieved 2008-03-24.

روابط خارجية