مرجع
آخر الزيارات

ماد (لغة برمجة)

3٬131 كلمة•0 مشاهدة•🗒️ منذ يوم
باختصار: MAD (اختصارًا لِـمفسِّر خوارزميَّة ميشيغان) (Michigan Algorithm Decoder), هي لغة برمجة ومترجم مطور في جامعة ميشيغان بواسطة برنار غالير وبروس أردن بروس وروبرت جراهام University of Michigan by Bernard Galler, Bruce Arden، Robert M. في هذه المقالة 32 قسماً: «عبارات قابلة للتنفيذ»، «أنواع البيانات» و«END OF CONDITIONALنهاية مشروطة» وغيرها.
المحتويات
  1. عبارات قابلة للتنفيذ
  2. أنواع البيانات
  3. END OF CONDITIONALنهاية مشروطة
  4. التعبيرات
  5. PRINT FORMAT (اطبع التنسيق) القائمة
  6. العوامل الحسابية
  7. الوظائف
  8. PRINT RESULTS (اطبع النتائج) القائمة
  9. عبارات المدخلات والمخرجات
  10. الوضع العادي هو وضع رقم n
  11. العوامل المنطقية
  12. المصفوفات
  13. اسم الوظيفة
  14. الأسماء
  15. عناصر اللغة
  16. WRITE BINARY TAPE (اكتب الشريط ثنائي)، القائمة
  17. END OF PROGRAM
  18. TRANSFER TO (أنقل إلى) عبارة - التسمية
  19. PRINT OCTAL RESULTS (اطبع نتائج الثمانى) القائمة
  20. إدراج المراجع
  21. MAD/Iو MADو GOM
  22. RESTORE DATA list قائمة استعادة البيانات
  23. نسق المدخلات
  24. مشغل التعريف وإعادة التعريف
  25. OR WHENEVER (أو أي وقت) عبارة منطقية
  26. العمود 11 هو العمود الملاحظة واستمرار
  27. FUNCTION RETURN (إعادة الوظيفة) [المصطلح]
  28. A trivial example of a MAD program
  29. العوامل الترابطية
  30. READ FORMAT (اقرأ التنسيق) تنسيق، القائمة
  31. عبارات التصريح
  32. التاريخ

في البداية، MAD (اختصارًا لِـمفسِّر خوارزميَّة ميشيغان) (Michigan Algorithm Decoder), هي لغة برمجة ومترجم مطور في جامعة ميشيغان بواسطة برنار غالير وبروس أردن بروس وروبرت جراهام University of Michigan by Bernard Galler, Bruce Arden، Robert M. Graham. وفيما يلي تفاصيل أوسع عن ذلك.

عبارات قابلة للتنفيذ

variable* متغير = التعبير (مهمة)

أنواع البيانات

ومن ناحية أخرى، تعامل على أنها صحيحة، مخزنة منحنية إلى الأيسر ومحشوة في اليمين من 0 حتي 5 فراغات.

وفي السياق ذاته، الثوابت الأبجدية أو الأحرف (من1 إلى 6 أحرف محددة باستخدام علامة الدولار ($ABCDEF$)، يتم استخدام علامة الدولار المزدوج تستعمل لإدخال علامة الدولار الحقيقية ($$$.56$ هي 56 سنتات).

  • النقطة العائمة (10−38 to 1038)
  • تكتب بنقطة عشرية بدون الأس (0., 1.5, -0.05, +100.4, -4.) ;
  • تكتب بالأس بدون النقطة العشرية (.05E-2, -.05E2, 5E02, 5.E2)
  • القيم المنطقية (1B للحقيقية و0B للخطأ)
  • بيان (عبارة) العلامة
  • MAD يستعمل مصطلح "mode" لأنواع البيانات الخاصة به. ويدعم خمس طرق أساسية:
  • الأعداد الصحيحة (من 9,999,999,999 - إلى 9,999,999,999+)
  • ثوابت اللأعداد الصحيحة (1, +1, -1)
  • الثوابت الثمانى (ل7777777777777الف)
  • تعامل على أنها أعداد صحيحة، وتكتب مع أو بدون عامل قياس (1K10, 1K)

END OF CONDITIONALنهاية مشروطة

  • CONTINUE* (استمرار) (عبارة فعل لا شيء، عادة ما تستعمل لحمل تسمية البيان)
  • THROUGH (من خلال) بيان التسمية، للقيم المتغيرة = قائمة العبارات (التكرار)
  • SET LIST TO (إعداد القائمة إلى) مصفوفة عناصر، [العبارات]
  • SAVE DATA list* قائمة حفظ البيانات

التعبيرات

علاوةً على ذلك، الجانبين الأيسر والأيمن من المهمة لابد أن يكونان من نفس النوع، عدا عبارات العدد الصحيح أو النقطة العائمة على اليمين سوف يتم تحويلها لعبارات نقطة عائمة أو عدد صحيح إالى اليسار إذا لزم الأمر.

وفي هذا السياق، تعبيرات العدد الصحيح، النقطة العائمة، والتعبيرات المنطقية. متوفرة والعدد الصحيح ومتغيرات النقطة العائمة والثوابت يمكن أن تجمع في تعبير واحد مع النقطة العائمة كنتيجة (قد يتم تنفيذ أجزاء من هذا الحساب باستخدام عدد حسابى صحيح والنتيجة النهائية قد تختلف عن تلك التي تم الحساب ككل بالنقطة العائمة).

PRINT FORMAT (اطبع التنسيق) القائمة

علاوةً على ذلك، WRITE BCD TAPE (اكتب الشريط بترميز عشري ثنائى)، تنسيق، القائمة

إضافةً إلى ذلك، PRINT ON LINE FORMAT (اطبع على شكل خط التنسيق)، القائمة (عرض رسالة لمشغل الآلة)

العوامل الحسابية

  • ABS. (أحادي القيمة المطلقة)
  • + (هوية أحادي)
  • - (نفي أحادي)
  • + (إضافة)
  • - (الطرح)
  • * (الضرب)
  • / (قسمة)
  • P. (الأسي)
  • N. (تمثل إنكار)
  • A*. (وتمثل)
  • V* (تمثل أو)
  • EV. (أو تمثل أو حصرية)
  • LS. (التحول إلى اليسار)
  • RS. (التحول إلى اليمين)
  • REM. (الباقي، جوم فقط)
  • مشغلي المؤشر (جوم فقط)
  • : (اختيار)
  • LAC. (موقع)
  • IND. (مراوغة)

الوظائف

كذلك، الوظائف تمرر المتحولات بالقيمة. المتحولات يمكن ان تكون مصطلحات وعبارات العلامات والأسماء الوظائف.

علاوةً على ذلك، الوظائف المتداخلة أو المتتالية مسموح بها، على الرغم من أن الوظيفة يجب أن تقوم بعمل الحفظ المطلوب ومعاودة العمل من تلقاء نفسها نفعل.

  • INTERNAL FUNCTION (الوظيفة الداخلية) اسم الوظيفة (قائمة المتحولات)
  • EXTERNAL FUNCTION (الوظيفة الخارجية) اسم الوظيفة (قائمة المتحولات)
  • ENTRY TO NAME (إدخال اسم) اسم.
  • END OF FUNCTION (انتهاء الوظيفة) (العبارة الأخيرة في تعريف الخط المتعدد)

يسمح لتعريف الوظيفة الداخلية باستخدام عبارة واحدة للتعريف.

وفي هذا السياق، INTERNAL FUNCTION (الوظيفة الداخلية) اسم الوظيفة (قائمة المتحولات) = المصطلح (عبارة واحد للتعريف)

ومن جهة أخرى، الوظائف الداخلية والخارجية معتمدة. يتم تصنيف الوظائف الداخلية كجزء من البرنامج الذي تستعمل فيه ويقتسموا الإعلان والمتغيرات مع البرنامج الرئيسي. الوظائف الخارجية يتم ترجمتها بشكل منفصل ولا تقتسم الإعلانات والمتغيرات.

كذلك، أسماء الوظائف تنتهي بنقطة. الوظائف ذات القيمة الواحدة تسمى عندما يتم الرجوع إليها باسم تسمى كجزء من مصطلح، بينما الوظائف الغير أحادية القيمة (إجراءات) تسمى باستخدام العبارة EXECUTE (تنفيذ).

PRINT RESULTS (اطبع النتائج) القائمة

PRINT BCD RESULTS (اطبع نتائج بترميز عشري ثنائى) القائمة

عبارات المدخلات والمخرجات

كذلك، READ DATA (قراءة البيانات باستخدام تحديد التنسيق الذاتي، var1=value1, var2=value2,..., varN=valueN

من جهة ثانية، READ AND PRINT DATA (مشابهة لقراءة البيانات، ولكن قراءة البيانات هو صدى للطابعة)

الوضع العادي هو وضع رقم n

كذلك، البعد المتغير (max-dimension) (يظهر مصفوفة من 0... البعد -الأقصى)

البعد المتغير (from...to) (من... إلى)

  • مصفوفة القيم المتجهة (n) VECTOR VALUES array = c1, c2, c3,...
  • مصفوفة القيم المتجهة (n) array (m) VECTOR VALUES array = ثابت
  • الوضع المزدوج التخزين قائمة الأوضاع (ضعف كمية التخزين المخصصة للأوضاع المذكورة)
  • التعادل (a1, a2,..., am)
  • البرنامج المشترك a, b, c,... (قد تشمل معلومات البعد)
  • القابل للمسح a, b, c,... (قد تشمل معلومات البعد)
  • العامل A1 <(B1/sub>), A2(B2),..., An(Bn)
  • جدول الرموز المتجه المتغير SYMBOL TABLE VECTOR variable
  • جدول الرموز المتجه المتغيرالكامل Full SYMBOL TABLE VECTOR variable
  • الإدراج في (الوضع الافتراضي)
  • خارج الإدراج

ومن ناحية أخرى، البعد المتغير (subscript1, subscript2,..., subscriptn) (الحرف السفلى 1، الحرف السفى 2... الحرف السفلى n) (يظهر مصفوفة متعددة الأبعاد)

العوامل المنطقية

  • NOT. (لا أحادية منطقية)
  • OR. (أو منطقية)
  • EXOR. (المنطقية الخالصة أو)
  • AND. (و منطقية)
  • THEN. (يعني ضمنا)
  • EQV. (التعادل)
  • تمشغلين بت BIT (جوم فقط)
  • SETBIT. (حدد بت إلى 1)
  • RESETBIT. (إعادة تحديد بت إلى 0)
  • BIT. (بت اختبار)

المصفوفات

كذلك، مصفوفات Matricesهى طوابق في مواقع الذاكرة المتتالية بحسب الترتيب الذي تحدده تنوع الأحرف المنخفضة أقصى اليمين أولاً.

من جانب آخر، المصفوفات يجب أن تكون مصرحة باستخدام عبارة البعد، عن طريق ادراج معلومات البعد على عبراة تصريح أخرى، أو يمكن أن يكون مصرح ضمنا باستخدام عبارة VECTOR VALUES.

يسمح للأحرف السفلية السلبية والصفر.

  • في جوم GOM مصفوفات الأحرف يمكن الرجوع إليها باستخدام الترميز التالي:
  • مصفوفة (أول... آخر)
  • مصفوفة (... آخر)
  • مصفوفة (أول...)
  • مصفوفة (...)
  • مجموعة س (الأولى – الطول)
  • المشغلين

في هذا الإطار، المصفوفات ذات البعد الواحد تسمى vectors والمصفوفات ذات الأبعاد المتعددة matrices.

كذلك، وهناك تسهيلات تسمح بتغيير الأبعاد في وقت التشغيل؛ يسمح للمبرمج بتغيير موقع العنصر الأولي في المصفوفة داخل الكتلة الشاملة التي وضعت جانبا للمصفوفة، والسماح بتخزين الخرائط التعسفى أن يكون محدد.

كذلك، مصفوفات Matrices يمكن الرجوع إليها باستخدام حرف سفلى لكل بعد، الاسم (s1,s2,s3)، أو باستخدام حرف واحد سفلى، الاسم (s1).

اسم الوظيفة

وعلى صعيد آخر، السلسلة التي تطول عن ستة أحرف قد تكون ممثلة باستخدام المصفوفات.

في هذا الإطار، تكتب اسم ويليه نقطة (SQRT.)، حيث أن الأسماء هي من واحد إلى ستة أحرف أبجدية أو الأرقام العشرية الطويلة ويجب أن تبدأ بحرف أبجدي.

بالنسبة لجوم GOM :

وعلى صعيد آخر، النمط الثابت ويمكن إعادة تحديده بإضافة حرف M يليه رقم واحد في نهاية الثابت، حيث يشير 0 إلى نقطة عائمة، 1 صحيحا، 2 منطقياً، 3 اسم الوظيفة، 4 بيان (التسمية) العالمة.

ومن ناحية أخرى، الأحرف الثوابت قد تكون محددة باستخدام إما علامة الدولار ($) أو فاصلة الاقتباس المزدوجة (")

ومن جهة أخرى، ستة صيغ يتم إضافتها: حرف، عدد صحيح قصيرة، بايت عدد صحيح، عدد صحيح طويل، المؤشر، وسجل ديناميكي؛ CHARACTERو SHORT INTEGERو BYTE INTEGERو LONG INTEGER, POINTERو DYNAMIC RECORD

المتغيرات الغير مهيأة مسبقا ليست معدة لتكون قيمة معروفة.

الكلمات ذات الـ 4 بايت تم استخدامها لخمس صيغ أصلية؛

ومن جهة أخرى، الثوابت قد تكون مؤهلة بإلحاق للعلامة آت (@) متبوعة بحرف واحد أو أكثر: @X (عشري)، @Ln (طول بايت n)، @Mn (واسطة n)، @F أو @FT (نقطة عائمة)، @I or @IR (عدد صحيح)، @BN (منطقية)، @ @Cأو @CH, أو @CR (حرف)،@SIأو @SR, أو @H (عدد صحيح قصيرة)، @BI أو @BR (عدد صحيح البايت)، @LI أو @LR (عدد صحيح طويل)، و@P (مؤشر)؛

من جهة ثانية، قوائم المدخلات والمخرجات وعبارات القيم المتجهة VECTOR VALUES وبعض الوظائف الفرعية تسمح باستخدام كتل الرموز، والذي لها شكل A,...,B أو A...B, وهو إشارة إلى المنطقة بأكملها من A إلى B، شاملة. حسب وجهة vector، فإن A(1)...A(N) يكون A(1), A(2), A(3),..., A(N).

الأسماء

بالنسبة لجوم GOM :

ومن ناحية أخرى، كل الأسماء يمكن كتابتها سفليا (الاسم متبوعا بأقواس، مع الحروف السفلية المتعددة والمفصولة بفواصل ). لا يوجد حد لعدد الاحرف السفلية.

نفس الاسم لا يمكن استخدامه لأكثر من غرض واحد.

وعلى صعيد آخر، أسماء المتغيرات وأسماء الوظائف، وبيان عبارات التسميات، لها نفس الشكل حرف يليه من صفر إلى خمس أحرف أو أرقام. أسماء الوظائف تنتهي بنقطة.

اأسماء قد تتضمن علامة السطر السفلى (_).

الأسماء قد يصل طولها إلى 24 حرفا،

عناصر اللغة

وتتألف MAD وجوم GOM، ولكن ليس MAD/I، من العناصر التالية:

WRITE BINARY TAPE (اكتب الشريط ثنائي)، القائمة

BACKSPACE FILE OF TAPE n (إرجاع ملف الشريط)

ومن جهة أخرى، PUNCH FORMAT قائمة (تنسيق التثقيب)، * LOOK AT FORMAT (انظر إلى التنسيق) القائمة (اقرأ البيانات دون التقدم إلى السجل التالي)

  • SET LOW DENSITY TAPE n أضبط الشريط منخفض الكثافة
  • SET HIGH DENSITY TABLE n أضبط الجدول عالى الكثافة
  • REWIND TAPE n (راجع لف الشريط)
  • UNLOAD TAPE n (فرغ الشريط)
  • FORMAT VARIABLE list (تنسيق المتغير) (الإظهار، قد يتضمن معلومات البعد)

وعلى صعيد آخر، BACKSPACE RECORD OF TAPE n, IF LOAD POINT TRANSFER TO statement إرجاع تسجيل الشريط إذا كانت نقطة التحميل تحولت

من جانب آخر، BACKSPACE FILE OF TAPE n, IF LOAD POINT TRANSFER TO statement (إرجاع ملف الشريط إذا كانت نقطة التحميل تحولت)

  • REWIND TAPE n (لف الشريط)
  • END OF FILE TAPE n(أنتهاء ملف الشريط)
  • BACKSPACE RECORD OF TAPE n (إرجاع تسجيل الشريط)

END OF PROGRAM

إضافةً إلى ذلك، يتم التعامل مع الحرف الأول من السطر ك حرف التحكم المنطقي، في هذا المثال حرف الصفر الذي يؤدي إلى طباعة خط مزدوج متباعد.

  • P'T HELLOW
  • V'S HELLOW=$13h0Hello, world*$
  • E'M

في هذا الإطار، أو، في حالة ادخال كل الكلمات الرئيسية في المثقبة بلوحة المفاتيح الخاص بك هو عمل كثير، يمكنك استخدام تقلصات والمترجم يقوم بتوسيعها في العرض:

TRANSFER TO (أنقل إلى) عبارة - التسمية

وفي هذا الصدد، WHENEVER* (أي مكان) عبارة منطقية، وتعبير قابل للتنفيذ (شرطى بسيط بسيطة)

WHENEVER (أي مكان) عبارة منطقية، (مركب شرطى)

PRINT OCTAL RESULTS (اطبع نتائج الثمانى) القائمة

ومن ناحية أخرى، PRINT COMMENT $string$ (اطبع التعليق) (الحرف الأول من السلسلة يتحكم بالنقل)

إدراج المراجع

المراجع خارج القائمة (الوضع الافتراضي)

MAD/Iو MADو GOM

وعلى صعيد آخر، 3. جوم GOM(ماد القديم الجيد) (Good Old MAD)، وإعادة تطبيق لـ 7090 MAD الأصلي لسلسلة آي بي إم S/370 IBM S/370 series لأجهزة الكمبيوتر المركزية لتشغيل نظام محطة ميتشيغان Michigan Terminal System (MTS). تم إنشاء جوم GOM في أوائل الثمانينات 1980 بواسطة دون بوتنر Don Boettner في مركز الحاسب الآلي بجامعة ميشيغان.

هناك ثلاثة تراجم لـ MAD :

في هذا الإطار، 2. MAD/I، هو إصدار مطول من MAD لسلسلة S/360 آي بي إم IBM S/360 من أجهزة الكمبيوتر التي تعمل في منظومة محطة ميشيغان Michigan Terminal System (MTS). بدأ العمل في المترجم الجديد في عام 1965 كجزء من وكالة مشاريع البحوث المتقدمة ARPA برعاية مشروع CONCOMP في جامعة ميشيغان. عندما أحرز العمل تقدما أصبح تدريجيا واضحا أنI /MAD كانت لغة جديدة مستقلة عن الإصدار الأصلي من 7090 MAD.

علاوةً على ذلك، 1. MAD الأصلي المترجم كشف عنه في عام 1959 في جامعة ميشيغان لكمبيوتر آي بي إم 704 IBM 704و في وقت لاحق آي بي إم 709 IBM 709 وأجهزة الكمبيوتر المركزية وآي بي إم 7090 IBM 7090 mainframe من النظام التنفيذي لجامعة ميتشيغان (UMES) وأنظمة تشغيل النظام المناسب لتقسيم الوقت (CTSS).. وفي منتصف الستينات 1960.لغة MAD استدارت في جامعة ميريلاند University of Maryland ليونيفاك 1108UNIVAC 1108. إصدارات MAD كانت متوفرة كذلك لفيلكو 210-211 Philco ويونيفاك 1107 UNIVAC 1107.

RESTORE DATA list قائمة استعادة البيانات

وفي هذا الصدد، PAUSE NO (لا وقوف) عدد ثمانى صحيح (وقف التنفيذ، وطباعة رقم ثماني على مشغل وحدة التحكم، والسماح إعادة التشغيل يدويا)

وفي السياق ذاته، END OF PROGRAM (انتهاء البرنامج) (العبارة الأخيرة في جميع البرامج MAD)

نسق المدخلات

الأعمدة من1 إلى 10 تحتوي على تسمية عبارة اختيارية

كذلك، برامج MAD هي سلسلة من بيانات مكتوبة على بطاقات مثقبة، في الغالب عبارة واحد للبطاقة الواحدة، رغم أنه يمكن ان تستكمل العبارة في بطاقات متعددة.

مشغل التعريف وإعادة التعريف

INCLUDE إدراج الحزمة

وفي هذا الصدد، خيارات الوضع، هي الخيارات التي تظهر على عبارة تركيبة الوضع MODE STRUCTURE.

علاوةً على ذلك، MODE STRUCTURE mode-no = mode-no existing-op mode-no (تركيب الوضع) SAME SEQUENCE AS mode-no existing-op mode-no (نفس التسلسل)

في هذا الإطار، ثلاث باقات من التعاريف محددة مسبقا (ماتريكس MATRIX، الدقة المزدوجة DOUBLE PRECISION، ومعقدة COMPLEX) متاحة للإدراج في مصدر برامج MAD باستخدام عبارة الادراج INCLUDE.

من جهة ثانية، أحد السمات الأكثر إثارة للاهتمام في MAD هو القدرة على تمديد اللغة من خلال إعادة تعريف المشغلين القائمين، وتحديد مشغلين جدد، أو تحديد أنواع بيانات جديدة (أوضاع). التعريفات مصنوعة باستخدام عبارات إعلان MAD ولغة التجميع mnemonics (الاستذكار) تشمل اتباع الإعلان حتى النهاية END التعليمة - الزائفة التي تنفذ العملية.

حيث:

ومن ناحية أخرى، Rank الرتبة هي واحدة من على النحو نفسه SAME AS، أقل من LOWER THAN، أو أعلى من HIGHER THAN

إضافةً إلى ذلك، DEFINE BINARY OPERATOR defined-op, PRECEDENCE rank existing-op MODE STRUCTURE mode-options (تحديد مشغل ثنائي، أسبقية، تركيبة وضع التشغيل) حدد مشغل ثنائى بأسبقية المرتبة باختيار تركيبة وضع التشغيل

وعلى صعيد آخر، DEFINE UNARY OPERATOR defined-op, PRECEDENCE rank existing-op MODE STRUCTURE mode-options (تحديد مشغل أحادي، أسبقية، تركيبة وضع التشغيل) حدد مشغل أحادي بأسبقية المرتبة باختيار تركيبة وضع التشغيل

من جهة ثانية، MODE STRUCTURE mode-no = mode-no existing-op mode-no (تركيب الوضع)

OR WHENEVER (أو أي وقت) عبارة منطقية

OTHERWISE (غير ذلك) يا منطقية كلما أو التعبير عن

العمود 11 هو العمود الملاحظة واستمرار

من جانب آخر، قد يشمل الإدخال الحروف الكبيرة والصغيرة، ولكن الصغيرة يتم تجاهلا إلا في ثوابت الحرف.

الإدخال هو شكل حر،

وفي السياق ذاته، كلمات رئيسية قليلة في اللغة محجوزة لأن أغلب الكلمات أطول من ستة أحرف أو محاطة بفترات. هناك معيار مجموعة من الاختصارات التي يمكن استخدامها لتحل محل الكلمات الطويلة. وتتألف هذه المجموعة من الأحرف الأولى والأخيرة من الكلمات الرئيسية مع الفاصلة العليا بينهما، مثل لW'R لكلمة WHENEVER و D'Nلكلمة DIMENSION.

كذلك، مجموعة الأحرف المعتمد عليها تتضمن الأحرف الكبيرة من Aالى Z، والأرقام من 0الى9، والعلامات، (فاصلة)، + (زائد) -- (ناقص)، '(الفاصلة العليا)، =، *، /، ،&، وفارغة أو مسافة. ولكن لا يدعم الاحرف الصغيرة و"(اقتباس مزدوج).

خطوط الإدخال قد يصل طولها إلى 255 حرفا،

وفي السياق ذاته، البطاقة الأولى للعبارة فارغة أو ليس لها ثقب في البطاقة في العمود 11 وبطاقات الاستمرار تحتوي على الأرقام 0 إلى 9 في العمود 11. يتم وضع علامة على التعليقات أو الملاحظات باستخدام حرف "R" في العمود 11.

رسم خط تحت (_) وعلامة الاقتباس المزدوجة (") يتم إضافتها

أعمدة 73و80 غير مستعملة، ويمكن أن تحتوي على محدد التسلسل

الخطوط التي تبدأ بتسجيل زائد (+) هي خطوط استمرار،

بالنسبة إلى جوم GOM :

الخطوط التي تبدأ بنجمة (*) هي التعليقات،

وعلى صعيد آخر، الأحرف "1" (صفحة جديدة)، "-" (ثالث مسافات)، و"0" (مسافتين) في العمود 1 يسيطر على تباعد سرد مصدر،

وفي هذا الصدد، الخطوط التي تبدأ بالأحرف (A-Z) لها تسمية عبارة تواصل لأول حرف فارغ، * العبارات المتعددة مفصولة ب الفاصلة المنقوطة قد توضع على خط

ليس هناك مجال متسلسل،

المساحات ليست مهمة في أي مكان بخلاف ما ضمن ثوابت الحرف.

FUNCTION RETURN (إعادة الوظيفة) [المصطلح]

إضافةً إلى ذلك، ERROR RETURN (عودة الخطأ) (تجبر على عودة الخطأ إلى العبارة أو إلى نظام التشغيل، في حال عدم إعطاء أي عبارة يرجع الها عند الخطأ كأخر وسيط للاستدعاء)

  • SAVE RETURN (حفظ العودة)
  • RESTORE DATA (استعادة البيانات)
  • RESTORE RETURN (استعادة العودة)
  • EXECUTE إجراء (التنفيذ) (قائمة المتحولات) (استدعاء وظيفة غير أحادية القيمة)

A trivial example of a MAD program

من جهة ثانية، Dave Pitts' IBM 7094 support – Has a CTSS environment that includes the MIT version of MAD.

العوامل الترابطية

  • L. (أقل من)
  • LE. (أقل من أو يساوي)
  • E (يساوي)
  • NE. (لا يساوي)
  • G. (أكبر من)
  • GE. (أكبر من أو يساوي)

READ FORMAT (اقرأ التنسيق) تنسيق، القائمة

READ BINARY TAPE n (أقراء الشريط الثنائى n)، القائمة

من جهة ثانية، READ BCD TAPE n (أقراء الشريط ترميز عشري ثنائى)، تنسيق، القائمة

عبارات التصريح

  • النقطة العائمة var1، var2 ... (قد تشمل معلومات البعد)
  • العدد الصحيح var1، var2 ... (قد تشمل معلومات البعد)
  • المنطقية var1، var2 ... (قد تشمل معلومات البعد)
  • اسم الوظيفة name1، name2 ... (قد تشمل معلومات البعد)
  • بيان عبارة التسمية label1, label2,... (قد تشمل معلومات البعد)
  • وضع الرقم n، var1، var2 ... (قد تشمل معلومات البعد)

كذلك، الوضع العادي هو نوع اسم (عدد صحيح أو منطقي أونقطة عائمة أو عبارة التسمية أو اسم الوظيفة)

وعلى صعيد آخر، المتغيرات قد تكون مصرحة ضمنا أو صراحة.من المفترض أن المتغيرات المصرح بها ضمناً يفترض أن تكون نقطة عائمة. الوضع الطبيعي NORMAL MODE هو عبارة قد تستعمل لتغيير المفترض هذا.

التاريخ

من جانب آخر، أجاب: أعتقد أن الأكثر متعة أني كنت اعمل بالبرمجة كوظيفة صيفية في مشروع ماك MAC في ميت MIT في صيف عام 1966، حيث عملت على إنشاء برنامج لشريط عمل لجي إي645 الجديد GE 645 في الأيام الأولى من مالتيكس Multics. كنت أكتب بلغة MAD، والتي كانت أسهل بكثير وأكثر متعة من فورتران FORTRAN وكوبول COBOL التي كنت كتبتها في وقت سابق، وكنت أستعمل CTSS، أول نظام اقتسام الوقت، والتي كان من الأسهل بلا حدود وأكثر متعة من البطاقات المثقبة punch cards.

في هذا الإطار، في «مرحبا العالم»"hello, world" البرنامج يطبع سلسلة «مرحبا بالعالم» "hello, world" إلى النهاية الطرفية لشاشة العرض.

PRINT FORMAT HELLOW

MAD ومجلة MAD ووألفريد نومان Alfred E. Neuman

مثالا «مرحبا بالعالم» "hello, world"

من جانب آخر، MAD هي بديل للغة الدولية الخوارزمية (اللوغرتمية) International algorithmic language (IAL). IAL هو الاسم الأصلي لماذا أصبحت في نهاية المطاف ALGOL 58. في حين MAD كانت بدافع من ALGOL 58، إلى انها لا تشبه ALGOL 58 بأي شكل من الأشكال كبيرة.

ومن جهة أخرى، البرامج المكتوبة بلغة MAD بما فيها MAIL RUNOFF، واحدة من النظم الأولى لمعالجة النصوص، والكثير من أدوات المساعدة الأخرى كلها تحت النظام المناسب لتقسيم الوقت Compatible Time-Sharing System (CTSS). جرى العمل على التصميم لمترجم MAD لمالتيكس Multics، ولكن لم ينفذ.

إضافةً إلى ذلك، وفيما يلي اقتباس من مقابلة مثيرة للاهتمام مع بريان كيرنيغان عندما سئل: «ما سبب تعلقك بالبرمجة؟»:

من جهة ثانية، جوم GOM هي أساسا لغة MAD 7090 والتي مددت وتعدلت لبناء الحاسب 360/370 مع بعض الحياكة بحكمة لتتناسب مع أفضل ممارسات البرمجة والمشاكل الراهنة. ونظام رسائل MTS كان مكتوباً بجوم.

من جانب آخر، في إصدار ما قبل MAD الأصلي، وإشارة إلى أنها تحمل الاسم نفسه MAD، مجلة MAD MAD magazine، عندما كان البرنامج به أخطاء وقت الترجمة كثيرة المترجم كان يطبع الصورة على ورقة كاملة لألفريد E. نومان Alfred E. Neuman باستخدام فنASCII art. العنوان للقراءة، «انظر هذا الرجل حول البرنامج الخاص بك -- قد يرغب في نشرها –لا يخاف أبدا -- ولكن من ينظر إلى البرنامج الخاص بك، يجب عليك» هذه الميزة لم تكن مدرجة في النسخة الرسمية النهائية

وفي هذا الصدد، MAD كانت سريعة جدا مقارنة ببعض برامج المترجم الأخرى في وقته. وبسبب أن كثير من الناس كانت مهتمة باستخدام لغة فورتران FORTRAN وأرادت الحصول على سرعة مترجم MAD، تم استحداث نظام مادتران MADTRAN (كتب بلغة MAD). وكان MADTRAN مجرد مترجم من فورتران FORTRAN إلى ماد MAD، والتي أنتجت وقتها شفرات ألية. ووزعت MADTRAN من خلال SHARE.

وعلى صعيد آخر، «في الوقت الذي قمنا فيه بتصميم اللغة التي اعتقدنا انها سوف تستحق القيام بها والتي تمكننا من عمل مترجم، لم نستطيع ان نسميها ALGOL، كانj حقا مختلفة. وذلك عندما اعتمدنا الاسم MAD، لجهاز فك الشفرة الخوارزمية ميشيغان. كان لدينا بعض ردود الفعل المضحكة مع مجلة ماد للناس، وعندما طلبنا للحصول على إذن لاستخدام اسم MAD. في رسالة مضحكة جدا، وقالوا لنا أنهم سوف يأخذونا للمحكمة وكل شيء آخر، ولكن انتهى التهديد مع ملاحظة في أسفل --» بالتأكيد، أمضوا قدما. «للأسف، فقدت تلك الرسالة».

إضافةً إلى ذلك، MAD/I لديها بنية لغوية مماثلة لـ ALGOL 60 مع مميزات مهمة من MAD الأصلي ومن PL/I. MAD/I مصمم كلغة موسعة. وكانت متوفرة للاستخدام في MTS، وقدمت الكثير من الأفكار الجديدة التي شقت طريقها إلى لغات أخرى، ولكن مصنفات MAD/I كانت بطيئة وMAD/I لم تمدد نفسها إلى استخدام واسع النطاق بالمقارنة مع 7090 MAD الأصلي.

ومن جهة أخرى، خط طابعة المخرجات يتبع خطأ مترجم MAD على جهاز كمبيوتر آي بي إم 704 في جامعة ميشيغان، C. 1960

ويتذكر بيرني غلر Bernie Galler :

VECTOR VALUES HELLOW=$13h0Hello, world*$

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.