مودولا-2
Modula-2 هي لغة برمجة هيكلية وإجرائية طُوِّرت بين عامي 1977 و1985/1988 على يد نيكلاوس ويرث في المعهد الفدرالي السويسري للتكنولوجيا في زيورخ . وقد صُمِّمت كلغة لنظام التشغيل وبرامج التطبيقات الخاصة بمحطة العمل الشخصية Lilith . [ 1 ] واستُخدمت لاحقًا في البرمجة خارج نطاق Lilith .
اعتبر ويرث لغة البرمجة Modula-2 خليفةً للغتي البرمجة السابقتين باسكال ومودولا . [ 2 ] [ 3 ] وتتلخص المفاهيم الرئيسية فيما يلي :
- الوحدة كوحدة تجميع للتجميع المنفصل
- الروتين الفرعي كوحدة بناء أساسية للعمليات المتزامنة
- أنواع وإجراءات تسمح بالوصول إلى البيانات الخاصة بالآلة
تأثر تصميم اللغة بلغة ميسا وجهاز زيروكس ألتو ، وكلاهما من مركز أبحاث زيروكس بارك ، واللذان اطلع عليهما ويرث خلال إجازته الدراسية عام 1976 هناك. [ 4 ] خصصت مجلة بايت المتخصصة في علوم الحاسوب عدد أغسطس 1984 للغة وبيئتها المحيطة. [ 5 ]
ابتكر ويرث سلسلة لغات أوبرون كخليفة لـ Modula-2، بينما قام آخرون (خاصة في شركة Digital Equipment Corporation وشركة Acorn Computers ، ولاحقًا شركة Olivetti ) بتطوير Modula-2 إلى Modula-2+ ثم Modula-3 .
وصف
Modula-2 هي لغة برمجة إجرائية للأغراض العامة، مناسبة لبرمجة الأنظمة والتطبيقات على حد سواء. يعتمد تركيبها النحوي على لغة باسكال ، وهي لغة سابقة طورها ويرث ، مع إزالة بعض العناصر والغموض النحوي. أُضيف مفهوم الوحدة ، المصمم لدعم الترجمة المنفصلة وتجريد البيانات، بالإضافة إلى دعم اللغة المباشر للبرمجة المتعددة .
تسمح اللغة باستخدام المترجمات أحادية المرور . وكان هذا النوع من المترجمات الذي طوره غوتكنيشت وويرث أسرع بأربع مرات تقريبًا من المترجمات متعددة المرور السابقة . [ 6 ]
إليكم مثال على الكود المصدري لبرنامج "Hello world":
وحدة Hello ؛ (* بالنسبة لـ GNU Modula-2، سيكون هذا FROM StrIO IMPORT WriteString *) FROM STextIO IMPORT WriteString ؛ BEGIN WriteString ( "Hello World!" ) END Hello .يمكن استخدام وحدة Modula-2 لتغليف مجموعة من البرامج الفرعية وهياكل البيانات ذات الصلة، وتقييد رؤيتها من أجزاء أخرى من البرنامج. [ 7 ] تتكون برامج Modula-2 من وحدات، كل منها يتألف من جزأين: وحدة تعريف ، وهي جزء الواجهة، الذي يحتوي فقط على أجزاء النظام الفرعي التي يتم تصديرها (المرئية للوحدات الأخرى)، ووحدة تنفيذ ، التي تحتوي على التعليمات البرمجية العاملة الداخلية للوحدة.
تتميز اللغة بنطاق تحكم صارم. فباستثناء المعرفات القياسية، لا يمكن رؤية أي كائن من الخارج داخل الوحدة النمطية إلا إذا تم استيراده صراحةً؛ ولا يمكن رؤية أي كائن داخلي من الوحدة النمطية من الخارج إلا إذا تم تصديره صراحةً.
لنفترض أن الوحدة النمطية M1 تصدر الكائنات a و b و c و P عن طريق تعداد معرّفاتها في قائمة تصدير صريحة
وحدة التعريف M1 ؛ مؤهلة للتصدير أ ، ب ، ج ، ب ؛ ...بعد ذلك، تُعرف الكائنات a و b و c و P من الوحدة M1 خارج الوحدة M1 باسم M1.a و M1.b و M1.c و M1.P. ويتم تصديرها بطريقة مُؤهلة إلى الخارج (بافتراض أن الوحدة M1 عامة). ويُستخدم اسم الوحدة المُصدِّرة، أي M1، كمُؤهِّل متبوعًا باسم الكائن.
لنفترض أن الوحدة النمطية M2 تحتوي على تعريف الاستيراد التالي
الوحدة M2 ؛ استيراد M1 ؛ ...وهذا يعني أن الكائنات التي يُصدّرها الموديول M1 إلى خارج البرنامج المُحيط به يُمكن استخدامها الآن داخل الموديول M2. ويتم الإشارة إليها بطريقة مُحددة : M1.a، M1.b، M1.c، وM1.P. مثال:
... M1.a : = 0 ; M1.c : = M1.P ( M1.a + M1.b ) ; ...يُجنّب التصدير المؤهل حدوث تضارب في الأسماء. على سبيل المثال، إذا صدّر نموذج آخر M3 كائنًا يُسمى P، فيمكن التمييز بين الكائنين لأن M1.P يختلف عن M3.P. ولا يهم أن يُطلق على كلا الكائنين اسم P داخل النموذجين المُصدِّرين M1 وM3.
توجد طريقة بديلة. لنفترض أن الوحدة النمطية M4 مصاغة على النحو التالي:
الوحدة M4 ؛ من M1 استيراد a ، b ، c ، P ؛هذا يعني أنه يمكن استخدام الكائنات التي تم تصديرها بواسطة الوحدة M1 إلى الخارج مرة أخرى داخل الوحدة M4، ولكن الآن بمجرد الإشارة إلى المعرفات المصدرة بطريقة غير مؤهلة مثل: a و b و c و P. مثال:
... a := 0 ; c := P ( a + b ); ...تُعدّ طريقة الاستيراد هذه قابلة للاستخدام في حال عدم وجود تعارض في الأسماء. فهي تسمح باستخدام المتغيرات والكائنات الأخرى خارج وحدة التصدير الخاصة بها بنفس الطريقة غير المحددة المستخدمة داخل وحدة التصدير.
لا تقتصر قواعد التصدير والاستيراد على حماية الكائنات من الوصول غير المصرح به فحسب، بل تسمح أيضًا بإنشاء مرجع متبادل لتعريف كل مُعرِّف في البرنامج. تُسهم هذه الخاصية في صيانة البرامج الكبيرة التي تحتوي على العديد من الوحدات.
تتيح هذه اللغة التزامن على معالج واحد ( المراقبات ، والروتينات الفرعية ، ونقل التحكم الصريح) والوصول إلى الأجهزة (العناوين المطلقة، ومعالجة البتات، والمقاطعات ). وهي تستخدم نظام أنواع اسمي .
اللهجات
توجد لهجتان رئيسيتان للغة Modula-2. الأولى هي PIM ، نسبةً إلى كتاب البرمجة بلغة Modula-2 للمؤلف نيكلاوس ويرث. [ 4 ] صدرت ثلاث طبعات رئيسية من PIM: الثانية، والثالثة (المصححة)، والرابعة. تصف كل طبعة اختلافات طفيفة في اللغة. أما اللهجة الرئيسية الثانية فهي ISO ، نسبةً إلى جهود التقييس التي تبذلها المنظمة الدولية للتقييس . فيما يلي بعض الاختلافات بينهما.
- PIM2 (1983)
- يجب تضمين بند صريح
EXPORTفي وحدات التعريف. SIZEيجب استيراد الدالة من الوحدة النمطيةSYSTEM
- يجب تضمين بند صريح
- PIM3 (1985)
- تمت إزالة
EXPORTالبند من وحدات التعريف بعد ملاحظة أن كل شيء داخل وحدة التعريف يحدد واجهة تلك الوحدة، وبالتاليEXPORTكان البند زائداً عن الحاجة. - الوظيفة
SIZEشاملة (مرئية في أي نطاق دون الحاجة إلى استيرادها)
- تمت إزالة
- PIM4 (1988)
- تم تحديد سلوك المعامل
MODعندما تكون المعاملات سالبة. ARRAY OF CHARيشترط إنهاء جميع السلاسل النصية بـ ASCII NUL، حتى لو كانت السلسلة النصية تتناسب تمامًا مع مصفوفة الأحرف الخاصة بها.
- تم تحديد سلوك المعامل
- ISO (1996، 1998)
- حلّت معيار ISO Modula-2 معظم أوجه الغموض في معيار PIM Modula-2. فقد أضاف أنواع البيانات
COMPLEXوالاستثناءاتLONGCOMPLEX، وشرط إنهاء الوحدة ( عبارة)، ومكتبة إدخال/إخراج قياسيةFINALLYكاملة . وهناك العديد من الاختلافات والتوضيحات الطفيفة. [ 8 ]
- حلّت معيار ISO Modula-2 معظم أوجه الغموض في معيار PIM Modula-2. فقد أضاف أنواع البيانات
المجموعات المتتالية
توجد عدة مجموعات فرعية من لغة Modula-2 مع امتدادات لغوية لمجالات تطبيق محددة:
- مجموعات PIM الفائقة
- كانتربري مودولا-2 ، مع سجلات قابلة للتمديد تشبه تلك الموجودة في أوبرون [تم سحب هذا المنتج ولم يعد متوفرًا في أي مكان]
- Modula-2+ ، مُوسّعة بخيوط استباقية، واستثناءات، وجمع البيانات المهملة
- Modula-2* ، امتداد متوازٍ [ 9 ]
- Modula-P ، امتداد متوازٍ آخر [ 10 ]
- Modula–Prolog، يضيف طبقة Prolog [ 11 ]
- يُضيف Modula/R امتدادات قواعد البيانات العلائقية
- مودولا-جي إم، يضيف امتدادات النظام المدمج
- مجموعات ISO الفائقة
- ISO10514-2، يضيف طبقة برمجة كائنية التوجه [ 12 ]
- ISO10514-3، يضيف طبقة برمجة عامة (generics) [ 12 ]
- مجموعات IEC الفائقة
- Mod51 ، مُوسّع ببنيات IEC 1131 لتطوير الأنظمة المدمجة
المشتقات
توجد عدة لغات مشتقة تشبه لغة Modula-2 إلى حد كبير، لكنها لغات جديدة بحد ذاتها. معظمها لغات مختلفة ذات أغراض مختلفة، ولكل منها نقاط قوة وضعف خاصة بها.
- Modula-3 ، تم تطويره بواسطة فريق من موظفي Xerox السابقين الذين انتقلوا إلى DEC و Olivetti [ 13 ]
- Oberon ، تم تطويره في ETH Zurich Zürich لنظام Oberon [ 14 ] متاح عبر الإنترنت .
- Oberon-2 ، Oberon مع امتدادات موجهة للكائنات (OO) [ 15 ]
- Active Oberon ، وهو امتداد آخر للغة Oberon الموجهة للكائنات ، تم تطويره في المعهد الفدرالي السويسري للتكنولوجيا في زيورخ بهدف رئيسي هو دعم برمجة الحوسبة المتوازية على المعالجات متعددة النوى والمعالجات متعددة المعالجة
- Parallaxis، وهي لغة لبرمجة البيانات المتوازية المستقلة عن الآلة [ 16 ]
- Umbriel، التي طورها بات تيري كلغة تعليمية [ 17 ]
- YAFL، لغة بحثية من تأليف داريوس بلاسباند [ 18 ]
اعتمدت العديد من لغات البرمجة الحالية الأخرى ميزات من لغة Modula-2.
عناصر اللغة
الكلمات المحجوزة
يُعرّف نظام إدارة معلومات المنتج [2،3،4] أربعين كلمة محجوزة :
AND ELSIF LOOP REPEAT نهاية المصفوفة، تعديل، إرجاع بدء مجموعة وحدات الخروج عن طريق التصدير وليس حينها قضية من أجل الرجل CONST FROM OR TYPE تعريف شرط المؤشر حتى إجراء تنفيذ DIV VAR استورد المؤهلين أثناء وإلا في السجل مع
المعرفات المدمجة
يُعرّف PIM [3,4] 29 مُعرّفًا مُدمجًا :
حصريًا على ABS، لونجينت ريال مجموعة بتات حجم حقيقي طويل زائف قيمة منطقية عائمة قصوى صحيحة غطاء وقف الحد الأدنى للجذع كاردينال هاي نيل فال شار إنك أود CHR INCL ORD معالجة الأعداد الصحيحة العشرية
استخدام الأنظمة المدمجة
تُستخدم لغة Modula-2 لبرمجة العديد من الأنظمة المدمجة .
كامبريدج مودولا-2
تعتمد لغة البرمجة Cambridge Modula-2 من شركة Cambridge Microprocessor Systems على مجموعة فرعية من لغة PIM4 مع إضافات لغوية لتطوير الأنظمة المدمجة. يعمل المترجم على نظام MS-DOS ، ويُنتج شفرة برمجية لوحدات التحكم الدقيقة المدمجة من سلسلة Motorola 68000 (M68k) التي تعمل بنظام التشغيل MINOS.
مود 51
يعتمد برنامج Mod51 من شركة Mandeno Granville Electronics على لغة ISO Modula-2 مع إضافات لغوية لتطوير الأنظمة المدمجة وفقًا لمعيار IEC 1131 ، وهو معيار صناعي لوحدات التحكم المنطقية القابلة للبرمجة (PLC) يرتبط ارتباطًا وثيقًا بلغة Modula-2. يقوم مُجمِّع Mod51 بإنشاء رمز مستقل لوحدات التحكم الدقيقة القائمة على معالج 80C51.
مودولا-جي إم
طوّرت شركة ديلكو للإلكترونيات ، التي كانت آنذاك شركة تابعة لشركة جنرال موتورز هيوز للإلكترونيات ، نسخة من لغة البرمجة Modula-2 لأنظمة التحكم المدمجة بدءًا من عام 1985. وأطلقت عليها ديلكو اسم Modula-GM. وكانت هذه أول لغة برمجة عالية المستوى تُستخدم لاستبدال لغة الآلة في الأنظمة المدمجة لوحدات التحكم الإلكترونية (ECUs) الخاصة بمحركات ديلكو . وكان هذا إنجازًا هامًا نظرًا لأن ديلكو كانت تُنتج أكثر من 28,000 وحدة تحكم إلكترونية يوميًا في عام 1988 لصالح جنرال موتورز، التي كانت آنذاك أكبر مُصنّع لوحدات التحكم الإلكترونية في العالم. [ 19 ] وكان أول استخدام تجريبي للغة Modula-GM في وحدة تحكم مدمجة في نظام منع انغلاق المكابح (ABS) عام 1985، والذي كان يعتمد على معالج موتورولا 68xxx، وفي عام 1993، في وحدة التحكم الإلكترونية من الجيل الرابع (Gen-4 ECU) التي استخدمتها فرق بطولة سباقات السيارات العالمية (CART) وفرق دوري إندي للسباقات (IRL). [ 20 ] كان أول استخدام إنتاجي لـ Modula-GM في شاحنات جنرال موتورز، بدءًا من وحدة التحكم في المركبة (VCM) لطراز عام 1990، والتي استُخدمت لإدارة محركات Vortec من جنرال موتورز. كما استُخدمت Modula-GM في جميع وحدات التحكم الإلكترونية (ECUs) لعائلة محركات Buick V6 بزاوية 90 درجة من سلسلة 3800 II، المستخدمة في طرازات Buick Park Avenue من عام 1997 إلى 2005. وقد حصلت شركة Delco على مُجمِّعات Modula-GM وأدوات إدارة البرامج المرتبطة بها من شركة Intermetrics .
تم اختيار لغة Modula-2 كأساس للغة البرمجة عالية المستوى لشركة Delco نظرًا لمزاياها العديدة مقارنةً باللغات البديلة الأخرى في عام 1986. بعد انفصال شركة Delco Electronics عن شركة جنرال موتورز (مع أقسام المكونات الأخرى) لتشكيل شركة Delphi Automotive Systems في عام 1995 ، استلزم التوريد العالمي استخدام لغة برمجية عالية المستوى غير احتكارية. يتم الآن تجميع برامج وحدة التحكم الإلكترونية المدمجة التي يتم تطويرها في Delphi باستخدام مترجمات تجارية للغة C.
الأقمار الصناعية الروسية للملاحة الراديوية
تمت برمجة أقمار نظام الملاحة الراديوية عبر الأقمار الصناعية الروسي GLONASS ، المشابهة لنظام تحديد المواقع العالمي (GPS) في الولايات المتحدة ، باستخدام Modula-2. [ 21 ]
المترجمون
- مجموعة أدوات الترجمة أمستردام (ACK) Modula-2 - لنظام MINIX ؛ برنامج مجاني [ 22 ]
- ADW Modula-2 – لنظام التشغيل Windows، متوافق مع معايير ISO، ISO/IEC 10514-1، ISO/IEC 10514-2 (امتداد OO)، ISO/IEC 10514-3 (امتداد عام)؛ برنامج مجاني [ 23 ]
- Aglet Modula-2 – لنظام التشغيل AmigaOS 4.0 لأجهزة PowerPC ؛ برنامج مجاني [ 24 ]
- أدوات البرمجيات المجهزة (FST) Modula-2 - لنظام DOS؛ برنامج مجاني [ 25 ]
- Gardens Point Modula-2 (GPM) – لأنظمة BSD و Linux و OS/2 و Solaris ؛ متوافق مع معايير ISO؛ برنامج مجاني، اعتبارًا من 30 يوليو 2014 [ 26 ]
- Gardens Point Modula-2 (GPM/CLR) – لـ .NET Framework ؛ برنامج مجاني [ 27 ]
- GNU Modula-2 – لمنصات GCC (في عام 2023 مع الإصدار 13 تم دمجه رسميًا في مستودع GCC الرئيسي)، الإصدار 1.0 صدر في 11 ديسمبر 2010؛ الإصدار 15.1 صدر في 25 أبريل 2025؛ التوافق: PIM2، PIM3، PIM4، ISO/IEC 10514-1؛ برنامج مجاني ، رخصة جنو العمومية العامة (GPL) [ 28 ]
- لوجيتك [ 29 ] - كان لديهم أيضًا "نواة الوقت الحقيقي" للاستخدام المدمج (1987) [ 30 ] [ 31 ]
- M2Amiga – لأجهزة Amiga ؛ برنامج مجاني [ 32 ]
- M2M – من تأليف ن. ويرث والمتعاونين من ETH زيورخ، متعدد المنصات، يقوم بإنشاء رمز M للآلة الافتراضية ؛ برنامج مجاني [ 33 ]
- M2RT11 – من تصميم ن. ويرث وزملائه من المعهد الفدرالي السويسري للتكنولوجيا في زيورخ، تم إنشاؤه في الأصل لتمويل مشروع ليليث
- MacMETH – من تأليف ن. ويرث ومتعاونين من المعهد الفدرالي السويسري للتكنولوجيا في زيورخ لنظام ماكنتوش، الإصدار الكلاسيكي فقط؛ برنامج مجاني [ 34 ]
- Mod51 – لعائلة المتحكمات الدقيقة Intel 80x51، متوافق مع ISO، ملحقات IEC1132؛ برنامج خاص [ 35 ]
- Megamax Modula-2 – لجهاز أتاري ST مع وثائق؛ برنامج مجاني [ 36 ]
- Modula-2 R10 – مترجم مرجعي لهذا Modula؛ مفتوح المصدر، يخضع لمراجعة الأقران [ 37 ]
- ModulaWare – لنظام التشغيل OpenVMS ( VAX و Alpha )، متوافق مع معايير ISO؛ برنامج احتكاري [ 38 ]
- ORCA/Modula-2 - لجهاز Apple IIGS من إنتاج The Byte Works لصالح ورشة عمل مبرمجي Apple
- p1 Modula-2 – لنظام التشغيل Macintosh و Classic و macOS ( PowerPC و Carbon (API) فقط)، متوافق مع ISO؛ برنامج احتكاري [ 39 ]
- MOCKA – لمنصات مختلفة، متوافق مع PIM؛ إصدارات تجارية ومجانية لنظامي Linux/BSD [ 40 ]
- TDI Modula-2 – لجهاز أتاري ST ، من إنتاج شركة TDI Software [ 41 ]
- Terra M2VMS – لنظام التشغيل OpenVMS ( VAX و Alpha )، متوافق مع PIM؛ برنامج احتكاري [ 42 ]
- m2c، نظام Ulm Modula-2 - لنظام Solaris (Sun SPARC و Motorola 68k )؛ برنامج مجاني، رخصة جنو العمومية العامة (GPL) [ 43 ]
- XDS – مكتبة متوافقة مع معيار ISO، ومتوافقة مع TopSpeed: XDS-x86 الأصلي لأنظمة x86 (ويندوز ولينكس)؛ XDS-C لأنظمة ويندوز ولينكس (إصدارات 16 و32 بت)، تستهدف لغة C ( K&R و ANSI )؛ برنامج مجاني [ 44 ]
توربو مودولا-2
كان Turbo Modula-2 عبارة عن مُترجم وبيئة تطوير متكاملة لنظام MS-DOS ، طُوِّر بواسطة شركة Borland ، ولكن لم يُنشر . اشترت شركة Jensen and Partners، التي كان من بين مؤسسيها نيلز جنسن، قاعدة البيانات غير المنشورة وحوّلتها إلى TopSpeed Modula-2. وفي النهاية، بيعت إلى شركة Clarion، التي تُعرف الآن باسم SoftVelocity، والتي بدورها عرضت مُترجم Modula-2 كجزء من خط إنتاجها Clarion في ذلك الوقت. [ 45 ]
قامت شركة إيشيلون بتسويق نسخة من برنامج Turbo Modula-2 تعمل بنظام التشغيل CP/M ومعالج Zilog Z80 لفترة وجيزة بموجب ترخيص من شركة بورلاند. كما قامت شركة مايكرومينت ببيع نسخة مصاحبة منه تعمل بمعالج Hitachi HD64180 كأداة تطوير لجهاز الكمبيوتر أحادي اللوحة SB-180. [ 46 ]
آي بي إم مودولا-2
كان لدى شركة IBM مُصرّف Modula-2 للاستخدام الداخلي، والذي كان يعمل على كلٍ من نظامي التشغيل OS/2 و AIX ، وكان مدعومًا بشكل كامل في مُحرّر E2 الخاص بشركة IBM . [ 47 ] استُخدم مُصرّف IBM Modula-2 لأجزاء من الكود الداخلي المرخّص رأسيًا لنظام التشغيل OS/400 (والذي يُعتبر فعليًا نواة نظام التشغيل OS/400). [ 48 ] استُبدل هذا الكود في الغالب بلغة C++ عند نقل نظام التشغيل OS/400 إلى عائلة معالجات IBM RS64 ، على الرغم من بقاء بعض أجزائه في الإصدارات الحديثة من نظام التشغيل. [ 49 ] [ 50 ] كما وُجدت واجهة خلفية لمعالج Motorola 68000 ، والتي ربما استُخدمت في منتجات الأنظمة المُدمجة. [ 47 ]
أنظمة التشغيل
تُستخدم لغة Modula-2 لبرمجة بعض أنظمة التشغيل . ويتم استخدام بنية ودعم وحدات Modula-2 بشكل مباشر في نظامي تشغيل مرتبطين.
تم تطوير نظام التشغيل Medos-2 ، المخصص لمحطة عمل Lilith، في المعهد الفدرالي السويسري للتكنولوجيا في زيورخ (ETH Zurich) على يد سفيند إريك كنودسن، بمشورة من ويرث. وهو نظام تشغيل أحادي المستخدم، كائني التوجه، مبني على وحدات Modula-2. [ 51 ] [ 52 ] [ 53 ]
تم تطوير نظام التشغيل المسمى "إكسلسيور" لمحطة عمل كرونوس من قبل أكاديمية العلوم في الاتحاد السوفيتي ، فرع سيبيريا، مركز نوفوسيبيرسك للحوسبة، مشروع الأنظمة المعيارية غير المتزامنة القابلة للتطوير (MARS)، مجموعة أبحاث كرونوس (KRG). وهو نظام أحادي المستخدم يعتمد على وحدات Modula-2. [ 54 ]
الكتب
- غليفز، ريتشارد (1984). Modula-2 لمبرمجي باسكال . كتب سبرينغر في الحوسبة الاحترافية ( الطبعة الأولى). سويسرا: سبرينغر نيتشر. doi : 10.1007/978-1-4613-8531-8 . ISBN 978-0-387-96051-7. S2CID 346624 .
- كينغ، ك. ن. (1 يناير 1988). مودولا-2: دليل شامل . بيرلينغتون، ماساتشوستس : جونز وبارتليت للنشر. رقم ISBN 978-0669110913.
- ويرث، نيكلاوس (1988). البرمجة في Modula-2 ( الطبعة الرابعة). برلين هايدلبرغ : سبرينغر-فيرلاغ . دوى : 10.1007/978-3-642-83565-0 . رقم ISBN 978-0-387-96051-7. S2CID 41899609 .
- كوبر، دوغ (1 سبتمبر 1990). يا إلهي! مودولا-2: مقدمة في البرمجة . مدينة نيويورك ، نيويورك : دبليو دبليو نورتون وشركاه . ISBN 978-0393960099.
- هيلمان، بول (1 مارس 1998). الجدران والمرايا: حل المشكلات المتوسطة وهياكل البيانات: مودولا، 2 (سلسلة بنجامين/كامينغز في البرمجة الهيكلية) . بنجامين-كامينغز . ISBN 978-0805389456.
- سوتكليف، ريتشارد ج. (2004-2005). مودولا-2: تجريدات لهياكل البيانات والبرمجة . دار نشر أرجاي. رقم ISBN 978-0-669-11091-3.يستخدم معيار ISO-2 Modula-2.
مراجع
- ↑ "ملخص مشاريع ن. ويرث، 1962-1999" . قسم علوم الحاسوب . المعهد الفدرالي السويسري للتكنولوجيا في زيورخ .
- ↑ ويرث، نيكلاوس (2002). "باسكال وخلفاؤها". في: بروي، مانفريد؛ دينرت، إرنست (محرران). رواد البرمجيات: مساهمات في هندسة البرمجيات . برلين، هايدلبرغ: سبرينغر-فيرلاغ . ص 108-120 . doi : 10.1007/978-3-642-59412-0 . ISBN 978-3-642-59412-0. S2CID 2698265 .
- ↑ ويرث، نيكلاوس (18 فبراير 2005). "تاريخ وأهداف مودولا-2" . مجلة دكتور دوب . إنفورما بي إل سي.
- 1 2 ويرث، نيكلاوس (1988). البرمجة بلغة Modula-2 ( الطبعة الرابعة). برلين، هايدلبرغ: سبرينغر. doi : 10.1007/978-3-642-83565-0 . ISBN 978-3-642-83565-0. S2CID 41899609 . الصفحة 4.
- ^ ويرث، نيكلاوس ؛ الأماكن القريبة : اوهران، ريتشارد. بول، روبرت ج. ديفيد كور (أغسطس 1984). "الموضوع: Modula-2" . بايت: مجلة الأنظمة الصغيرة . المجلد. 9، لا. 8. ص 143 – 232. متاح على موقع Archive.org
- ↑ ويرث، نيكلاوس (1 مايو 1984). "مترجم Modula-2 أحادي المرور لليليث" (ملف PDF) . برمجيات CFB . تم الاطلاع عليه بتاريخ 23 نوفمبر 2023 .
- ↑ تستند هذه المقالة إلى مواد مأخوذة من Modula-2 في قاموس الحوسبة المجاني على الإنترنت قبل 1 نوفمبر 2008 وتم دمجها بموجب شروط "إعادة الترخيص" الخاصة بـ GFDL ، الإصدار 1.3 أو أحدث.
- ↑ ISO/IEC 10514-1:1996
- ↑ Tichy et al., Modula-2*: An Extension for Modula-2 for highly parallel portable programs, University of Karlsruhe [1990]
- ^ برونل، البرمجة المتوازية، برنتيس هول [1993]
- ↑ مولر، سي. (نوفمبر 1986). "موديولا-برولوج: تطوير البرمجيات". مجلة IEEE للبرمجيات . 3 (6): 39-45 . doi : 10.1109/MS.1986.229475 . S2CID 763425 .
- 1 2 modula2.org، 5. أين يمكنني الحصول على معلومات حول ISO Modula-2؟
- ↑ كارديلي وآخرون، تقرير Modula-3 ، تقرير بحثي 31، مركز أبحاث الأنظمة، شركة المعدات الرقمية، [1988]
- ↑ ن. ويرث وج. غوتكنيشت، مشروع أوبرون: تصميم نظام تشغيل ومترجم، رقم ISBN 0-201-54428-8، أديسون-ويسلي [1992]
- ↑ Moessenboeck & Wirth, The Programming Language Oberon-2 , ETH Zurich [1995]
- ↑ توماس براونل، بارالاكسيس، لغة للبرمجة المتوازية للبيانات المهيكلة، جامعة شتوتغارت [1996]
- ↑ بات د. تيري، لغة برمجة بسيطة أخرى، إشعارات ACM SIGPLAN رقم 30 [1995]
- ↑ د. بلاسباند، لغة برمجة YAFL، الطبعة الثانية، [1993]
- ↑ مجلة ديلكو للإلكترونيات، إرث أتوود، ربيع 1989، صفحة 25
- ↑ تطوير الإلكترونيات لسباقات السيارات من جنرال موتورز
- ↑ كولتاشيف، أ.أ. (2006). "موديولا-2 في الفضاء الروسي" . كرونوس: تاريخ مشروع (باللغة الروسية). إكس تك . تم الاطلاع عليه بتاريخ 8 أبريل 2021 .
- ↑ جيفن، ديفيد (9 أكتوبر 2020). "ACK" . جيت هاب . تم الاسترجاع في 13 مارس 2021 .
- ^ "وحدة ADW-2" . Modula-2.org . تم الاسترجاع في 13 مارس 2021 .
- ↑ "Aglet Modula-2" . Aglet Modula-2 . 15 فبراير 2012. تم الاطلاع عليه بتاريخ 13 مارس 2021 .
- ↑ "FST Modula-2" . psg.com ( FTP ) . تم الاسترجاع في 13 أكتوبر 2021 .(للاطلاع على المستندات، انظر صفحة المساعدة: FTP )
- ↑ "Gardens Point Modula" . مجموعة لغات البرمجة والأنظمة، كلية تكنولوجيا المعلومات . جامعة كوينزلاند للتكنولوجيا، بريسبان. 29 يناير 2007. مؤرشف من الأصل في 23 مارس 2013. تم الاطلاع عليه في 13 مارس 2021 .
- ^ ك جون جوف (25 أكتوبر 2010). "جاردنز بوينت مودولا-2 (GPM/CLR)" . جيثب . تم الاسترجاع في 16 أكتوبر 2022 .
- ↑ "GNU Modula-2" . سافانا . مؤسسة البرمجيات الحرة. 30 أغسطس 2018. تم الاطلاع عليه بتاريخ 13 مارس 2021 .
- ↑ جاكوبس، كريس (1984). "توربو باسكال الإصدار 2.0" . لغة الحاسوب . المجلد 1، العدد 1. الصفحات 71-74 . تاريخ الاسترجاع: 6 أبريل 2025 .
- ↑ "Logitech Modula-2" . مجلة المطورين الإلكترونية لنظام التشغيل OS/2 (EDM/2) . تم الاطلاع عليه بتاريخ 29 مايو 2022 .
- ^ "1988: Modula-2 و Logitech RTK" . أويفيند تيج. 12 أبريل 2022.
صورة القرص المرن
- ^ ديجين، رينيه. نيدر، كلاوديو؛ بريوسينج، بيرند؛ شواب، ماركوس. ستروب، يورغ (2004). "M2 أميغا" . موقع كلاوديو على شبكة الإنترنت . ايه+إل ايه جي. مؤرشفة من الأصلي في 20 يناير 2019 . تم الاسترجاع في 13 مارس 2021 .
- ↑ "ليليث ومودولا-2" . شركة سي إف بي للبرمجيات . تم الاطلاع عليه بتاريخ 23 نوفمبر 2023 .
- ↑ "MacMETH: نظام لغة Modula-2 سريع لأجهزة ماكنتوش" . المعهد الفدرالي السويسري للتكنولوجيا في زيورخ: علم بيئة الأنظمة الأرضية . 22 يناير 2020. تاريخ الاطلاع: 13 مارس 2021 .
- ↑ "لغة برمجة النصوص المهيكلة Mod51" . أدوات التصميم . مؤرشف من الأصل في 21 أكتوبر 2008. تم الاطلاع عليه في 13 مارس 2021 .
- ↑ تمبلمان، توماس (1 سبتمبر 2020). "الصفحة الرئيسية لتوماس تمبلمان" . تم الاطلاع عليه بتاريخ 18 مارس 2021 .
- ^ "مودولا-2 آر10" . تم الاسترجاع في 13 أكتوبر 2021 .
- ↑ دوتزل، تشيه-يا (21 يناير 2020). "ModulAware" . تم الاسترجاع في 18 مارس 2021 .
- ↑ ويدمان، ألبرت (13 يناير 2021). "p1 Modula-2" . جمعية علوم الحاسوب p1 . تم الاطلاع عليه في 19 مارس 2021 .
- ↑ بيك، مايكل؛ جيس، روبينو (2006). "مترجم كارلسروه مودولا-2 موكا" . معهد هياكل البرامج وتنظيم البيانات (IPD) . معهد كارلسروه للتكنولوجيا . مؤرشف من الأصل في 4 سبتمبر 2009. تم الاطلاع عليه في 21 مارس 2021 .
- ↑ جيفرسون، غاريث (أغسطس 1986). "مترجم Modula-2" . مجلة الحاسوب الشخصي الأسترالية . الصفحات 49، 52، 54، 56، 58. تاريخ الاطلاع: 8 أكتوبر 2022 .
- ↑ "أنظمة Modula-2 لأنظمة OpenVMS/Alpha و OpenVMS/VAX" . Terra Datentechnik (باللغتين الإنجليزية والألمانية). إرلينباخ، سويسرا. 12 نوفمبر 2002. تاريخ الاطلاع: 23 مارس 2021 .
- ↑ بورتشيرت، أندرياس؛ هاش، مارتن (21 يناير 2003). "m2c: نظام Modula-2 الخاص بجامعة أولم" . جامعة أولم . أولم ، ألمانيا . تاريخ الاسترجاع: 23 مارس 2021 .
- ↑ "مجموعة منتجات XDS: أدوات تطوير Modula-2 – Oberon-2" . شركة Excelsior LLC . 1999–2009. مؤرشف من الأصل في 27 مايو 2009. تم الاطلاع عليه في 23 مارس 2021 .
- ↑ "نبذة عن كلاريون" . مؤرشف من الأصل في 7 ديسمبر 2002. تم الاطلاع عليه في 31 مارس 2023 .
- ↑ "Circuit Cellar" . بايت: مجلة الأنظمة الصغيرة . المجلد 11، العدد 13. ص 98.
- 1 2 "IBM Modula-2" . edm2.com . 2 مارس 2019. تم الاطلاع عليه بتاريخ 12 مارس 2021 .
- ↑ "تعليقات القراء على حل لغز تحويل نظام AS/400 إلى i" . itjungle.com . 21 فبراير 2011. تم الاطلاع عليه بتاريخ 12 مارس 2021 .
- ↑ سولتيس، فرانك ج. (1997). داخل نظام AS/400 ( الطبعة الثانية). مطبعة ديوك. ISBN 978-1882419661.
- ^ ليف سفالجارد (8 أكتوبر 2003). "رد: رد: محاكي MI" . MI400 (القائمة البريدية) . تم الاسترجاع في 26 فبراير 2021 .
- ↑ كنودسن، سفيند إريك (1983). ميدوس-2: نظام تشغيل موجه نحو Modula-2 للحاسوب الشخصي ليليث (أطروحة دكتوراه). المعهد الفدرالي السويسري للتكنولوجيا في زيورخ . doi : 10.3929/ethz-a-000300091 . hdl : 20.500.11850/137906 .
- ^ كنودسن ، سفيند إريك (25 أكتوبر 2000). “ميدوس في الماضي”. في Böszörményi، لازلو؛ الأماكن القريبة : بومبيرجر، جوستاف (محرران). مدرسة نيكلاوس ويرث: فن البساطة . مورجان كوفمان. ص 69 – 86. ISBN 978-1558607231.رقم الكتاب المعياري الدولي (ISBN) 1-55860-723-4وdpunkt، ISBN 3-932588-85-1.
- ↑ ساند، بول أ . (سبتمبر 1984). "حاسوب ليليث الشخصي" . بايت . ص 300-311 . تم الاطلاع عليه في 6 مارس 2021 . إعادة طبع.
- ↑ كوزنيتسوف، د.ن.؛ نيدوريا، أ.إ.؛ تاراسوف، إ.ف.؛ فيليبوف، ف.إ. "كرونوس: عائلة من المعالجات للغات البرمجة عالية المستوى" . كرونوس: تاريخ مشروع (باللغة الروسية). إكس تك . تم الاطلاع عليه بتاريخ 13 أبريل 2021 .
روابط خارجية
- لغات البرمجة المترجمة
- عائلة لغات البرمجة Modula
- لغات برمجة الأنظمة
- لغات البرمجة التي تم إنشاؤها عام 1978
- لغات البرمجة ذات معيار ISO
- لغات البرمجة ذات الكتابة الثابتة
- لغات البرمجة عالية المستوى
