Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

COMAL ( Common Algorithmic Language ) - это язык компьютерного программирования, разработанный в Дании Бёрге Р. Кристенсеном и Бенедиктом Лёфстедтом и первоначально выпущенный в 1975 году. COMAL был одним из немногих языков структурированного программирования, который был доступен и удобно использовался на 8-битных домашних компьютерах. . Он был основан на оригинальном языке программирования BASIC , добавляя, среди прочего , многострочные операторы и четко определенные подпрограммы .

"COMAL Kernel Syntax & Semantics" содержит формальное определение языка. [1] Дополнительные расширения являются общими для многих реализаций. [2] [3] [4]

Дизайн [ править ]

COMAL была создана в виде смеси из распространенных образовательных языков программирования времени, BASIC , Pascal , и, по крайней мере , в Commodore и Compis версиях, на черепашьих графики из логотипа . Язык был предназначен для введения элементов структурированного программирования в среду, в которой обычно используется BASIC.

Оглядываясь назад, можно сказать, что COMAL выглядит как структурированный BASIC, который имеет достаточно хорошо написанные, независимые от поставщика, бесплатные стандарты. [ оригинальное исследование? ] Нет необходимости использовать GOTO, и номера строк предназначены исключительно для целей редактирования, а не для управления потоком. Однако обратите внимание, что стандартизованный язык поддерживает только структурирование элементов управления, но не структурирование данных, таких как записи или структуры (коммерческие реализации, такие как UniCOMAL 3, поддерживали это как расширение).

История [ править ]

COMAL изначально был разработан в Дании учителем математики Бёрге Р. Кристенсеном. Школа, в которой он преподавал, получила в 1972 году миникомпьютер Data General NOVA 1200 с ожиданием, что в школе начнут преподавать информатику . Кристенсен, который прошел краткий курс по этому предмету в университете, должен был руководить программой и обслуживать компьютерную систему. NOVA 1200 поставлялся с Data General Extended BASIC , и Кристенсен быстро разочаровался в том, как неструктурированный язык заставлял студентов писать некачественный код, который было трудно читать и, следовательно, отмечать. Кристенсен встретился с компьютерным ученым Бенедиктом Лёфстедтом, который посоветовал ему прочитатьСистематическое программирование , новая на тот момент книга по проектированию языков программирования Никлауса Вирта , создателя Паскаля . Кристенсен был впечатлен, но обнаружил, что не может использовать Паскаль напрямую, так как в нем отсутствовала интерактивная оболочка, которая делала BASIC таким простым для студентов. В течение следующих шести месяцев Кристенсен и Лёфстедт переписывались по почте, чтобы разработать альтернативу BASIC, которая сохранила бы свои интерактивные элементы, но добавила структурированные элементы из Паскаля. К 1974 году определение языка было завершено, но Кристенсену не удалось привлечь интерес софтверных фирм к разработке реализации. Поэтому он работал с двумя своими учениками, которых обучал машинному языку NOVA 1200., чтобы написать реализацию самостоятельно в течение следующих шести месяцев. Первая экспериментальная реализация (запускающая цикл из пяти строк) была готова 5 августа 1974 года, а первая версия (на бумажной ленте , поскольку NOVA 1200 использовала ее для ввода-вывода ) была готова в феврале 1975 года. Затраты на разработку составили около 300 долларов США . Только теперь система (которая ранее использовала внутреннее датское имя) получила название COMAL , что означает общий алгоритм алгоритмов , вдохновленный АЛГОЛОМ , с которым Кристенсен экспериментировал. Поэтому первый выпуск получил название COMAL 75 . Впоследствии Кристенсен написал учебник по языку, который превратился вНачиная с COMAL . [5]

В 1978 году Кристенсен начал адаптировать COMAL так, чтобы он мог работать на микрокомпьютерах , которые становились доступными, опасаясь, что без такой реализации ему придется снова преподавать и использовать BASIC, поскольку датские школы приобретают новые машины. К 1980 году версия COMAL, разработанная совместно с группой колледжей, могла работать на Zilog Z80 , и, таким образом, был выпущен COMAL 80 . Примерно в то же время датская фирма представила Comet , очень мощный для того времени микрокомпьютер, который станет первой машиной, на которой будет запущена версия того, что будет выглядеть как более поздние версии COMAL. Впоследствии Кристенсен отказался от разработки COMAL примерно в 1980-81 гг., Которая была передана группам, включая UniComal., начатым Могенсом Кьяером, который написал Кристенсену с критикой COMAL и впоследствии перенес его на Commodore PET для выпуска 0.14. В то время датские школы настаивали на том, чтобы COMAL был доступен на любом микрокомпьютере, который они купили. [5]

В начале 1980-х Apple Computer выиграла контракт на поставку компьютеров Apple II, работающих под управлением CP / M и COMAL, в средние школы Ирландии. [6] Это было популярно для образования [7], и некоторые учебники были написаны на местном уровне. [8] [9]

В 1984 году Acornsoft выпустила реализацию COMAL Дэвида Кристенсена, Джима Уорвика и Дэвида Эверса для своих 8-битных компьютеров BBC Micro и Acorn Electron (с руководством Пола Кристенсена и Роя Торнтона [10] ).

Между 1984-1987 годами TeleNova , дочерняя компания промышленного подразделения шведской телекоммуникационной системы, производила настольный ПК под названием Compis для образовательного сектора. Усовершенствованная версия COMAL была предоставлена ​​в качестве стандартного языка программирования для этого ПК. Версии были созданы как для CP / M-86, так и для MS-DOS . Последняя версия доступна для Windows XP . Справочное руководство (на шведском языке) - ISBN  91-24-40022-X .

В 1990 году Томас Ланди и Рори О'Салливан подготовили исчерпывающий текст по программированию COMAL. [9] Они сопоставили и сравнили COMAL с BBC Structured Basic .

По состоянию на 2016 год COMAL все еще активно используется в качестве образовательного языка программирования. [ необходима цитата ] Некоторые средние школы в Соединенном Королевстве продолжают использовать его для преподавания предмета «Вычислительная техника».

Доступность [ править ]

COMAL был доступен для:

  • BBC Micro
  • Commodore PET ( общественное достояние )
  • Commodore 64 (общественное достояние)
  • Коммодор 128
  • Amiga
  • Compis / Scandis
  • CP / M
  • IBM PC
  • Тики 100
  • ZX Spectrum
  • Гранди NewBrain
  • Windows XP

Примеры [ править ]

"Привет, мир!"
 ПЕЧАТЬ  "ПРИВЕТ, МИР!"
Условия
 IF  условие  THEN  инструкции  ENDIF
Петли
 ДЛЯ  числа : =  1  TO  1000  DO  PRINT  числа  ENDFOR
Операторы печати с переменными
 INPUT  «Какой твой любимый номер?»  : Nmr #  ПЕЧАТЬ СТРАНИЦЫ  «Твой любимый номер» ; нмр #   

См. Также [ править ]

  • Действие! (язык программирования)

Ссылки [ править ]

  1. ^ Райан, Кевин. «Синтаксис и семантика ядра COMAL» (PDF) . Dansk Datahistorisk Forening . Проверено 8 ноября 2017 года .
  2. ^ Бэйн, Ричард; Линдси, Лен. «Общее определение и тесты COMAL» . КОМАЛ Сегодня (24): 21–46 . Проверено 20 января 2020 года .
  3. ^ «Общие COMAL - Совместимые ключевые слова» . КОМАЛ Сегодня (25): 28 . Проверено 20 января 2020 года .
  4. ^ «Common COMAL - синтаксис ключевых слов и примеры» . КОМАЛ Сегодня (25): 29–33 . Проверено 20 января 2020 года .
  5. ^ a b Кристенсен, Бёрге. «История КОМАЛ» . КОМАЛ Сегодня (24): 1–10 . Дата обращения 4 сентября 2020 .
  6. Мойнихан, Майкл Д. (8 августа 1983 г.). «Покрытие COMAL за пределами Ирландии» . InfoWorld . 5 (32): 30 . Проверено 15 ноября 2017 года .
  7. ^ Брэди, Майкл П. (май 1986). Дизайн первого курса программирования . Лафборо, Лестер, Великобритания: Технологический университет Лафборо. hdl : 2134/10392 . Проверено 15 ноября 2017 года .
  8. ^ Келли, Джон (1984). Основы компьютерных исследований с COMAL (второе изд.). Дублин, Ирландия: Образовательная компания . Проверено 20 января 2020 года .
  9. ^ a b Ланди, Томас; О'Салливан, Рори (1990). Начало структурного программирования на BASIC и COMAL . Дублин, Ирландия: Гилл и Макмиллан. ISBN 978-0717116676.
  10. ^ Торнтон, Рой; Кристенсен, Пол (1984). COMAL на микрокомпьютере BBC и Acorn Electron SBD 19 . Acornsoft. ISBN 978-0907876908.

Дальнейшее чтение [ править ]

  • Томас Ланди и Рори О'Салливан: Начало структурного программирования на BASIC и COMAL , 1990
  • Рой Атертон: Структурированное программирование с помощью COMAL. Хорвуд, Чичестер 1982, ISBN 0-85312-416-7 . 
  • Брамер, М.А. (1982). «COMAL 80 - Добавление структуры в BASIC». Компьютеры и образование . 6 (2): 179–192. DOI : 10.1016 / 0360-1315 (82) 90031-8 . ISSN  0360-1315 .
  • Бёрге Р. Кристенсен: Начиная с Comal. Хорвуд, Чичестер 1982, ISBN 0-85312-435-3 . 
  • Бёрге Р. Кристенсен: Справочное руководство COMAL . Группа пользователей ПЭТ Торонто, Торонто, Онтарио, ISBN 0-920607-00-4 . 
  • Leuschner, Burkhard (1987). "Comal - это вещь". Система . 15 (3): 373–376. DOI : 10.1016 / 0346-251X (87) 90011-X . ISSN  0346-251X .
  • Лен Линдси: Справочник COMAL . Рестон Паблишинг, Рестон, Вирджиния, 1983, ISBN 0-8359-0878-X . 
  • Гордон Шигли: Учебное пособие COMAL . Comal Users Group, США, 1985, ISBN 0-928411-05-2 . 

Внешние ссылки [ править ]

  • OpenCOMAL для Unix , MS-DOS и Win32
  • Ответвление вышеперечисленного для совместимой со стандартами Unix , в основном Linux и Mac OS X
  • Описание COMAL, версий и характеристик (1984)