ALGOL

ALGOL
Парадигма язык программирования, процедурный язык программирования, императивный язык программирования и структурный язык программирования
Спроектировано Bauer, Bottenbruch, Rutishauser, Samelson, Backus, Katz, Perlis, Wegstein, Naur, Vauquois, van Wijngaarden, Woodger, Green, McCarthy
Первый   появившийся 1958
Влияние
Большенство современных языков таких, как PL/I, Simula, BCPL, B, Pascal, C

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

Был самым влиятельным из четырех языков программирования высокого уровня, среди которых Fortran, Lisp и COBOL. Был разработан, чтобы избежать некоторых проблем с Fortran и в конечном итоге породил множество других языков программирования, включая PL/I, Simula, BCPL, B, Pascal и C.

История

ALGOL создавался совместно с комитетом европейских и американских компьютерных ученых в встрече в 1958 в университете ETH Zurich (ALGOL 58).

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

Виды

Были три основных вида, названные в честь года, когда они были впервые опубликованы:

ALGOL 58

первоначально предлагалось назвать IAL, для международного Алгебраического языка.

Представила трехуровневую концепцию эталонного, издательского и аппаратного языка и концепцию «разделителей слов», имеющих другое представление выбранных выбранных идентификаторов (следовательно, никаких зарезервированных слов).

ALGOL 60

впервые реализован как X1

ALGOL 60 в середине 1960 года. Пересмотрен в 1963 году.

Является первым языком для стандартизации.

ALGOL 68

введены новые элементы, включая гибкие массивы, срезы, параллелизм, идентификацию операторов. Пересмотрен в 1973 году.

Niklaus Wirth основал свой собственный ALGOL W на ALGOL 60 перед разработкой Pascal. ALGOL-W было основано на предложении для следующего поколени ALGOL, но комитет

ALGOL 68 создан на конструкции которая была более сложна и более продвинута, чем очищенное упрощенное ALGOL 60.

ALGOL 68 существенно отличается от ALGOL 60 и не был хорошо принят.

Свойства

ALGOL 60 как первоначально определенные объекты ввода / вывода; реализации определяли свои собственные способами, которые редко были совместимы друг с другом. Напротив, ALGOL 68 предоставляет обширную библиотеку средств передачи (ввода / вывода).

ALGOL 60 допускал две стратегии оценки для передачи параметров: общий вызов по значению и вызов по имени. Вызов по имени имеет некоторые эффекты, в отличие от вызова по ссылке. Например, без указания параметров, поскольку это переменная, невозможно разработать процедуру, которая является переменной и переменной. . Подумайте о передаче указателя на обмен (i, A [i]) в функции. Теперь, когда каждый раз ссылается, он переоценивается. Скажем, i: = 1 и A [i]: = 2, поэтому при каждом обращении к ссылке он возвращает другую комбинацию значений ([1,2], [2,1], [1,2] и так далее на). Аналогичная ситуация возникает при случайной функции, переданной как фактический аргумент.

Call-by-name известен многим разработчикам компилятора для интересных «thunks», которые используются для его реализации. Дональд Кнут разработал «тест мужчины или мальчика» для разделения компиляторов, которые позволили реализовать «рекурсию и нелокальные ссылки». Этот тест содержит пример вызова по имени.

ALGOL 68 был определен с использованием двухуровневого формализма грамматики, изобретенного Адрианом ван Вийнгаарденом и который носит его имя. В граммах Van Wijngaarden используется контекстно-свободная грамматика для создания бесконечного набора произведений, которые распознают конкретную программу ALGOL 68; В частности, они могут выразить себя в следующих терминах: синтаксический анализатор.

Сроки реализации

На сегодняшний день было по крайней мере 70 аугментаций, расширений, дериваций и подъязыков Algol 60

Диалекты Burroughs включали специальные загрузочные диалекты, такие как ESPOL и NEWP. Последний по-прежнему используется для системного программного обеспечения UNISYS MCP.

Хронология символов ALGOL

Эта статья содержит символы Unicode 6.0 «Разное». Без надлежащей поддержки рендеринга вы можете видеть вопросительные знаки, поля или другие символы вместо «₁₀» (символ десятичной экспоненты U + 23E8 TTF).

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

1960: IFIP. Язык и отчет Algol 60 включали несколько математических символов, которые доступны на современных компьютерах и операционных системах, но, к сожалению, в то время не поддерживались в большинстве систем. Например: ×, ÷, ≤, ≥, ≠, ¬, ∨, ∧, ⊂, ≡, ␣ и.

1961 сентябрь: ASCII - набор символов ASCII, а затем на ранней стадии разработки имел добавленный символ \ (Back slash) в поддержку булевых операторов ALGOL / \ и \ /.

1962: ALCOR. Этот набор символов включает необычный символ «᛭» (железо / рунический крест ) и символ «⏨» (символ десятичной экспоненты) для нотации с плавающей запятой.

1964: ГОСТ. Советский стандарт 1964 года ГОСТ 10859 разрешил кодирование 4-битных, 5-битных, 6-битных и 7-битных символов в ALGOL.

1968: «Algol 68 Report» - использовались существующие символы ALGOL и далее были приняты →, ↓, ↑ ,,, ⌊, ⌈, ⎩, ⎧, ○, ⊥ и символы, которые можно найти на клавиатуре IBM 2741, мяч для гольфа ", в которые вставлены печатающие головки (например, гольф-клуб APL). Они стали доступны в середине 1960-х годов, когда разрабатывался проект ALGOL 68. Доклад был переведен на кириллический алфавит советского БЭСМ-4 кириллицей. Все персонажи ALGOL также являются частью стандартного Unicode, и большинство из них доступны в нескольких популярных шрифтах.

2009 Октябрь: Unicode - символ «⏨» (символ десятичной экспоненты) для нотации с плавающей запятой был добавлен в Unicode 5.2 для обратной совместимости с программным обеспечением ALAN.

Недостатки

Algol использовали в основном компьютерщики США и Европы. Использование его в качестве коммерческого ресурса было затруднительно и обуславливалось это отсутствием стандартных средств ввода / вывода в его описании и отсутствием интереса к языку со стороны крупных поставщиков компьютеров, помимо корпорации "Берроуз".

ALGOL 60, однако, стал стандартом для публикации алгоритмов и оказал глубокое влияние на будущее развитие языка. Примечание

Международный Алгебраический Язык (IAL), или ALGOL 58, был чрезвычайно влиятельным и в целом считался родоначальником большинства современных языков программирования (так называемые Algol-подобные языки). Кроме того, объектный код ALGOL был простой, компактной и основанной на стеке архитектурой набора инструкций, обычно используемой при обучении построению компилятора и других языков высокого порядка (из которых Algol обычно считается первым).[Источник 1]

Источники

  1. ALGOL // Wikipedia [2001–2018]. Дата изменения: 31.05.2018. URL: https://en.wikipedia.org/wiki/ALGOL (Дата обращения: 15.06.2018).

Ссылки

Revised Report on the Algorithmic Language Algol 60