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

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

MAD/Iو MADو GOM

هناك ثلاثة تراجم لـ 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.
2. MAD/I، هو إصدار مطول من MAD لسلسلة S/360 آي بي إم IBM S/360 من أجهزة الكمبيوتر التي تعمل في منظومة محطة ميشيغان Michigan Terminal System (MTS). بدأ العمل في المترجم الجديد في عام 1965 كجزء من وكالة مشاريع البحوث المتقدمة ARPA برعاية مشروع CONCOMP في جامعة ميشيغان. عندما  أحرز العمل تقدما أصبح تدريجيا واضحا أنI /MAD كانت لغة جديدة مستقلة عن الإصدار الأصلي من 7090   MAD.
3. جوم  GOM(ماد القديم الجيد) (Good Old MAD)، وإعادة تطبيق لـ 7090 MAD الأصلي لسلسلة آي بي إم S/370 IBM S/370 series لأجهزة الكمبيوتر المركزية لتشغيل نظام محطة ميتشيغان Michigan Terminal System   (MTS).  تم إنشاء جوم GOM في أوائل الثمانينات 1980 بواسطة  دون بوتنر Don Boettner في مركز الحاسب الآلي  بجامعة ميشيغان.

التاريخ

MAD هي بديل للغة الدولية الخوارزمية (اللوغرتمية) International algorithmic language (IAL). IAL هو الاسم الأصلي لماذا أصبحت في نهاية المطاف ALGOL 58. في حين  MAD كانت بدافع من ALGOL 58، إلى انها لا تشبه  ALGOL 58  بأي شكل من الأشكال كبيرة.
البرامج المكتوبة بلغة MAD بما فيها MAIL RUNOFF،  واحدة من النظم الأولى لمعالجة النصوص، والعديد من أدوات المساعدة الأخرى كلها تحت النظام المناسب لتقسيم الوقت Compatible Time-Sharing System (CTSS). جرى العمل على التصميم لمترجم MAD لمالتيكس Multics، ولكن لم ينفذ.
وفيما يلي اقتباس من مقابلة مثيرة للاهتمام مع بريان كيرنيغان   عندما سئل : "ما سبب تعلقك بالبرمجة؟" : 
أجاب: أعتقد أن الأكثر متعة أني كنت اعمل بالبرمجة كوظيفة صيفية في مشروع ماك MAC  في ميت MIT في صيف عام 1966، حيث عملت على إنشاء برنامج لشريط عمل لجي إي645 الجديد GE 645  في الأيام الأولى من مالتيكس Multics. كنت أكتب بلغة MAD، والتي كانت أسهل بكثير وأكثر متعة من فورتران FORTRAN وكوبول COBOL التي كنت كتبتها في وقت سابق، وكنت أستخدم CTSS، أول نظام اقتسام الوقت، والتي كان من الأسهل بلا حدود وأكثر متعة من البطاقات المثقبة punch cards.
MAD كانت سريعة جدا مقارنة ببعض برامج المترجم الأخرى في وقته. وبسبب أن كثير من الناس كانت مهتمة باستخدام  لغة فورتران FORTRAN وأرادت الحصول على سرعة مترجم MAD، تم استحداث نظام مادتران MADTRAN  (كتب بلغة MAD). وكان MADTRAN مجرد مترجم من فورتران FORTRAN إلى ماد MAD، والتي أنتجت وقتها شفرات ألية. ووزعت MADTRAN من خلال SHARE.
MAD/I لديها بنية لغوية مماثلة لـ ALGOL 60 مع مميزات مهمة من MAD الأصلي ومن PL/I. MAD/I مصمم كلغة موسعة. وكانت متوفرة للاستخدام في MTS، وقدمت العديد من الأفكار الجديدة التي شقت طريقها إلى لغات أخرى، ولكن مصنفات MAD/I كانت بطيئة وMAD/I لم تمدد نفسها إلى استخدام واسع النطاق بالمقارنة مع 7090 MAD الأصلي.
جوم GOM  هي أساسا لغة MAD 7090 والتي مددت وتعدلت  لبناء الحاسب 360/370 مع بعض الحياكة بحكمة لتتناسب مع أفضل ممارسات البرمجة والمشاكل الراهنة. ونظام رسائل MTS كان مكتوباً بجوم.

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

خط طابعة المخرجات يتبع خطأ مترجم MAD على جهاز كمبيوتر آي بي إم 704 في جامعة ميشيغان، C. 1960 
في إصدار ما قبل MAD الأصلي، وإشارة إلى أنها تحمل الاسم نفسه MAD، مجلة MAD MAD magazine، عندما كان البرنامج به أخطاء وقت الترجمة كثيرة المترجم كان يطبع الصورة على ورقة كاملة لألفريد E. نومان Alfred E. Neuman باستخدام فنASCII art. العنوان للقراءة، "انظر هذا الرجل حول البرنامج الخاص بك -- قد يرغب في نشرها –لا يخاف أبدا -- ولكن من ينظر إلى البرنامج الخاص بك، يجب عليك" هذه الميزة لم تكن مدرجة في النسخة الرسمية النهائية
ويتذكر بيرني غلر Bernie Galler : 
"في الوقت الذي قمنا فيه بتصميم اللغة التي اعتقدنا انها سوف تستحق القيام بها والتي تمكننا من عمل مترجم، لم نستطيع ان نسميها  ALGOL، كانj حقا مختلفة. وذلك عندما اعتمدنا الاسم MAD، لجهاز فك الشفرة الخوارزمية ميشيغان. كان لدينا بعض ردود الفعل المضحكة مع مجلة ماد للناس، وعندما طلبنا للحصول على إذن لاستخدام اسم MAD. في رسالة مضحكة جدا، وقالوا لنا أنهم سوف يأخذونا للمحكمة وكل شيء آخر، ولكن انتهى التهديد مع ملاحظة في أسفل -- "بالتأكيد، أمضوا قدما." للأسف، فقدت تلك الرسالة".

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

في "مرحبا العالم""hello, world"  البرنامج يطبع سلسلة "مرحبا بالعالم" "hello, world" إلى النهاية الطرفية لشاشة العرض. 
PRINT FORMAT HELLOW
VECTOR VALUES HELLOW=$13h0Hello, world*$
END OF PROGRAM
يتم التعامل مع الحرف الأول من السطر ك حرف التحكم المنطقي، في هذا المثال حرف الصفر الذي يؤدي إلى طباعة خط مزدوج متباعد. 
أو، في حالة ادخال كل الكلمات الرئيسية في المثقبة بلوحة المفاتيح الخاص بك هو عمل كثير، يمكنك استخدام تقلصات والمترجم يقوم بتوسيعها في العرض : 
P'T HELLOW
V'S HELLOW=$13h0Hello, world*$
E'M

عناصر اللغة

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