MAD (язык программирования)

MAD (язык программирования) История и разработка MAD MAD (Michigan Algorithm Decoder) разработан в 1959 году в Мичиганском университете.   Основан на […]

MAD (язык программирования)

  • История и разработка MAD

    • MAD (Michigan Algorithm Decoder) разработан в 1959 году в Мичиганском университете.  
    • Основан на языке АЛГОЛ, но не похож на него.  
    • Использовался для преподавания программирования и разработки операционных систем.  
  • Версии MAD

    • Оригинальный MAD разработан для IBM 704, 709, 7090 и других мэйнфреймов.  
    • MAD/I разработан для IBM System/360 и MTS.  
    • GOM (Старый добрый MAD) разработан для IBM System/370 и MTS.  
  • Особенности MAD

    • Быстрый компилятор по сравнению с другими языками того времени.  
    • MADTRAN использовался для перевода FORTRAN на MAD.  
    • MAD/I имеет синтаксис, аналогичный ALGOL 60, и важные функции PL/I.  
  • Языковые элементы

    • MAD и GOM состоят из различных элементов, включая формат ввода, имена, типы данных, массивы и матрицы, операторы и декларации.  
    • GOM имеет дополнительные режимы данных и операторы указателя.  
  • Примеры программ

    • Пример программы «hello, world» выводит строку на терминал.  
    • MAD использует логические элементы управления кареткой и сокращения для упрощения кода.  
  • Влияние и наследие

    • MAD оказал значительное влияние на развитие программирования и операционных систем.  
    • GOM продолжает использоваться в современных системах программирования.  
  • Основные элементы программы MAD

    • Программа может содержать информацию об измерениях  
    • Используются стираемые переменные  
    • Параметры могут быть векторными переменными  
    • Включаются и выключаются списки  
    • Ссылки могут быть включены или выключены  
  • Инструкции и операторы

    • Переменная = выражение (присвоение)  
    • Перенос в statement-label  
    • ВСЯКИЙ раз, когда логическое выражение, исполняемый оператор  
    • ИЛИ ВСЯКИЙ РАЗ, КОГДА логическое выражение  
    • Иначе  
    • ОКОНЧАНИЕ УСЛОВНОГО  
    • ПРОДОЛЖИТЬ (оператор «ничего не делать»)  
    • ЧЕРЕЗ оператор-метку, ДЛЯ ЗНАЧЕНИЙ переменной = список выражений (итерация)  
    • ПРИСВОИТЬ СПИСКУ ЗНАЧЕНИЕ элемента массива  
    • СОХРАНИТЬ список ДАННЫХ  
    • ВОССТАНОВИТЬ список ДАННЫХ  
    • ПАУЗЫ НЕТ  
    • ЗАВЕРШЕНИЕ ПРОГРАММЫ  
  • Инструкции по вводу и выводу данных

    • СЧИТЫВАНИЕ ДАННЫХ  
    • СЧИТЫВАНИЕ И ПЕЧАТЬ ДАННЫХ  
    • ФОРМАТ ЧТЕНИЯ, список  
    • ЧТЕНИЕ BCD-КАССЕТЫ n, формат, список  
    • СЧИТЫВАНИЕ ДВОИЧНОЙ ЛЕНТЫ n, список  
    • РАСПЕЧАТАТЬ список РЕЗУЛЬТАТОВ  
    • РАСПЕЧАТАТЬ список РЕЗУЛЬТАТОВ BCD  
    • РАСПЕЧАТАТЬ ВОСЬМЕРИЧНЫЙ список РЕЗУЛЬТАТОВ  
    • НАПЕЧАТАТЬ КОММЕНТАРИЙ $string$  
    • ФОРМАТ ПЕЧАТИ, список  
    • ПЕЧАТЬ В ЛИНЕЙНОМ ФОРМАТЕ, список  
    • ЗАПИСЬ НА КАССЕТУ BCD n, формат, список  
    • ЗАПИШИТЕ ДВОИЧНУЮ ЛЕНТУ n, перечислите  
    • ФОРМАТ ПЕРФОРАТОРА формат, список  
    • ПОСМОТРИТЕ НА ФОРМАТ FORMAT, list  
    • ПЕРЕМОТКА ЛЕНТЫ НАЗАД n  
    • КОНЕЦ ФАЙЛОВОЙ ЛЕНТЫ n  
    • ОБРАТНАЯ ЗАПИСЬ НА КАССЕТЕ n  
    • ЗАПИСЬ ОБРАТНОГО ПРОБЕЛА НА ЛЕНТЕ n  
    • ФАЙЛ С ОБРАТНЫМ ПРОСТРАНСТВОМ НА ЛЕНТЕ n  
    • ФАЙЛ ОБРАТНОГО ПРОБЕЛА ЛЕНТЫ n  
    • УСТАНОВЛЕННАЯ ЛЕНТА НИЗКОЙ ПЛОТНОСТИ n  
    • УСТАНОВИТЕ ТАБЛИЦУ ВЫСОКОЙ ПЛОТНОСТИ n  
    • РАЗГРУЗИТЬ ЛЕНТУ n  
  • Функции

    • Имена функций заканчиваются точкой  
    • Поддерживаются внутренние и внешние функции  
    • Внутренние функции компилируются как часть программы  
    • Внешние функции компилируются отдельно  
    • Допускается определение внутренних функций одним оператором  
    • Рекурсивные функции разрешены  
    • ВНУТРЕННЯЯ ФУНКЦИЯ -имя функции.(список аргументов) = выражение  
    • ВНУТРЕННЯЯ ФУНКЦИЯ-имя функции.(список аргументов)  
    • ВНЕШНЯЯ ФУНКЦИЯ -имя функции.(список аргументов)  
    • ЗАПИСЬ НА ИМЯ NAME.  
    • КОНЕЦ ФУНКЦИИ  
    • ФУНКЦИЯ ВОЗВРАЩАЕТ [ выражение ]  
    • ВОЗВРАТ ОШИБКИ  
    • СОХРАНИТЬ И ВЕРНУТЬ  
    • ВОССТАНОВЛЕНИЕ ДАННЫХ  
    • ВОССТАНОВИТЬ ВОЗВРАТ  
    • ВЫПОЛНИТЬ процедуру.(список аргументов)  
  • Определение и переопределение оператора

    • Возможность расширения языка путем переопределения операторов  
    • Определения составляются с использованием операторов объявления MAD и мнемоники на языке ассемблера  
    • ОПРЕДЕЛИТЬ ДВОИЧНЫЙ ОПЕРАТОР defined-op, ранг приоритета существующий-режим работы STRUCTURE mode-параметры  
    • ОПРЕДЕЛИТЬ УНАРНЫЙ ОПЕРАТОР defined-op, ранг приоритета существующий-режим работы STRUCTURE mode-параметры  
    • СТРУКТУРА РЕЖИМА mode-no = режим-не существует-режим работы-нет  
    • СТРУКТУРА РЕЖИМА режим-нет = режим-не существует-режим работы-нет ТОЙ ЖЕ ПОСЛЕДОВАТЕЛЬНОСТИ, ЧТО И режим-не существует-режим работы-нет  
  • Предопределенные пакеты определений

    • Три предопределенных пакета определений (MATRIX, DOUBLE PRECISION и COMPLEX) доступны для включения в исходные программы MAD  
    • ВКЛЮЧАЮЩИЙ пакет  
  • Дополнительная информация

    • АЛГОЛ 58  
    • АЛГОЛ 60  
    • Записи  
    • Рекомендации  
    • Сокращенное описание языка компиляции MAD  
    • CCLSYS, программа, облегчающая использование переводчика MAD  
    • Компьютерный учебник по языку Mad  
    • Внутренняя организация безумного переводчика  
    • Введение в Алгоритмические Методы, Использующие язык MAD  
    • Введение в цифровые компьютеры и язык MAD  
    • Язык компьютеров  
    • MAD at Michigan: его функции и особенности  
    • Блок-схемы Мичиганского алгоритмического декодера  
  • Внешние ссылки

    • Ретрокомпилятор Эрика Рэймонда для MAD  
    • Тривиальный пример безумной программы  
    • Поддержка IBM 7094 от Дэйва Питтса  

Полный текст статьи:

MAD (язык программирования)

Оставьте комментарий

Прокрутить вверх