Перейти к содержимому

Algol 68 это какая версия языка

  • автор:

Алгол (язык)

АЛГО́Л (Algol, ALGOrithmic Language — алгоритмический язык), язык программирования высокого уровня. Существуют три последовательно сменявших друг друга версии языка: Алгол-58, Алгол-60, Алгол-68. Язык предназначен для записи алгоритмов, которые строятся в виде последовательности процедур, применяемых для решения поставленной задачи. Первая версия языка, Алгол-58, была разработана в конце весны 1958, преимущественно для решения численных задач.

Алгол подразделяется на три уровня: язык описаний, определяющий основные понятия, язык публикаций, позволяющий писать и обсуждать программы, и язык аппаратного уровня, реализуемый на компьютере. Одним из недостатков языка было отсутствие процедур ввода и вывода данных. Широкого признания ни Алгол-58, ни его преемник Алгол-60 не получили, но в них были реализованы множество идей, получивших применение и развитие в других языках. Это — блочная структура, позволяющая делить программы на замкнутые, независимые единицы; рекурсия — способность программ повторно обращаться к себе; формализованное определение синтаксиса — способа размещения слов в языке; вложенные контексты; описания переменных; определения способа передачи параметров.

В 1965 К. Хоар и Никлаус Вирт модифицировали Алгол-60. Эта версия, получившая название Алгол-W в честь Вирта (Wirth), была опубликована и приобрела большую популярность в университетских городках. Но комитет по Алголу ее отверг и сам занялся модификацией языка. В декабре 1968 Международным комитетом специалистов по информатике был создан Алгол-68, работая с которым, программисты могли писать ключевые слова на родном языке. Ключевые слова содержатся в таблице трансляции, хранящейся в памяти компьютера и используемой компилятором Алгола-68 для преобразования программ в машинный код.

Сохраняя стилистическую связь со своим предшественником, Алгол-68 отличается более широкими возможностями и общностью конструкций. Его особенностями являются развитая система типов, автоматическое приведение типов, средства описания параллельных процессов и синхронизации, формальное описание языка на основе двухуровневых грамматик. Стремление к формальной строгости и последовательности сделало Алгол-68 слишком громоздким и сложным. Он использовался в ограниченных масштабах только американскими программистами.

Algol (язык программирования Алгол)

Алгол — это древнейший язык программирования появившийся в 50-х годах. Сегодня он не используется, но его синтаксис мы видим во многих современных языках программирования. Его так и называют алголо-подобный синтаксис. Например похожий синтаксис мы видим в языке программирования Pascal.

Краткая история языка программирования Algol

Алгол появился 1958 году — на один год позже Фортарна. Затем в 60 году его доработали и вышла версия Алгол 60. именно его мы имеем ввиду когда просто говорим Алгол. Это был хороший и простой язык программирования. Он поддерживал структурное праграммирования и можно было обходиться без GoTo. Так же он имел возможность создавать рекурсивные вызовы, что существенно облегчало разработку некоторых алгоритмов и упрощало код.

В те времена Algol был распространен в Европе и в СССР. На рынок США он выйти так и не смог: там использовали Fortran и COBOL.

В 1968 году появляется Algol 68. Он был настолько сильно изменен, что его принято считать отдельным языком программирования. В него было добавлено огромное количество новых функций, что бы удовлетворить всех разработчиков. Он был задуман как универсальный язык подходящий и для научных расчетов и для бизнес задач. Т.е. он фактически пошел по стопам языка PL/1 и попытался стать универсальным. Таковым он и стал, но вот только не стал популярным. А в 1970 году Никлаус Вирт создает Pascal, который полностью вытесняет Algol 68 с рынка, благодаря свой простоте и отсутствию огромного количества функций, как в языке Алгол 68.

Где применяется сегодня Algol

На сегодняшний день язык программирования Algol, не применяется, но применяются его потомки. Так сказать Алгол-подобные языки. Например Modula-2 применяется для разработки бортового программного обеспечения спутников системы системы Глонасс.

Алгол 68 Алго л 68 англ Algol 68 от англ algorithmic алгоритмический и англ language язык процедурный императивный высок

Алго́л 68 (англ. Algol 68 от англ. algorithmic — алгоритмический и англ. language — язык) — процедурный императивный высокоуровневый язык программирования, потомок языка Алгол, существенно доработанный. Разрабатывался в период 1964—1968 годов. Позиционировался как универсальный язык для описания произвольных алгоритмов обработки данных высокой сложности. Отличается большим объёмом, богатством возможностей и сложностью синтаксиса.

Алгол 68
Класс языка версия или издание [d] и язык программирования
Автор Адриан ван Вейнгаарден , Барри Майо [d] и Грегори Пек [d]
Разработчик Барри Майо [d] , Грегори Пек [d] , Корнелис Костер [d] и Адриан ван Вейнгаарден
Испытал влияние ALGOL Y [d] и ALGOL 60 [d]
Повлиял на BETA

Особенности Править

Несмотря на схожесть названия и официальную преемственность по отношению к языку Алгол 60, Алгол 68 унаследовал от него лишь некоторые элементы синтаксиса и существенно отличается от языка-предшественника прежде всего наличием большого числа дополнительных синтаксических средств и изобразительных возможностей. В частности, он включает встроенные в язык средства организации параллельных вычислений, операции со структурами как с едиными объектами, матричные операции.

Наиболее характерной особенностью синтаксиса Алгола-68 является возможность переопределения синтаксиса и операторов — программист может активно расширять язык в требуемом направлении, создавать собственные операции. Целью включения таких средств в язык было достижение максимальной выразительности и получение возможности удобного описания максимально абстрактных алгоритмов. За эти возможности, а также за наличие мощных операторов для обработки структур и массивов Алгол 68 иногда называют «языком сверхвысокого уровня».

Формально Алгол 68 является процедурным языком программирования, ориентированным на описание последовательности команд, но благодаря развитым средствам описания типов и операций он может быть использован для написания программ практически в любом стиле. Так, в приведённом ниже примере программа на Алголе-68 написана в функциональном стиле.

Эта программа реализует классический алгоритм «Решето Эратосфена» для поиска всех простых чисел меньше 100. nil означает null pointer (нулевой указатель) в других языках. Нотация x of y означает «доступ к x как к элементу struct или union y».

begin # Algol-68 prime number sieve, functional style # proc error = (string s) void: (print(( newline, " error: ", s, newline)); goto stop); proc one to = (int n) list: (proc f = (int m,n) list: (m>n | nil | cons(m, f(m+1,n))); f(1,n)); mode list = ref node; mode node = struct (int h, list t); proc cons = (int n, list l) list: heap node := (n,l); proc hd = (list l) int: ( l is nil | error("hd nil"); skip | h of l ); proc tl = (list l) list: ( l is nil | error("tl nil"); skip | t of l ); proc show = (list l) void: ( l isnt nil | print((" ",whole(hd(l),0))); show(tl(l))); proc filter = (proc (int) bool p, list l) list: if l is nil then nil elif p(hd(l)) then cons(hd(l), filter(p,tl(l))) else filter(p, tl(l)) fi; proc sieve = (list l) list: if l is nil then nil else proc not multiple = (int n) bool: n mod hd(l) ? 0; cons(hd(l), sieve( filter( not multiple, tl(l) ))) fi; proc primes = (int n) list: sieve( tl( one to(n) )); show( primes(100) ) end

Ещё одна интересная особенность языка Алгол 68 — его «многоязычность» — в язык заложена возможность использования различных таблиц трансляции, что позволяет для каждого естественного языка определить свой набор ключевых слов Алгола-68. В результате программисты получают возможность писать программы ключевыми словами родного языка. Ниже приведён пример простейшей процедуры на Алголе-68, выполняющей вычисление даты, следующей за переданной в параметре, на двух языках: английском и немецком.

# Next day date - english variant mode date = struct(Int day, string month, Int year); proc the day following = (date x) date: If day of x < length of month (month of x, year of x) then (day of x + 1, month of x, year of x) elif month of x = "December" then (1, "January", year of x + 1) else (1, successor of month (month of x), year of x) fi; # Nachfolgetag - Deutsche Variante menge datum = tupel(ganz tag, wort monat, ganz Jahr); funktion naechster tag nach = (datum x) datum: wenn tag von x < monatslaenge(monat von x, jahr von x) dann (tag von x + 1, monat von x, jahr von x) wennaber monat von x = "Dezember" dann (1, "Januar", jahr von x + 1) ansonsten (1, nachfolgemonat(monat von x), jahr von x) endewenn;

История языка Править

К 1960 году была закончена работа Комитета по языку высокого уровня IFIP (International Federation for Information Processing, Международная федерация по обработке информации), сформировавшего один из первых «классических» ЯВУ — Алгол. Алгол сразу же завоевал популярность, в первую очередь — в академических кругах Европы, не только как язык практического программирования, но и как универсальный язык описания вычислительных алгоритмов в научных работах. Но уже тогда было ясно, что Алгол не идеален и требует доработки. С одной стороны, в языке отсутствовали некоторые весьма желательные возможности, с другой — некоторые механизмы и конструкции Алгола использовались настолько редко, что встал вопрос об исключении их из языка для упрощения транслятора. В результате к 1962 году IFIP собрал из специалистов множества стран Западной Европы и Америки новый комитет по Алголу. Комитету было поставлено две задачи:

  • Согласовать и утвердить сокращённый вариант Алгола, в котором отсутствовали бы редко используемые конструкции исходного языка.
  • Создать язык-преемник Алгола с учётом известных достоинств и недостатков языка-предка.

Работа комитета длилась в течение шести лет — с 1962 по 1968 годы. Довольно быстро комитету удалось выполнить первую задачу — согласовать сокращённое подмножество Алгола, содержащее только широко используемые его элементы. Вопрос же о языке-преемнике решался в течение нескольких лет, в постоянных дискуссиях. Двое членов комитета: Чарльз Хоар из Оксфордского университета и Никлаус Вирт из Швейцарии (в то время он преподавал в США, в Станфордском университете) в 1965 году предложили комитету свой вариант нового языка, названного ими Algol-W. Он представлял собой умеренную переработку Алгола, очищенную от известных недостатков и дополненную минимумом необходимых возможностей. Будучи опубликован, проект был положительно оценён многими учёными, но комитет отклонил его. Предложений различной степени проработанности, было много, часть из них отвергалась, часть была использована в проектировании языка. В декабре 1968 года в Мюнхене на заседании комитета был официально представлен новый язык программирования, получивший название Алгол 68. Язык оказался чрезвычайно развитым, но при этом весьма объёмным и сложным. Даже опытные программисты испытывали затруднения в понимании «сообщения о языке», выпущенного комитетом.

Официальные документы комитета оценивают проделанную им работу положительно, хотя некоторые из членов комитета высказывались как о работе, так и о её результатах крайне негативно. Из критиков языка наиболее известны вышеупомянутые Чарльз Хоар и Никлаус Вирт. Хоар ещё во время работы комитета критиковал проект за «неясность, сложность и сверхамбициозность». По завершении работы комитета Хоар, Вирт и ещё ряд учёных создали небольшой доклад, излагающий критику нового языка. В его резюмирующей части говорилось: «как инструмент надёжного создания сложных программ язык следует признать неудачным» (этот доклад был запрещён к распространению руководством IFIP). Впоследствии, в 1980 году, в своей Тьюринговской лекции Хоар подробно останавливался на работе комитета по Алголу-68, недостатках как процесса разработки языка, так и его самого.

Для описания языка был использован оригинальный формализм — двухуровневые грамматики ван Вейнгаардена. Это позволило добиться строгости описания (поскольку этот тип грамматик позволяет описывать в формальном виде контекстные условия, которые при описании языка в БНФ или РБНФ приходится передавать словесно), но ещё больше усложнило описание. Кроме того, по грамматикам ван Вейнгаардена крайне затруднительно прямо построить анализатор языка, поэтому исходное описание можно было рассматривать лишь как первоначальную форму спецификации синтаксиса, требующую серьёзной модификации для реального практического применения. Выбранный комитетом формализм описания языка предопределил сложности в его реализации. Процесс разработки компиляторов под новый язык оказался сложным и длительным, хотя в конечном итоге они были созданы и использовались.

Того успеха, который имел Алгол 60, Алгол 68 не достиг. В академических кругах он оказался не востребован из-за сложности и громоздкости, а в промышленном программировании не смог потеснить широко использовавшиеся в то время Фортран и Кобол. В каком-то смысле Алгол 68 повторил судьбу языка PL/1, разработанного в 1964 году комитетом под эгидой IBM для System/360 в качестве замены Фортрана и Кобола — в обоих случаях большие по численности комитеты, пытаясь удовлетворить потребности совершенно различных заинтересованных групп пользователей, включили в язык множество весьма мощных, но не использовавшихся всеми или даже большинством разработчиков средств, получив в результате мощный, но громоздкий, неуправляемый и трудно реализуемый инструмент. Если в случае с PL/1 это привело к фактическому распаду языка на подмножества (большинство, возможно, даже все компиляторы PL/1, существовавшие в мире, реализовывало только часть возможностей языка), то Алгол 68 всё-таки был реализован в полном объёме, но число таких реализаций оказалось крайне невелико и использование языка было довольно ограниченным. В Европе Алгол 68 в течение длительного времени использовал Британский королевский комитет по связи и радиолокации. В СССР существовали рабочие группы по разработкам на Алголе-68 (например, новосибирская под руководством академика Андрея Петровича Ершова, ленинградская под руководством Андрея Николаевича Терехова, московские под руководством Александра Николаевича Маслова и Михаила Рувимовича Левинсона). В Ленинградском государственном университете был создан компилятор и мощная система программирования на Алголе-68 для ЕС ЭВМ, эксплуатировавшаяся в течение многих лет. Тем не менее, широкого распространения язык также не получил.

Возможно, одним из факторов, предопределивших фактический провал Алгола-68, стало появление в начале 1970 годов нового поколения языков высокого уровня, среди которых особую роль сыграл Pascal — по сути, тот самый «улучшенный и дополненный вариант Алгола», которого ждали в академической среде от комитета по Алголу-68, но гораздо более простой. Его широкое распространение практически не оставило ниши для Алгола-68.

Несмотря на неудачу, Алгол 68 повлиял на разработчиков более поздних объектно-ориентированных языков, в частности, C++, хотя многие возможности были отброшены, а часть — реализована другими способами. В 1977 году, когда комитет по языку программирования Министерства обороны США пришёл к выводу о необходимости разработки нового языка программирования встроенных систем, по решению комитета предложения по будущему языку должны были базироваться на одном из языков PL/1, Pascal и Алгол 68. Таким образом, у Алгола-68 был шанс стать прародителем нового универсального языка, но этот шанс не осуществился: из 15 представленных на конкурс проектов все 4, отобранные на второй этап для доработки, были основаны на языке Pascal. После ещё одного этапа доработки лучший из этих проектов стал языком Ада.

Критика языка Править

Прежде всего, отрицательные отзывы касаются сложности синтаксиса Алгола-68. В частности, Хоар отмечал, что, отойдя от простоты языка-прародителя, новый язык совершенно не облегчает разработку программ. Как говорил Хоар, «члены комитета использовали постоянные задержки в его работе, чтобы втиснуть в будущий язык всё более сложные конструкции, вместо того, чтобы попытаться упростить его».

Критики отмечали также, что язык провоцирует разработчика на свободное неструктурное программирование с активным использованием собственных абстрактных категорий и обозначений. От этого код программы становился неудобочитаемым, что затрудняет групповую разработку программ и их сопровождение. Кроме того, чрезмерное обилие возможностей языка делало затруднительным полноценную реализацию компилятора.

Литература Править

  • Пейган Ф. Дж. Практическое руководство по Алголу 68 = A Practical Guide to ALGOL 68 / пер. с англ. А.Ф. Рара, под ред. А. П. Ершова. — М. : Мир, 1979. — 240 с.
  • Пересмотренное сообщение об Алголе 68 = Revised Report of the Algorithmic Language ALGOL 68 / ред. А. ван Вейнгаарден и др.; пер. с англ. А.А. Берса. — М. : Мир, 1979. — 533 с.
  • А. Н. Балуев и др. Алгол 68: Методы реализации / под ред. Г. С. Цейтина. — Л. : изд-во Ленингр. ун-та, 1976. — 224 с.
  • Ч. Линдси, С. ван дер Мюйлен. Неформальное введение в Алгол 68 / пер. с англ.. — М. : Мир, 1973. — 408 с.
  • Роберт В Себеста. Глава 2.11. Ортогональная структура: язык ALGOL 68 // Основные концепции языков программирования = Concepts of Programming Languages. — 5-е изд. — М. : «Вильямс», 2001. — С. 672. — ISBN 5-8459-0192-8.
  • Язык компьютера. — М. : Мир, 1989. — С. 163, 190, 194. — ISBN 5-03-001148-X.
  • ГОСТ 27974-88 — Язык программирования АЛГОЛ 68
  • ГОСТ 27975-88 — Язык программирования АЛГОЛ 68 расширенный
  • Brailsford, D.F. and Walker, A.N., Introductory ALGOL 68 Programming, Ellis Horwood/Wiley, 1979
  • McGettrick, A.D., ALGOL 68, A First and Second Course, Cambridge Univ. Press, 1978
  • Peck, J.E.L., An ALGOL 68 Companion, Univ. of British Columbia, October 1971
  • Tanenbaum, A.S., A Tutorial on ALGOL 68, Computing Surveys 8, 155—190, June 1976 and 9, 255—256, September 1977, [1](недоступная ссылка)

Ссылки Править

  • Tutorial — on the A68LGU compiler (a computer-printed text). -Date: 19.02.1981 от 3 декабря 2013 на Wayback Machine
  • Проект Open source Algol 68 implementations на сайте SourceForge.net
  • Programming Algol 68 Made Easy от 3 сентября 2013 на Wayback Machine
  • Из истории создания компилятора с Алгол 68 от 17 января 2020 на Wayback Machine
  • Диалог об Алголе-68 (Авторы просматривают архивные материалы и непринужденно беседуют) от 31 октября 2007 на Wayback Machine
  • (англ.) — The official reference for users and implementors of the language
  • (англ.) — HTML version of the above
  • Charles Lindsey’s paper on the development of ALGOL 68 for the 2nd History of Programming Languages conference proceedings от 3 декабря 2005 на Wayback Machine(англ.)
  • Algol68 Standard Hardware representation от 2 января 2014 на Wayback Machine(англ.)
  • History of ALGOL от 3 июля 2010 на Wayback Machine
  • Проставить сноски, внести более точные указания на источники.
  • Оформить список литературы.

После исправления проблемы исключите её из списка. Удалите шаблон, если устранены все недостатки.

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры

Дата публикации: Октябрь 06, 2023, 20:58 pm
Самые читаемые

Министерство юстиции (Италия)

Министерство национальной безопасности

Минган

Миллькампс, Люк

Милльем

Миловановский

Миклошко, Людек

Микин, Бреанна

Мики Фин

Миддлтон, Джон (1-й граф Миддлтон)

© Copyright 2021, Все права защищены.

Algo l 68 angl Algol 68 ot angl algorithmic algoritmicheskij i angl language yazyk procedurnyj imperativnyj vysokourovnevyj yazyk programmirovaniya potomok yazyka Algol sushestvenno dorabotannyj Razrabatyvalsya v period 1964 1968 godov Pozicionirovalsya kak universalnyj yazyk dlya opisaniya proizvolnyh algoritmov obrabotki dannyh vysokoj slozhnosti Otlichaetsya bolshim obyomom bogatstvom vozmozhnostej i slozhnostyu sintaksisa Algol 68Klass yazyka versiya ili izdanie d i yazyk programmirovaniyaAvtor Adrian van Vejngaarden Barri Majo d i Gregori Pek d Razrabotchik Barri Majo d Gregori Pek d Kornelis Koster d i Adrian van VejngaardenIspytal vliyanie ALGOL Y d i ALGOL 60 d Povliyal na BETA Soderzhanie 1 Osobennosti 2 Istoriya yazyka 3 Kritika yazyka 4 Literatura 5 SsylkiOsobennosti PravitNesmotrya na shozhest nazvaniya i oficialnuyu preemstvennost po otnosheniyu k yazyku Algol 60 Algol 68 unasledoval ot nego lish nekotorye elementy sintaksisa i sushestvenno otlichaetsya ot yazyka predshestvennika prezhde vsego nalichiem bolshogo chisla dopolnitelnyh sintaksicheskih sredstv i izobrazitelnyh vozmozhnostej V chastnosti on vklyuchaet vstroennye v yazyk sredstva organizacii parallelnyh vychislenij operacii so strukturami kak s edinymi obektami matrichnye operacii Naibolee harakternoj osobennostyu sintaksisa Algola 68 yavlyaetsya vozmozhnost pereopredeleniya sintaksisa i operatorov programmist mozhet aktivno rasshiryat yazyk v trebuemom napravlenii sozdavat sobstvennye operacii Celyu vklyucheniya takih sredstv v yazyk bylo dostizhenie maksimalnoj vyrazitelnosti i poluchenie vozmozhnosti udobnogo opisaniya maksimalno abstraktnyh algoritmov Za eti vozmozhnosti a takzhe za nalichie moshnyh operatorov dlya obrabotki struktur i massivov Algol 68 inogda nazyvayut yazykom sverhvysokogo urovnya Formalno Algol 68 yavlyaetsya procedurnym yazykom programmirovaniya orientirovannym na opisanie posledovatelnosti komand no blagodarya razvitym sredstvam opisaniya tipov i operacij on mozhet byt ispolzovan dlya napisaniya programm prakticheski v lyubom stile Tak v privedyonnom nizhe primere programma na Algole 68 napisana v funkcionalnom stile Eta programma realizuet klassicheskij algoritm Resheto Eratosfena dlya poiska vseh prostyh chisel menshe 100 nil oznachaet null pointer nulevoj ukazatel v drugih yazykah Notaciya x of y oznachaet dostup k x kak k elementu struct ili union y begin Algol 68 prime number sieve functional style proc error string s void print newline error s newline goto stop proc one to int n list proc f int m n list m gt n nil cons m f m 1 n f 1 n mode list ref node mode node struct int h list t proc cons int n list l list heap node n l proc hd list l int l is nil error hd nil skip h of l proc tl list l list l is nil error tl nil skip t of l proc show list l void l isnt nil print whole hd l 0 show tl l proc filter proc int bool p list l list if l is nil then nil elif p hd l then cons hd l filter p tl l else filter p tl l fi proc sieve list l list if l is nil then nil else proc not multiple int n bool n mod hd l 0 cons hd l sieve filter not multiple tl l fi proc primes int n list sieve tl one to n show primes 100 end Eshyo odna interesnaya osobennost yazyka Algol 68 ego mnogoyazychnost v yazyk zalozhena vozmozhnost ispolzovaniya razlichnyh tablic translyacii chto pozvolyaet dlya kazhdogo estestvennogo yazyka opredelit svoj nabor klyuchevyh slov Algola 68 V rezultate programmisty poluchayut vozmozhnost pisat programmy klyuchevymi slovami rodnogo yazyka Nizhe privedyon primer prostejshej procedury na Algole 68 vypolnyayushej vychislenie daty sleduyushej za peredannoj v parametre na dvuh yazykah anglijskom i nemeckom Next day date english variant mode date struct Int day string month Int year proc the day following date x date If day of x lt length of month month of x year of x then day of x 1 month of x year of x elif month of x December then 1 January year of x 1 else 1 successor of month month of x year of x fi Nachfolgetag Deutsche Variante menge datum tupel ganz tag wort monat ganz Jahr funktion naechster tag nach datum x datum wenn tag von x lt monatslaenge monat von x jahr von x dann tag von x 1 monat von x jahr von x wennaber monat von x Dezember dann 1 Januar jahr von x 1 ansonsten 1 nachfolgemonat monat von x jahr von x endewenn Istoriya yazyka PravitK 1960 godu byla zakonchena rabota Komiteta po yazyku vysokogo urovnya IFIP International Federation for Information Processing Mezhdunarodnaya federaciya po obrabotke informacii sformirovavshego odin iz pervyh klassicheskih YaVU Algol Algol srazu zhe zavoeval populyarnost v pervuyu ochered v akademicheskih krugah Evropy ne tolko kak yazyk prakticheskogo programmirovaniya no i kak universalnyj yazyk opisaniya vychislitelnyh algoritmov v nauchnyh rabotah No uzhe togda bylo yasno chto Algol ne idealen i trebuet dorabotki S odnoj storony v yazyke otsutstvovali nekotorye vesma zhelatelnye vozmozhnosti s drugoj nekotorye mehanizmy i konstrukcii Algola ispolzovalis nastolko redko chto vstal vopros ob isklyuchenii ih iz yazyka dlya uprosheniya translyatora V rezultate k 1962 godu IFIP sobral iz specialistov mnozhestva stran Zapadnoj Evropy i Ameriki novyj komitet po Algolu Komitetu bylo postavleno dve zadachi Soglasovat i utverdit sokrashyonnyj variant Algola v kotorom otsutstvovali by redko ispolzuemye konstrukcii ishodnogo yazyka Sozdat yazyk preemnik Algola s uchyotom izvestnyh dostoinstv i nedostatkov yazyka predka Rabota komiteta dlilas v techenie shesti let s 1962 po 1968 gody Dovolno bystro komitetu udalos vypolnit pervuyu zadachu soglasovat sokrashyonnoe podmnozhestvo Algola soderzhashee tolko shiroko ispolzuemye ego elementy Vopros zhe o yazyke preemnike reshalsya v techenie neskolkih let v postoyannyh diskussiyah Dvoe chlenov komiteta Charlz Hoar iz Oksfordskogo universiteta i Niklaus Virt iz Shvejcarii v to vremya on prepodaval v SShA v Stanfordskom universitete v 1965 godu predlozhili komitetu svoj variant novogo yazyka nazvannogo imi Algol W On predstavlyal soboj umerennuyu pererabotku Algola ochishennuyu ot izvestnyh nedostatkov i dopolnennuyu minimumom neobhodimyh vozmozhnostej Buduchi opublikovan proekt byl polozhitelno ocenyon mnogimi uchyonymi no komitet otklonil ego Predlozhenij razlichnoj stepeni prorabotannosti bylo mnogo chast iz nih otvergalas chast byla ispolzovana v proektirovanii yazyka V dekabre 1968 goda v Myunhene na zasedanii komiteta byl oficialno predstavlen novyj yazyk programmirovaniya poluchivshij nazvanie Algol 68 Yazyk okazalsya chrezvychajno razvitym no pri etom vesma obyomnym i slozhnym Dazhe opytnye programmisty ispytyvali zatrudneniya v ponimanii soobsheniya o yazyke vypushennogo komitetom Oficialnye dokumenty komiteta ocenivayut prodelannuyu im rabotu polozhitelno hotya nekotorye iz chlenov komiteta vyskazyvalis kak o rabote tak i o eyo rezultatah krajne negativno Iz kritikov yazyka naibolee izvestny vysheupomyanutye Charlz Hoar i Niklaus Virt Hoar eshyo vo vremya raboty komiteta kritikoval proekt za neyasnost slozhnost i sverhambicioznost Po zavershenii raboty komiteta Hoar Virt i eshyo ryad uchyonyh sozdali nebolshoj doklad izlagayushij kritiku novogo yazyka V ego rezyumiruyushej chasti govorilos kak instrument nadyozhnogo sozdaniya slozhnyh programm yazyk sleduet priznat neudachnym etot doklad byl zapreshyon k rasprostraneniyu rukovodstvom IFIP Vposledstvii v 1980 godu v svoej Tyuringovskoj lekcii Hoar podrobno ostanavlivalsya na rabote komiteta po Algolu 68 nedostatkah kak processa razrabotki yazyka tak i ego samogo Dlya opisaniya yazyka byl ispolzovan originalnyj formalizm dvuhurovnevye grammatiki van Vejngaardena Eto pozvolilo dobitsya strogosti opisaniya poskolku etot tip grammatik pozvolyaet opisyvat v formalnom vide kontekstnye usloviya kotorye pri opisanii yazyka v BNF ili RBNF prihoditsya peredavat slovesno no eshyo bolshe uslozhnilo opisanie Krome togo po grammatikam van Vejngaardena krajne zatrudnitelno pryamo postroit analizator yazyka poetomu ishodnoe opisanie mozhno bylo rassmatrivat lish kak pervonachalnuyu formu specifikacii sintaksisa trebuyushuyu seryoznoj modifikacii dlya realnogo prakticheskogo primeneniya Vybrannyj komitetom formalizm opisaniya yazyka predopredelil slozhnosti v ego realizacii Process razrabotki kompilyatorov pod novyj yazyk okazalsya slozhnym i dlitelnym hotya v konechnom itoge oni byli sozdany i ispolzovalis Togo uspeha kotoryj imel Algol 60 Algol 68 ne dostig V akademicheskih krugah on okazalsya ne vostrebovan iz za slozhnosti i gromozdkosti a v promyshlennom programmirovanii ne smog potesnit shiroko ispolzovavshiesya v to vremya Fortran i Kobol V kakom to smysle Algol 68 povtoril sudbu yazyka PL 1 razrabotannogo v 1964 godu komitetom pod egidoj IBM dlya System 360 v kachestve zameny Fortrana i Kobola v oboih sluchayah bolshie po chislennosti komitety pytayas udovletvorit potrebnosti sovershenno razlichnyh zainteresovannyh grupp polzovatelej vklyuchili v yazyk mnozhestvo vesma moshnyh no ne ispolzovavshihsya vsemi ili dazhe bolshinstvom razrabotchikov sredstv poluchiv v rezultate moshnyj no gromozdkij neupravlyaemyj i trudno realizuemyj instrument Esli v sluchae s PL 1 eto privelo k fakticheskomu raspadu yazyka na podmnozhestva bolshinstvo vozmozhno dazhe vse kompilyatory PL 1 sushestvovavshie v mire realizovyvalo tolko chast vozmozhnostej yazyka to Algol 68 vsyo taki byl realizovan v polnom obyome no chislo takih realizacij okazalos krajne neveliko i ispolzovanie yazyka bylo dovolno ogranichennym V Evrope Algol 68 v techenie dlitelnogo vremeni ispolzoval Britanskij korolevskij komitet po svyazi i radiolokacii V SSSR sushestvovali rabochie gruppy po razrabotkam na Algole 68 naprimer novosibirskaya pod rukovodstvom akademika Andreya Petrovicha Ershova leningradskaya pod rukovodstvom Andreya Nikolaevicha Terehova moskovskie pod rukovodstvom Aleksandra Nikolaevicha Maslova i Mihaila Ruvimovicha Levinsona V Leningradskom gosudarstvennom universitete byl sozdan kompilyator i moshnaya sistema programmirovaniya na Algole 68 dlya ES EVM ekspluatirovavshayasya v techenie mnogih let Tem ne menee shirokogo rasprostraneniya yazyk takzhe ne poluchil Vozmozhno odnim iz faktorov predopredelivshih fakticheskij proval Algola 68 stalo poyavlenie v nachale 1970 godov novogo pokoleniya yazykov vysokogo urovnya sredi kotoryh osobuyu rol sygral Pascal po suti tot samyj uluchshennyj i dopolnennyj variant Algola kotorogo zhdali v akademicheskoj srede ot komiteta po Algolu 68 no gorazdo bolee prostoj Ego shirokoe rasprostranenie prakticheski ne ostavilo nishi dlya Algola 68 Nesmotrya na neudachu Algol 68 povliyal na razrabotchikov bolee pozdnih obektno orientirovannyh yazykov v chastnosti C hotya mnogie vozmozhnosti byli otbrosheny a chast realizovana drugimi sposobami V 1977 godu kogda komitet po yazyku programmirovaniya Ministerstva oborony SShA prishyol k vyvodu o neobhodimosti razrabotki novogo yazyka programmirovaniya vstroennyh sistem po resheniyu komiteta predlozheniya po budushemu yazyku dolzhny byli bazirovatsya na odnom iz yazykov PL 1 Pascal i Algol 68 Takim obrazom u Algola 68 byl shans stat praroditelem novogo universalnogo yazyka no etot shans ne osushestvilsya iz 15 predstavlennyh na konkurs proektov vse 4 otobrannye na vtoroj etap dlya dorabotki byli osnovany na yazyke Pascal Posle eshyo odnogo etapa dorabotki luchshij iz etih proektov stal yazykom Ada Kritika yazyka PravitPrezhde vsego otricatelnye otzyvy kasayutsya slozhnosti sintaksisa Algola 68 V chastnosti Hoar otmechal chto otojdya ot prostoty yazyka praroditelya novyj yazyk sovershenno ne oblegchaet razrabotku programm Kak govoril Hoar chleny komiteta ispolzovali postoyannye zaderzhki v ego rabote chtoby vtisnut v budushij yazyk vsyo bolee slozhnye konstrukcii vmesto togo chtoby popytatsya uprostit ego Kritiki otmechali takzhe chto yazyk provociruet razrabotchika na svobodnoe nestrukturnoe programmirovanie s aktivnym ispolzovaniem sobstvennyh abstraktnyh kategorij i oboznachenij Ot etogo kod programmy stanovilsya neudobochitaemym chto zatrudnyaet gruppovuyu razrabotku programm i ih soprovozhdenie Krome togo chrezmernoe obilie vozmozhnostej yazyka delalo zatrudnitelnym polnocennuyu realizaciyu kompilyatora Literatura PravitPejgan F Dzh Prakticheskoe rukovodstvo po Algolu 68 A Practical Guide to ALGOL 68 per s angl A F Rara pod red A P Ershova M Mir 1979 240 s Peresmotrennoe soobshenie ob Algole 68 Revised Report of the Algorithmic Language ALGOL 68 red A van Vejngaarden i dr per s angl A A Bersa M Mir 1979 533 s A N Baluev i dr Algol 68 Metody realizacii pod red G S Cejtina L izd vo Leningr un ta 1976 224 s Ch Lindsi S van der Myujlen Neformalnoe vvedenie v Algol 68 per s angl M Mir 1973 408 s Robert V Sebesta Glava 2 11 Ortogonalnaya struktura yazyk ALGOL 68 Osnovnye koncepcii yazykov programmirovaniya Concepts of Programming Languages 5 e izd M Vilyams 2001 S 672 ISBN 5 8459 0192 8 Yazyk kompyutera M Mir 1989 S 163 190 194 ISBN 5 03 001148 X GOSTyGOST 27974 88 Yazyk programmirovaniya ALGOL 68 GOST 27975 88 Yazyk programmirovaniya ALGOL 68 rasshirennyjLiteratura na anglijskom yazykeBrailsford D F and Walker A N Introductory ALGOL 68 Programming Ellis Horwood Wiley 1979 McGettrick A D ALGOL 68 A First and Second Course Cambridge Univ Press 1978 Peck J E L An ALGOL 68 Companion Univ of British Columbia October 1971 Tanenbaum A S A Tutorial on ALGOL 68 Computing Surveys 8 155 190 June 1976 and 9 255 256 September 1977 1 nedostupnaya ssylka Ssylki PravitTutorial on the A68LGU compiler a computer printed text Date 19 02 1981 Arhivnaya kopiya ot 3 dekabrya 2013 na Wayback Machine Proekt Open source Algol 68 implementations na sajte SourceForge net Programming Algol 68 Made Easy Arhivnaya kopiya ot 3 sentyabrya 2013 na Wayback Machine Iz istorii sozdaniya kompilyatora s Algol 68 Arhivnaya kopiya ot 17 yanvarya 2020 na Wayback Machine Dialog ob Algole 68 Avtory prosmatrivayut arhivnye materialy i neprinuzhdenno beseduyut Arhivnaya kopiya ot 31 oktyabrya 2007 na Wayback Machine Sistema programm dinamicheskoj podderzhki dlya translyatora s Algola 68 Revised Report on the Algorithmic Language ALGOL 68 angl The official reference for users and implementors of the language Revised Report on the Algorithmic Language ALGOL 68 angl HTML version of the above Charles Lindsey s paper on the development of ALGOL 68 for the 2nd History of Programming Languages conference proceedings Arhivnaya kopiya ot 3 dekabrya 2005 na Wayback Machine angl Algol68 Standard Hardware representation Arhivnaya kopiya ot 2 yanvarya 2014 na Wayback Machine angl History of ALGOL Arhivnaya kopiya ot 3 iyulya 2010 na Wayback MachineDlya uluchsheniya etoj stati zhelatelno Prostavit snoski vnesti bolee tochnye ukazaniya na istochniki Oformit spisok literatury Posle ispravleniya problemy isklyuchite eyo iz spiska Udalite shablon esli ustraneny vse nedostatki Istochnik https ru wikipedia org w index php title Algol 68 amp oldid 133140347

История языков программирования: Algol — жертва конфликта интересов

Название языка Algol (ALGOrithmic Language), первая версия которого появилась в 1958 году, подчеркивает то обстоятельство, что он предназначен для записи алгоритмов. Благодаря четкой логической структуре Algol стал стандартным средством записи алгоритмов в научной и технической литературе. Однако он так и не смог полноценно конкурировать с языком Fortran, а с COBOL его и вовсе было трудно сравнивать в силу отсутствия некоторых важных возможностей у Algol – той же обработки текстов например или форматирования ввода/вывода.

«Роды» Algol проходили очень тяжело. Для некоторых его создателей, прямо скажем, – в муках. Ученые и эксперты отрасли никак не могли прийти к единому мнению по многим вопросам.

В результате новый язык скорее вызвал интерес, чем привлек потребителей. Грейс Хоппер охарактеризовала его так: «Похож на большую поэму: простой и ясный с точки зрения математики, но отнюдь не практичный».

Предыстория

В середине 50-х годов роль программирования в машинных кодах стала уменьшаться. Появились языки более высокого уровня – Fortran, Algol, COBOL и так далее.

Первым из них и одним из наиболее распространенных был Fortran (FORmula TRANslator – переводчик формул), разработанный группой программистов фирмы IBM в 1954 году (первая версия). Этот язык был ориентирован на научно-технические расчеты математического характера.

image

Грейс Хоппер — американская учёная и контр-адмирал флота США. Программист гарвардского компьютера Марк I.

В 1954 году группа под руководством Грейс Хоппер разработала систему, включающую язык программирования и компилятор, которая в дальнейшем получила название Math-Matic. После удачного завершения работ по созданию Math-Matic Хоппер и ее группа принялись за разработку нового языка и компилятора, который позволил бы пользователями программировать на языке, близком к обычному английскому. В 1958 году появился компилятор Flow-Matic. Компилятор Flow-Matic был первым языком для обработки коммерческих данных.

Разработки в этом направлении привели к созданию языка COBOL (Common Business Oriented Language). Он был создан в 1960 году. В этом языке были слабее развиты математические средства, но зато хорошо развиты средства обработки текстов, организация вывода данных в форме требуемого документа. Он задумывался как основной язык для массовой обработки данных в сферах управления и бизнеса.

Лучшее – враг хорошего

В 50-х годах ХХ века весь ученый мир ждал решения проблемы определения единого языка для научного программирования. Первыми предложили свой вариант США. В 1957 году начал активно распространяться Fortran. Но европейское сообщество опасалось гегемонии IBM (там и был создан Fortran) и других агрессивных американских фирм. Поэтому они решили, что на европейском рынке непременно обязана взойти новая «звезда».

В 1958 году в Цюрихе, на базе Федерального технического университета был создан специальный комитет. 27 мая прошло первое заседание, на котором собрались восемь наиболее уважаемых авторитетов в области компьютеров: четверо из Европы и четверо из США. На встрече присутствовали создатель Fortran Джон Бэкус и Джозеф Уэгстен, который в последующем стал председателем кратковременного комитета по COBOL.

image

Федеральный технический университет. г. Цюрих

Конференция под девизом «Лучшее — враг хорошего» на деле не соответствовала этому утверждению. Из этого работа продвигалась медленно. Американцы настаивали на языке, который был бы близок к уже используемым на компьютерах. Европейцев интересовали не столько компьютеры, сколько мощь языка при решении сложных математических задач. На второй день обсуждение едва не зашло в тупик из-за мелкого, но вызвавшего бурю эмоций пункта — десятичной точки.

Один из европейцев, ударив кулаком по столу, воскликнул: «Нет! Я никогда не буду использовать точку в десятичных дробях!» Американцы же пренебрежительно отнеслись к европейской привычке использовать в десятичных дробях запятую. Тогда Джозеф Уэгстен взял на себя миротворческую роль и попытался утихомирить «десятичную бурю».

Окончательное решение проблемы, предложенное Уэгстеном, обеспечило новому языку одно из его наиболее замечательных свойств. Он предложил трехуровневую модель языка: уровень описаний, публикаций и реализации.

Мелкие вопросы, типа выбора между точкой и запятой или используемого алфавита, были вынесены на второй-третий уровень, что позволило относительно быстро решить принципиальные вопросы. На уровне публикаций, согласованном позже, допускалось использование национальных ключевых слов и стандартов представления данных (в том числе и десятичной точки), уровень реализации определял язык совершенно строго — согласно ему должны были строиться трансляторы.

Дальнейшие обсуждения пошли исключительно на первом уровне, что позволило двигаться дальше и не застревать на второстепенных деталях.

Полуфабрикат

Язык, созданный на конференции в Цюрихе, многое унаследовал от Fortran, но в Algol основные понятия были собраны в более логичную, можно даже сказать, изящную структуру. Но из-за недостатка времени и необходимости компромиссов было допущено немало оплошностей. Одна из них заключалась в отсутствии процедур ввода и вывода данных. Участники совещания намеренно не касались этой области, где многое зависит от типа компьютера, полагая, что процедуры ввода и вывода должен написать разработчик компилятора языка.

Однако единодушие комитета не было абсолютным: часть делегатов уехала с конференции, полагая, что работа сделана в самом грубом приближении, а другая же часть верила, что сделано достаточно, чтобы Algol стал «звездой» и новым международным стандартом.

image

Одним из таких оптимистов был Джон Бэкус. В феврале 1959 года он убедил влиятельную организацию SHARE (куда входили пользователи компьютеров фирмы IBM) сделать ставку на новый язык программирования. После этого организация настоятельно порекомендовала IBM реализовать Algol.

На словах компания пошла навстречу своим клиентам, а на деле работа в этом направлении почти не велась. В то время IBM была мировым лидером на рынке компьютеров и активно внедряла Fortran, что вполне ожидаемо. У членов SHARE, на самом деле, тоже не было ясной позиции. Когда их энтузиазм угас, они как ни в чем не бывало продолжали поддерживать Fortran.

А Бэкус, несмотря на неудачу, продолжал активно продвигать Algol.

Вернувшись в Цюрих, он заинтересовался грамматикой, то есть правильным расположением слов и знаков в языке. Бэкус разработал строгую и точную систему определения каждой структуры языка логическим образом. Например, определяя элемент «цифра», он писал: «: = 0|1|2|… |9|».

Вскоре программисты стали называть этот подход к описанию синтаксиса нормальной формой Бэкуса, или БНФ. (Последующее уточнение этой работы датским астрономом Питером Науром привело к тому, что такой подход часто стали называть «форма Бэкуса-Наура», (сокращение осталось то же — БНФ). БНФ оказала существенное влияние на разработку языков программирования, в частности была положена в основу второго этапа разработки Алгола.

Между тем, успешным Algol-58 так и не стал: требовалась серьезная доработка.

Algol-60

В январе 1960 года 13 представителей стран Европы и США, включая 7 человек из прошлой цюрихской группы, встретились в Париже, чтобы «залатать дыры», оставшиеся в первом варианте. Одним из вновь прибывших был Наур, предложивший вариант измененного языка Algol, записанный при помощи БНФ.

Синтаксические диаграммы и дерево разбора

После восьми дней трудных переговоров участники конференции покинули Париж в приподнятом настроении, считая, что согласие достигнуто и даже самые ярые критики Алгола должны отныне умолкнуть.

image

С редким единодушием комитет по разработке Algol-60 «голосует» для этой групповой фотографии, сделанной на конференции в Париже в 1960 году. Среди участников – американский специалист по компьютерам Джон Бэкус (ближайший к камере справа) и датский астроном Петер Наур (четвертый слева), в честь которых система описания языков программирования получила название «форма Бэкуса — Наура». (Фотографию сделал Джон Маккарти, создатель языка LISP)

Но едва американские участники конференции сошли с трапа самолета, на Algol-60 обрушилась жесткая критика со стороны. Кроме того, небольшая группа участников конференции указала на неоднозначности, оставшиеся в языке, и приступила к их «рекламированию». Другие критики подчеркивали, что в язык так и не включены средства ввода/вывода.

В Америке Algol-60 встретили холодно. Более того, оказалось, что для него очень сложно написать компилятор: даже самые продвинутые компьютеры того времени не могли воспринимать набор из 116 литер, которые встречались в языке описаний.

В Европе рассуждали по-другому: новый язык давал возможность обмениваться интересными и сложными идеями, невзирая на границы и языковые барьеры. Что еще важнее, он позволил европейской компьютерной индустрии обрести независимость от американских технологий.

Algol 68

В 1962 году под эгидой Международной федерации по обработке информации (International Federation for Information Processing, IFIP) был создан новый комитет, задачей которого являлись дальнейшее совершенствование Algol. В составе нового комитета оказалось немало ученых с мировым именем, в частности, Эдсгер Дейкстра, Никлаус Вирт и Тони Хоар.

Одним из недостатков предшествующей версии все-таки было признано отсутствие ввода/вывода. Пренебрежение к этому моменту объяснялось академической направленностью языка: для ученых главный интерес представляет сам алгоритм, а в каком виде будут представлены выходные данные — дело второстепенное. Для промышленных нужд такой подход не годился.

Вторым серьезным недостатком было низкое быстродействие. Поэтому важной задачей стало повышение эффективности работы на этапе выполнения программы.

Руководителем группы разработки языка по каким-то причинам был А. Ван Вейнгаарден, директор Математического центра Амстердама. Будучи чистым математиком, он, пользуясь своим авторитетом, принимал решения, с которыми не соглашались программисты-практики, что негативно повлияло на получившийся в результате язык.

К сожалению, авторитарный стиль руководства ван Вейнгаардена нередко приводил к размолвкам в коллективе и даже стал причиной выхода Хоара и Вирта из команды. О том, как тяжела была эта потеря для команды, можно судить по такому факту: предложения Вирта, не принятые комитетом, легли в основу языка Pascal.

В Algol 68 было реализовано несколько интересных идей (например, механизмы расширения языка, а также средства для параллельных вычислений), но он получил ограниченное применение.

image

В России были энтузиасты, которые активно использовали его в работе, и язык на основе Algol 68 стал некогда базовым для программирования отечественного компьютера «Эльбрус».

Особенности языка

Как и в большинстве других языков программирования, программа на Algol состоит из главной программы и набора подпрограмм.

begin procedure SUM(V,N); valueN; realarray V; integer N; begin integer I; real TEMP; TEMP:=0; for I:=1 step1 until N do TEMP:=TEMP+V[I]; SUM:=TEMP end; integer K; START: inreal(1,K); if K>0 then begin realarray A[1:K]; inarray(1,A); outreal(2,SUM(A,K)); gotoSTART end end 

Структуры данных, созданные внутри блока, локальны в его пределах и при выходе из блока уничтожаются. Таким образом можно управлять временем жизни данных и областью видимости их идентификаторов. Динамическое выделение памяти для переменных в блоке позволяет эффективно использовать рекурсию.

Блоки могут образовывать вложенные структуры, то есть внутрь блока может быть вложен блок, в него — другой блок и так далее. Важной особенностью языка является также то, что блок является разновидностью оператора — составным оператором и может быть употреблен везде, где допустим обычный оператор.

В Algol реализованы логический, целочисленный и вещественный типы, а из структур данных — лишь однородный массив. Правда, массивы являются динамическими, что позволяло эффективно управлять распределением памяти. К сожалению, типы и структуры данных в языке не слишком разнообразны. Пожалуй, это и определило дальнейшую судьбу языка, применявшегося в первую очередь для научных вычислений.

К особенностям языка можно также отнести механизмы передачи параметров подпрограммам. Их два: хорошо известная передача по значению и довольно экзотическая передача по имени.
Переданное в процедуру выражение вычисляется каждый раз – как если бы вместо формальных параметров были подставлены их значения, вычисленные в контексте вызывающей программы. По сути это нечто среднее между макроподстановкой и вызовом подпрограммы.

Begin procedure p (a,b); name a, b; integer a, b; begin for a:=1 step1 until 10 do b := 0 end p; integer i; integer array s [1:10]; p (i, s[i]) end

При выполнении процедуры p на каждом шаге цикла вместо a подставляется i, а вместо b подставляется s[i], и эта процедура просто обнуляет массив s. Проблем с таким способом передачи параметров очень много, поэтому передача параметров по имени так и осталась прерогативой Algol. Но этот способ передачи параметров оказал влияние на дальнейшее развитие языков программирования.

Роль в истории

Так же, как министерство обороны США в свое время активно поддержало язык COBOL, независимый исследовательский совет Германии и другие правительственные организации западноевропейских стран поддержали Algol.

Благодаря этому язык распространился от Великобритании до Советского Союза. Большинство компиляторов оказались удачными, и вскоре Algol был признан международным языком европейских программистов.

Algol не стал всеобщим международным стандартом, как надеялись некоторые, поскольку такой его статус всерьез задел бы американские интересы. Он набрал небольшую популярность в США, но так навсегда и остался в тени Fortran.

Тем не менее, многие языки, возникшие позднее, базировались (по крайней мере, частично) на Algol, и его вклад в их развитие связан с несколькими основными идеями.

Одна из наиболее важных — блочная структура, позволяющая делить программы на замкнутые единицы, разрабатываемые независимо. Другая идея — рекурсия. Третья идея — БНФ, формализованное определение синтаксиса.

Эти и другие фундаментальные идеи достались в наследство разработчикам других языков.

  • история языков программирования
  • программирование
  • algol
  • fortran
  • структурное программирование
  • Программирование
  • Компиляторы
  • Математика

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *