ALGOL когда-либо использовался для "основного" программирования?
Я знаю, что язык ALGOL чрезвычайно важен как теоретический язык, и он также имел множество реализаций в соответствии с Википедией.
Однако, что неясно, был ли ALGOL (чистый ALGOL, а не какой-либо из его производных, таких как Simula) вообще когда-либо использовался для какого-либо "настоящего" программирования каким-либо образом?
Под "реальным" я подразумеваю использование для нескольких крупных проектов, отличных от языка программирования / исследования CS, или для значительного числа разработчиков (скажем, > 1000).
Лично, единственное программирование на Алголе, которое я когда-либо делал, было на бумаге, таким образом, любопытство.
12 ответов
Algol58, кажется, был наиболее успешным с точки зрения важных приложений.
Из Википедии:
JOVIAL - это аббревиатура от "Жюль-собственная версия международного алгоритмического языка". "Международный Алгоритмический Язык" был названием, первоначально предложенным для ALGOL 58. Он был разработан для составления программного обеспечения для электроники военных самолетов Жюлем Шварцем в 1959 году.
Затем:
Известные системы, использующие JOVIAL, включают спутник связи Milstar, усовершенствованную крылатую ракету, бомбардировщики B-52, B-1B, B-2, транспортные самолеты C-130, C-141 и C-17, F-111, F-15, F-16 (до блока 50) и истребитель F-117, самолет LANTIRN, самолет U-2, самолет E-3 Sentry AWACS, крейсеры военно-морского флота Aegis, армейская многоцелевая ракетная система ( MLRS), армейский UH-60 Black Hawk вертолеты, реактивные двигатели F100, F117 и F119, система ПВО NORAD (система Hughes HME-5118ME) и ракетные двигатели RL-10. Воздушные радиолокационные системы со встроенным программным обеспечением JOVIAL включают APG-70, APG-71 и APG-73
ALGOL 68 использовался в составе DRA для той же цели. ср Википедия:
Агентство оборонных исследований(обычно известное как DRA) было исполнительным агентством Министерства обороны Великобритании (MOD) с апреля 1991 года по апрель 1995 года. В то время DRA было Британией. крупнейшая научно-техническая организация.
Компилятор DRA Algol68 был, наконец, с открытым исходным кодом в апреле 1999 года и теперь доступен для Linux для загрузки с sourceforge. (Однако интерпретатор для " Algol68g" проще в использовании).
Algol68 от ICL был / есть S3. Он был разработан британской компанией http://en.wikipedia.org/wiki/International_Computers_Limited (ICL) для своих мэйнфреймов серии 2900. Это язык системного программирования, основанный на ALGOL 68, но с типами данных и операторами, согласованными с теми, что предлагаются в серии 2900. Это был язык реализации операционной системы VME.
Существуют (как минимум) две другие британские операционные системы - Flex и http://en.wikipedia.org/wiki/Cambridge_CAP_computer - написанные в вариантах Algol68. А также 1 советская ОС: Эльбрус-1 (Эльбрус-1), но мне пока не удалось найти ни одного их исходного кода. (Если кто-то может найти и распространить этот исходный код, пожалуйста, дайте мне знать)
Кстати: я считаю, что VME все еще работает - в производстве - в качестве гостевой виртуальной машины Linux/Unixware. В основном в таможенных / иммиграционных службах Содружества Наций.
Также в тот же период в СССР использовался Algol68, ср. Ссылка на историю. Algol68 используется на российских телефонных станциях. А Algol58 использовался в российской системе посадки " Буран / Буран".
ALGOL68 был интернационализирован в 1968 году. Я подозреваю, что есть другие проекты Algol в других странах. esp на немецком, на голландском, японском и китайском, но у меня нет подробностей.
Если вы действительно хотите опробовать Algol68 и / или внести свой код, проверьте репозиторий ALGOL 68 в Rosettacode, а затем в качестве проекта класса попробуйте одну из " Задач не реализовано".
Ничего подобного, отвечая на 2-летние темы. Я программирую на Алголе почти ежедневно. Я программист на мейнфрейме Unisys ClearPath, и большая часть системного кода написана на ALGOL или его вариантах. Burroughs B5500 действительно был разработан с учетом языка, так что это довольно эффективный процесс компиляции языка. Конечно, эта версия является ALGOL с некоторыми расширениями, такими как ограниченные классы (структурные блоки) и т. Д.
i := 80;
while i > 0 do
begin
scan ptrRay:ptrRay for i:i until in ALPHA;
scan ptrEnd:ptrRay for i:i while in ALPHA;
if i > 0 then
begin
replace nextToken by ptrRay for (offset(ptrEnd) - offset(ptrRay));
end;
end;
Этот код сканирует только токены АЛЬФА. Он использует функцию OFFSET, которая немного дороже, чем математика остаточного счета самостоятельно (i, starti и т. Д.);
Как и Том, я программирую на ALGOL почти ежедневно - и я также на Unisys Clearpath. Алгол был основным источником моих выплат по ипотечным кредитам в течение более лет, чем я хочу вспомнить.
Когда я начал программировать, Algol был единственным доступным компилятором. Да, это было мейнстримом, пока мы не получили компилятор Фортрана.
Чтобы ответить на их вопрос, все семейство "больших систем" Берроуза (5000, 5500, 5700, 6500, 6700...) действительно было спроектировано так, чтобы хорошо работать с Algol. Операционная система, компиляторы и основные системные утилиты были написаны на Algol; если это не "настоящее" программирование, то что?
Чтобы быть точным, за время существования семейства продуктов Берроуз расширил Algol в суперсет под названием ESPOL. Когда Берроуз выпустил семейство "малых систем" (серии 1700, 1800, 1900), они определили еще один алголоподобный язык под названием SDL (язык разработки систем), на котором было написано операционное программное обеспечение этой линии. Доступ к SDL был ограничен по соображениям безопасности. Впоследствии был создан вариант SDL с удалением нескольких "привилегированных" функций. Получившийся язык, названный UPL (язык программирования пользователя), был доступен для использования клиентом.
Некоторые из нас до сих пор помнят, когда фраза "Algol-подобный язык" использовалась для описания любого языка программирования с блочно-ориентированными структурами управления и переменной областью видимости. Широко известные примеры алголоподобных языков включают PL/I, Pascal и (... ждите этого...) C.
Алгол был основным языком программирования для Burroughs B5000.
Мой первый опыт программирования был на Burroughs B5500, принадлежащем компании Northern Natural Gas Company, начиная с 1970 года. Я начал в COBOL, но переключился на ALGOL (фактически использовал оба), когда им потребовалась дополнительная поддержка для большой информационной системы аренды нефти и газа, которая была написана почти полностью на алголе. В то время там было два отдела программирования: бизнес-системы и научные вычисления. Научно-вычислительный отдел программировал на ALGOL и FORTRAN, в то время как отдел Business Systems был в основном COBOL с небольшим количеством ALGOL. Северный продвинулся от B5500 до B6500, B6700, B6900, B7800 и B7900, пока я был там. В конце концов я перешел в отдел технической поддержки и занялся созданием и поддержкой исправлений MCP для настройки системы для нужд Northern. Это было весело!
Краткий ответ на вопрос. Да. У Северного было несколько прикладных систем, написанных на Алголе. Конечно, это была версия Алгола Берроу (расширенный Алгол).
Однако, что неясно, действительно ли Algol (чистый Algol, а не какой-либо из его производных, таких как Simula) вообще когда-либо использовался для какого-либо "настоящего" программирования?
Пожалуйста, избегайте термина "настоящее" программирование. "Реал" - в отличие от чего? Образный?
Под "реальным" я подразумеваю использование для нескольких крупных проектов, отличных от языка программирования / исследования CS, или для значительного числа разработчиков (скажем, > 1000).
Да. Он использовался для определенного количества проектов, над которыми работало определенное количество разработчиков.
Единственное, что сегодня часто неправильно истолковывают, так это; в те дни компьютеры не были предметом домашнего обихода. Черт, они были не 30 лет назад, а менее 60.
Программирование проводилось в компьютерных центрах, находящихся в государственной собственности (военные, академические, различные институты) или на частных предприятиях (крупные компании). И программирование не было профессией - это было то, что обычно делали инженеры, математики, ученые и тому подобное, когда их работа выполнялась на бумаге... или у них были специализированные операторы, которые делали это для них. Часто женщины, которые могли иметь или не имели научного опыта в этой конкретной области - они были "переводчиками языка", из-за отсутствия лучшего термина (и моего плохого английского).
Теории и исследования программирования были в самом начале... поставщиков было немного (и, естественно, они не сотрудничали друг с другом) ... каждая из них использовала свои собственные расширения, и часто программы, написанные для одного, плохо работали с системами другого поставщика.
Не было "правильного" способа сделать что-то... у вас было то и это, и вы использовали любую ловушку, какую только могли себе представить, чтобы обойти свою проблему.
Но я забрел. Позвольте мне вернуться к числу людей. Это также касается нескольких других языков; Фортран и Кобол, например. Люди говорят, что "очень немногие используют это". Это просто неправда. Что правда, так это то, что сегодня небольшой процент людей использует его, но больший процент людей использовал его.
Как я уже говорил, в те времена только научные. и англ. сообщество делало это. И их количество было относительно небольшим по сравнению с общей численностью населения. В настоящее время все пользуются компьютерами, но абсолютное количество инженеров, математиков и т. Д. Практически одинаково. Таким образом, кажется, что никто больше не использует эти языки... в то время как на самом деле, для определенных специализированных языков (ну, в настоящее время это относится к фортрану и коболу, больше, чем к алголу), число пользователей остается почти постоянным.
Лично, единственное программирование на Алголе, которое я когда-либо делал, было на бумаге, таким образом, любопытство.
Я знаю, что не ответил на твой вопрос, но просто хотел прояснить это. Алгол был немного "до моего времени".
Burroughs B5500 Extended Algol активно использовался для исследований в области астрофизики, лингвистики и статистики в моем университете (Университет Монаш, Австралия) в конце 60-х годов. Он также использовался в коммерческих приложениях, которые помогали оплачивать счета за компьютерный центр.
Когда я пишу это, я запускаю программы Algol в последнем выпуске эмулятора Burroughs B5500 от команды на ретро-b5500 в Тасмании. Эмулятор полностью работает в браузере и точно моделирует процессоры, диски, ленты, устройства считывания карт, линейные принтеры, штампы карт и устройства передачи данных!
Вы можете прочитать о проекте по адресу http://retro-b5500.blogspot.com/ и http://code.google.com/p/retro-b5500 а также написать программы на Algol для, возможно, самого лучшего из когда-либо созданных компьютеров Algol (кроме, возможно, его преемника B6700.)
Один из постдоков из Monash написал обратный компилятор из IBM Assembler для Burroughs COBOL в Алголе, который использовался для переноса всех биллинговых приложений в государственной Gas & Fuel Corporation с IBM 360s на Burroughs 6700s.
Еще в 1970 году я помогал разрабатывать компилятор Jovial для Королевского голландского флота. Одним из его больших преимуществ было то, что он был написан на Jovial, поэтому мы все стали довольно хорошими экспертами по Jovial. Фактически, в рамках цикла тестирования мы собираем компилятор, хотя и сам по себе, и запускаем все наши тестовые наборы. Если он пройдет, мы выпустим первый компилятор. Таким образом, каждый выпуск имел возможность компилировать себя, и этот компилятор мог пройти все тесты. Поскольку каждая найденная ошибка всегда добавлялась в наш набор тестов для самоконтроля, качество компилятора улучшалось и улучшалось. К тому времени, как мы покинули проект, у нас не было никаких известных ошибок... мой единственный раз, который когда-либо случался.
Я программировал в Algol/Jovial еще в 70-х годах для военных. Я любил язык. Вы не могли сделать рекурсию в Фортране, и я часто мог сделать программу намного проще, используя правильную структуру данных и небольшую рекурсию.
После того как я покинул это задание, я обнаружил, что другие разработчики проекта не хотели поддерживать код Jovial и попытались повторить то, что я сделал в Фортране. Это просто не сработало и было намного медленнее.
Я узнал о теории компилятора, покопавшись в исходном коде компилятора Jovial. Ах... это были дни.
Algol был хорошо реализован на машине Elliott 4100 и широко использовался для разработки ранних моделей процесса переработки в исследовательском центре BP в конце 60-х годов. Однако в то время ввод / вывод не был четко определен (варьировался между машинами), и в BP он быстро обогнал Fortran IV, так как программы, написанные на строгом Fortran IV, будут работать практически на любом варианте машины - IBM, Univac, Atlas и т. Д., так далее.