Jump to content

АЛГОЛ

АЛГОЛ
Руководство по Алголу-20 1965 года.
Парадигма Процедурный , императивный , структурированный.
Семья АЛГОЛ
Разработано Бауэр , Боттенбрух , Рутисхаузер , Самельсон , Бэкус , Кац , Перлис , Вегштейн , Наур , Вокуа , ван Вейнгаарден , Вуджер , Грин , Маккарти
Впервые появился 1958 год ; 66 лет назад ( 1958 )
Дисциплина набора текста Статический , сильный
Объем Лексический
Под влиянием
Большинство последующих императивных языков (включая так называемые АЛГОЛ-подобные языки)
например PL/I , Simula , Pascal , C и Scheme

АЛГОЛ ( / ˈ æ l ɡ ɒ l , - ɡ ɔː l / ; сокращение от « Алгоритмический язык ») [1] — это семейство императивных языков компьютерного программирования, первоначально разработанных в 1958 году. АЛГОЛ сильно повлиял на многие другие языки и был стандартным методом описания алгоритмов , используемым Ассоциацией вычислительной техники (ACM) в учебниках и академических источниках более тридцати лет. [2]

В том смысле, что синтаксис большинства современных языков «алгольный», [3] возможно, он оказал большее влияние, чем три других языка программирования высокого уровня, среди которых он был примерно современным: FORTRAN , Lisp и COBOL . [4] в конечном итоге породил множество других языков программирования, включая PL/I , Simula , BCPL , B , Pascal , Ada и C. Он был разработан, чтобы избежать некоторых предполагаемых проблем с FORTRAN, и

АЛГОЛ представил блоки кода и begin... end пары для их разграничения. Это был также первый язык, реализовавший определения вложенных функций с лексической областью действия . Более того, это был первый язык программирования, в котором подробное внимание уделялось формальному определению языка, и в отчете об Алголе 60 была представлена ​​форма Бэкуса-Наура , основная формальная грамматическая запись для проектирования языка.

Существовало три основные спецификации, названные в честь года их первой публикации:

  • АЛГОЛ 58 — первоначально предлагалось называть IAL , что означает «Международный алгебраический язык» .
  • АЛГОЛ 60 - впервые реализован как X1 АЛГОЛ 60 в 1961 году. Пересмотрен в 1963 году. [5] [6] [7]
  • АЛГОЛ 68 – представлены новые элементы, включая гибкие массивы, срезы, параллелизм, идентификация операторов. Пересмотрено в 1973 году. [8]

АЛГОЛ 68 существенно отличается от АЛГОЛа 60 и не был принят хорошо. [ по мнению кого? ] поэтому под словом «Алгол» обычно понимают АЛГОЛ 60 и его диалекты. [ нужна ссылка ]

АЛГОЛ был разработан совместно комитетом европейских и американских ученых-компьютерщиков на встрече в 1958 году в Швейцарском федеральном технологическом институте в Цюрихе (см. АЛГОЛ 58 ). [9] Он определил три разных синтаксиса: ссылочный синтаксис, синтаксис публикации и синтаксис реализации, синтаксисы, которые позволяли использовать разные имена ключевых слов и соглашения для десятичных точек (запятые или точки) для разных языков. [ нужна ссылка ]

АЛГОЛ использовался в основном учеными-компьютерщиками в США и Европе; коммерческим приложениям препятствовало отсутствие стандартных средств ввода/вывода в его описании, а также отсутствие интереса к языку со стороны крупных поставщиков компьютеров (кроме Burroughs Corporation ). [ нужна ссылка ] Однако АЛГОЛ 60 стал стандартом для публикации алгоритмов и оказал глубокое влияние на будущее развитие языка. [ по мнению кого? ]

подпись
Алгол, Фортран и КОБОЛ. Генеалогическое древо династии языков программирования

Джон Бэкус разработал метод нормальной формы Бэкуса для описания языков программирования специально для АЛГОЛА 58. Он был переработан и расширен Питером Науром для АЛГОЛА 60 и по Дональда Кнута предложению переименован в форму Бэкуса-Наура . [10]

Питер Наур: «Как редактор бюллетеня АЛГОЛ, я был вовлечен в международные дискуссии по языку и в ноябре 1959 года был выбран членом европейской группы разработчиков языков. В этом качестве я был редактором отчета по АЛГОЛ 60, подготовленного в результате встречи АЛГОЛ-60 в Париже в январе 1960 года». [11]

На встрече в Париже (с 1 по 16 января) присутствовали следующие люди: [ нужна ссылка ]

Алан Перлис дал яркое описание встречи: «Встречи были утомительными, бесконечными и волнующими. Человек раздражался, когда хорошие идеи одного человека отбрасывались вместе с плохими идеями других. Тем не менее, усердие сохранялось в течение всего периода. 13-й был превосходен». [ Эта цитата нуждается в цитировании ]

АЛГОЛ 60 вдохновил множество последовавших за ним языков. Тони Хоар заметил: «Это язык, настолько опередивший свое время, что он стал улучшением не только своих предшественников, но и почти всех своих преемников». [12] Язык программирования Scheme , вариант Lisp , который принял блочную структуру и лексическую область ALGOL, также принял формулировку «Пересмотренный отчет об алгоритмической языковой схеме» для своих стандартных документов в честь ALGOL. [13]

АЛГОЛ и исследование языка программирования

[ редактировать ]

Как заметил Питер Ландин , [ нужна ссылка ] АЛГОЛ был первым языком, в котором органично сочетались императивные эффекты с ( вызов по имени ) лямбда-исчислением . [ нужна ссылка ] Возможно, самая элегантная формулировка языка принадлежит Джону К. Рейнольдсу , и она лучше всего демонстрирует свою синтаксическую и семантическую чистоту. [ по мнению кого? ] Идеализированный АЛГОЛ Рейнольдса также представил убедительный методологический аргумент относительно пригодности локальных эффектов в контексте языков с вызовом по имени, в отличие от глобальных эффектов, используемых языками с вызовом по значению, такими как ML . [ нужна ссылка ] Концептуальная целостность языка сделала его одним из основных объектов семантических исследований наряду с программированием вычислимых функций (PCF) и ML. [ нужна ссылка ]

График внедрения IAL

[ редактировать ]

На сегодняшний день существует не менее 70 дополнений, расширений, производных и подъязыков Алгола 60. [14]

Имя Год Автор Страна Описание Целевой процессор
ZMMD-реализация 1958 Фридрих Л. Бауэр , Хайнц Рутисхаузер, Клаус Самельсон, Герман Боттенбрух  Германия реализация АЛГОЛА 58 Z22
(позже Zuse ​​от Z23 был поставлен с компилятором Algol 60) [15]
X1 АЛГОЛ 60 1960 август [16] Эдсгер В. Дейкстра и Яап А. Зонневельд  Нидерланды Первая реализация АЛГОЛА 60 [17] Электрологика X1
Эллиотт Алгол 1960-е годы АВТОМОБИЛЬ Хоар  Великобритания Тема на Премии Тьюринга 1980 года. лекции [18] Эллиотт 803 , Эллиотт 503, Эллиотт 4100 серии
ВЕСЕЛЫЙ 1960 Жюль Шварц  НАС DOD HOL перед Адой Разное (см. статью)
Берроуз Алгол
(Несколько вариантов)
1961 Burroughs Corporation (при участии Хоара, Дейкстры и др.)  НАС Основа компьютеров Burroughs (а теперь и Unisys MCP ) Компания Burroughs Large Systems , а также их устройства среднего класса.
Случай Алгола 1961 Технологический институт Кейса [19]  НАС Simula изначально задумывалась как расширение моделирования Case ALGOL. УНИВАК 1107
ГОГОЛЬ 1961 Уильям М. Маккиман  НАС Для системы разделения времени ODIN [20] ПДП-1
RegneCentralen АЛГОЛ 1961 Питер Наур , Йорн Йенсен  Дания Внедрение полного Алгола 60 DASK в Регнецентралене
Дартмутский Алгол 30 1962 Томас Юджин Курц и др.  НАС ЛГП-30
Военный корабль США 90 Алгол 1962 Л. Петроне  Италия
АЛГОЛ 60 1962 Бернар Вокуа , Луи Болье [21]  Франция Институт компьютерных наук и прикладной математики Гренобля (IMAG) и Compagnie des Machines Bull Бык Гамма 60
Алголь переводчик 1962 Г. ван дер Мей и В.Л. ван дер Поэль  Нидерланды Государственная почта, Телеграфная и телефонная компания ЗЕБРА
Кидсгроув Алгол 1963 ФГ Дункан  Великобритания Английская электрическая компания KDF9
ВАЛГОЛЬ 1963 Вэл Шорре  НАС Тест META II компилятора компилятора
точильный камень 1964 Брайан Рэнделл и Эл Джей Рассел  Великобритания Подразделение атомной энергетики английской электрической компании. Предшественник реализаций Ferranti Pegasus , National Physical Laboratories ACE и English Electric DEUCE . Английская электрическая компания KDF9
НЕ АЛГОЛ 1965  Норвегия УНИВАК
ВОДОРОСЛИ 1965  Советский Союз АЛГЭК на базе АЛГОЛ-60 и КОБОЛа для экономических задач. поддержки Минск-22
АЛГОЛ W 1966 Никлаус Вирт  НАС Предлагаемый преемник АЛГОЛА 60. IBM Система/360
МАЛГОЛ 1966 publ. A. Viil, M Kotli & M. Rakhendi,  Эстонская ССР Минск-22
ЗАРПЛАТА 1967 GAMS group (ГАМС, группа автоматизации программирования для машин среднего класса), cooperation of Comecon Academies of Science СЭВ Минск-22 , позже ЕС ЭВМ , БЭСМ
ALGOL/ZAM 1967  Польша Польский ZAM компьютер
С 67 лет 1967 Оле-Йохан Даль и Кристен Нигаард  Норвегия Алгол 60 с классами УНИВАК 1107
Триплекс-АЛГОЛ Карлсруэ 1967/1968 Карлсруэ ,  Германия АЛГОЛ 60 (1963) с триплексными числами для интервальной арифметики [22]
Китайский Алгол 1972  Китай Китайские иероглифы, выраженные через систему символов.
ГД/Л 1972  НАС DG Eclipse Семейство компьютеров
S-алгол 1979 Рон Моррисон  Великобритания Добавление ортогональных типов данных с предполагаемым использованием в качестве языка обучения. PDP-11 с последующей реализацией на Java VM

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

Характеристики

[ редактировать ]

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

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

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

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

Примеры и переносимость

[ редактировать ]

Сравнение примеров кода

[ редактировать ]

(Способ написания жирного текста зависит от реализации, например, «ЦЕЛОЕ» (включая кавычки) для целого числа. Это называется обрезкой .)

procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
    value n, m; array a; integer n, m, i, k; real y;
comment The absolute greatest element of the matrix a, of size n by m,
    is copied to y, and the subscripts of this element to i and k;
begin
    integer p, q;
    y := 0; i := k := 1;
    for p := 1 step 1 until n do
        for q := 1 step 1 until m do
            if abs(a[p, q]) > y then
                begin y := abs(a[p, q]);
                    i := p; k := q
                end
end Absmax

Вот пример того, как создать таблицу с помощью Elliott 803 ALGOL. [24]

 FLOATING POINT ALGOL TEST'
 BEGIN REAL A,B,C,D'
 READ D'
 FOR A:= 0.0 STEP D UNTIL 6.3 DO
 BEGIN
   PRINT PUNCH(3),££L??'
   B := SIN(A)'
   C := COS(A)'
   PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C'
 END
 END'

Следующие примеры кода представляют собой версии ALGOL 68 приведенных выше примеров кода ALGOL 60.

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

proc abs max = ([,]real a, ref real y, ref int i, k)real:
comment The absolute greatest element of the matrix a, of size ⌈a by 2⌈a
is transferred to y, and the subscripts of this element to i and k; comment
begin
   real y := 0; i := ⌊a; k := 2⌊a;
   for p from ⌊a to ⌈a do
     for q from 2⌊a to 2⌈a do
       if abs a[p, q] > y then
           y := abs a[p, q];
           i := p; k := q
       fi
     od
   od;
   y
end # abs max #

Примечание. Нижняя (⌊) и верхняя (⌈) границы массива, а также срез массива доступны непосредственно программисту.

floating point algol68 test:
(
  real a,b,c,d;
   
  # printf – sends output to the file stand out. #
  # printf($p$); – selects a new page #
  printf(($pg$,"Enter d:"));  
  read(d);
   
  for step from 0 while a:=step*d; a <= 2*pi do
    printf($l$);  # $l$ - selects a new line. #
    b := sin(a);
    c := cos(a);
    printf(($z-d.6d$,a,b,c))  # formats output with 1 digit before and 6 after the decimal point. #
  od
)

Таймлайн: Привет, мир!

[ редактировать ]

Вариации и отсутствие переносимости программ из одной реализации в другую легко демонстрируется на примере классической программы hello world . [ нужна ссылка ]

АЛГОЛ 58 (ИАЛ)

[ редактировать ]

Алгол 58 не имел средств ввода-вывода.

Семейство АЛГОЛ 60

[ редактировать ]

Поскольку в АЛГОЛе 60 не было средств ввода-вывода, в АЛГОЛе нет переносимой программы hello world . Следующие три примера находятся в расширенном алгоритме Берроуза. Первые два напрямую выводятся на интерактивный терминал, на котором они запущены. Первый использует массив символов, аналогичный C. Язык позволяет использовать идентификатор массива в качестве указателя на массив и, следовательно, в инструкции REPLACE.

BEGIN
   FILE F(KIND=REMOTE);
   EBCDIC ARRAY E[0:11];
   REPLACE E BY "HELLO WORLD!";
   WRITE(F, *, E);
 END.

Более простая программа, использующая встроенный формат:

BEGIN
   FILE F(KIND=REMOTE);
   WRITE(F, <"HELLO WORLD!">);
 END.

Еще более простая программа, использующая оператор Display. Обратите внимание, что его выходные данные попадут на системную консоль («SPO»):

BEGIN DISPLAY("HELLO WORLD!") END.

Альтернативный пример использования ввода-вывода Elliott Algol выглядит следующим образом. Эллиот Алгол использовал разные символы для «цитат открытой строки» и «кавычек закрытой строки», представленных здесь как  '   и   .

program HiFolks;
 begin
    print Hello world
 end;

Ниже представлена ​​версия от Elliott 803 Algol (A104). В стандартном Elliott 803 использовалась бумажная лента с пятью отверстиями, поэтому в нем были только заглавные буквы. В коде отсутствовали символы кавычек, поэтому для открытой кавычки использовался £ (знак британского фунта), а ? (Знак вопроса) для закрытия цитаты. Специальные последовательности заключались в двойные кавычки (например, ££L?? выводил на телетайпе новую строку).

  HIFOLKS'
  BEGIN
     PRINT £HELLO WORLD£L??'
  END'

Версия ввода-вывода Algol серии ICT 1900 позволяла вводить данные с бумажной ленты или перфокарты. В режиме «заполнения» бумажной ленты разрешен нижний регистр. Вывод осуществлялся на построчный принтер. Символы открывающей и закрывающей кавычек были представлены с помощью символов «(» и «)» и пробелов через %. [25]

  'BEGIN'
     WRITE TEXT('('HELLO%WORLD')');
  'END'

Код ALGOL 68 был опубликован с зарезервированными словами, обычно написанными строчными буквами, но выделенными жирным шрифтом или подчеркнутыми.

begin
  printf(($gl$,"Hello, world!"))
end

На языке «Отчета об Алголе 68» средства ввода/вывода назывались «Транспут».

Хронология специальных символов АЛГОЛА

[ редактировать ]

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

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

Сентябрь 1961 года: ASCII. В набор символов ASCII , находившийся тогда на ранней стадии разработки, был добавлен символ \ (обратная косая черта) для поддержки логических операторов АЛГОЛА /\ и \/ . [26]

1962: ALCOR - этот набор символов включал необычный рунический крест «᛭». [27] символ умножения и символ десятичной экспоненты «⏨». [28] для записи с плавающей запятой. [29] [30] [31]

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

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

Октябрь 2009 г.: Юникод – The (Символ десятичной экспоненты) для записи с плавающей запятой был добавлен в Unicode 5.2 для обратной совместимости с историческим программным обеспечением ALGOL программы Buran . [33]

См. также

[ редактировать ]
  1. ^ Название этой языковой семьи иногда дается в смешанном регистре ( Algol 60 , архивировано 25 июня 2007 г. в Wayback Machine ), а иногда и полностью в верхнем регистре ( ALGOL68 , архивировано 13 сентября 2014 г. в Wayback Machine ). Для простоты в этой статье используется АЛГОЛ .
  2. ^ Сборник алгоритмов ACM. Архивировано 17 октября 2011 г. в Wikiwix. Сжатые архивы алгоритмов. АКМ .
  3. ^ О'Хирн, PW; Теннент, РД (сентябрь 1996 г.). «Алголоподобные языки, Введение» . Архивировано из оригинала 14 ноября 2011 года.
  4. ^ «Язык программирования ALGOL». Архивировано 6 октября 2016 г. в Wayback Machine , Мичиганский университет в Дирборне.
  5. ^ Бэкус, Джон Уорнер ; Бауэр, Фридрих Людвиг ; Грин, Жюльен ; Кац, Чарльз ; Маккарти, Джон ; Наур, Питер ; Перлис, Алан Джей ; Рутисхаузер, Хайнц ; Самельсон, Клаус ; Вокуа, Бернар ; Вегштейн, Джозеф Генри ; ван Вейнгаарден, Адриан ; Вуджер, Майкл (май 1960 г.). Наур, Питер (ред.). «Отчет по алгоритмическому языку АЛГОЛ 60» . Коммуникации АКМ . 3 (5). Копенгаген, Дания: 299–314. дои : 10.1145/367236.367262 . ISSN   0001-0782 . S2CID   278290 .
  6. ^ «Пересмотренный отчет об алгоритмическом языке Алгол 60» . 1963. Архивировано из оригинала 25 июня 2007 года . Проверено 8 июня 2007 г.
  7. ^ «Транслятор ALGOL 60 для X1» (PDF) . 1961. Архивировано (PDF) из оригинала 9 октября 2022 года . Проверено 7 января 2021 г.
  8. ^ «Пересмотренный отчет об алгоритмическом языке АЛГОЛ 68» (PDF) . 1973. Архивировано (PDF) из оригинала 13 сентября 2014 года . Проверено 13 сентября 2014 г.
  9. ^ «История ALGOL — Software Preservation Group» . www.softwarepreservation.org . Проверено 14 марта 2024 г.
  10. ^ Кнут, Дональд Э. (1964). «Нормальная форма Бэкуса против формы Бэкуса-Наура» . Коммуникации АКМ . 7 (12): 735–736. дои : 10.1145/355588.365140 . S2CID   47537431 .
  11. ^ Цитирование премии ACM: Питер Наур. Архивировано 2 апреля 2012 г. в Archive-It , 2005 г.
  12. ^ «Советы по проектированию языка программирования». Архивировано 15 сентября 2009 года в Wayback Machine , CAR Hoare, декабрь 1973 года. Страница 27. (Это утверждение иногда ошибочно приписывают Эдсгеру В. Дейкстре , также участвовавшему в реализации первого компилятора ALGOL 60. )
  13. ^ Дыбвиг, РК; и др. Рис, Джонатан; Клингер, Уильям; Абельсон, Хэл (ред.). «Пересмотренный (3) отчет об алгоритмической языковой схеме (посвящается памяти Алгола 60)» . Архивировано из оригинала 14 января 2010 года . Проверено 20 октября 2009 г.
  14. ^ «Энциклопедия компьютерных языков» . Архивировано из оригинала 27 сентября 2011 года . Проверено 20 января 2012 г.
  15. История компьютерного музея. Архивировано 20 августа 2010 года в Wayback Machine , исторический Zuse-Computer Z23, восстановленный Школой Конрада Цузе в Хюнфельде, для Центра истории компьютерного музея в Маунтин-Вью (Калифорния), США.
  16. ^ Дневной свет, EG (2011). «Сплоченный клич Дейкстры к обобщению: появление рекурсивной процедуры, конец 1950-х - начало 1960-х годов» . Компьютерный журнал . 54 (11): 1756–1772. CiteSeerX   10.1.1.366.3916 . дои : 10.1093/comjnl/bxr002 . Архивировано из оригинала 12 марта 2013 года.
  17. ^ Круземан Арец, FEJ (30 июня 2003 г.). «Компилятор Дейкстра-Зонневельда ALGOL 60 для Electrologica X1». Программная инженерия (PDF) . История информатики. Амстердам: Центр математики и информатики. Архивировано (PDF) из оригинала 4 марта 2016 г.
  18. ^ Хоар, Энтони (1980). «Старая одежда императора» . Коммуникации АКМ . 24 (2): 75–83. дои : 10.1145/358549.358561 .
  19. ^ Коффман, Элиот. «Все, что мне действительно нужно знать, я узнал в CS1» (PDF) . Архивировано из оригинала (PDF) 12 октября 2012 года . Проверено 20 мая 2012 г.
  20. ^ «ГОГОЛЬ – PDP-1 Алгол 60 (Язык компьютера)» . Интернет-историческая энциклопедия языков программирования. Архивировано из оригинала 2 февраля 2018 года . Проверено 1 февраля 2018 г.
  21. ^ Мунье-Кун, Пьер (2014). «Алголь во Франции: от универсального проекта к встроенной культуре» . IEEE Анналы истории вычислений . 36 (4): 6–25. дои : 10.1109/MAHC.2014.50 . ISSN   1058-6180 . S2CID   16684090 .
  22. ^ Випперманн, Ханс-Вильм (1968) [15 июня 1967, 1966]. «Определение связанных чисел в Триплекс-АЛГОЛ». Вычисление (на немецком языке). 3 (2). Карлсруэ, Германия: Springer: 99–109. дои : 10.1007/BF02277452 . ISSN   0010-485X . S2CID   36685400 .
  23. ^ Ахо, Альфред В .; Сетхи, Рави ; Уллман, Джеффри Д. (1986). Составители: принципы, методы и инструменты (1-е изд.). Аддисон-Уэсли. ISBN  0-201-10194-7 . , Раздел 7.5 и ссылки в нем
  24. ^ «803 АЛГОЛ». Архивировано 29 мая 2010 г. на Wayback Machine , руководство для Elliott 803 ALGOL.
  25. ^ «Серия ICL 1900: Язык Алгол» . Техническая публикация ICL 3340. 1965 г.
  26. ^ Как ASCII получил обратную косую черту. Архивировано 11 июля 2014 г. в Wayback Machine , Боб Бемер.
  27. ^ железный/рунический крест
  28. ^ Символ десятичной степени
  29. ^ Бауманн, Р. (октябрь 1961 г.). «Руководство АЛГОЛ группы АЛКОР, Часть 1» [Руководство АЛГОЛ группы АЛКОР]. Elektronische Rechenanlagen (на немецком языке): 206–212.
  30. ^ Бауманн, Р. (декабрь 1961 г.). «Руководство АЛГОЛ группы АЛКОР, часть 2» [Руководство АЛГОЛ группы АЛКОР]. Электронная бухгалтерия (на немецком языке). 6 : 259–265.
  31. ^ Бауманн, Р. (апрель 1962 г.). «Руководство по АЛГОЛ группы АЛКОР, часть 3» [Руководство по АЛГОЛ группы АЛКОР]. Elektronische Rechenanlagen (на немецком языке). 2 .
  32. ^ «Стандарт ГОСТ 10859» . Архивировано из оригинала 16 июня 2007 года . Проверено 5 июня 2007 г.
  33. ^ Брухис, Леонид (22 января 2008 г.). «Пересмотренное предложение по кодированию символа десятичной степени» (PDF) . www.unicode.org . ISO/IEC JTC 1/SC 2/WG 2. Архивировано (PDF) из оригинала 31 июля 2015 г. . Проверено 24 января 2016 г. Это означает, что необходимость в перекодировании программного обеспечения и документации на основе ГОСТ все еще может возникнуть: устаревшие числовые алгоритмы (некоторые из которых могут представлять интерес, например, для автоматической посадки шаттла «Буран»…), оптимизированные для операций с плавающей запятой, не соответствующих IEEE представление БЭСМ-6 нельзя просто перекомпилировать и ожидать, что оно будет работать надежно, и может потребоваться некоторое вмешательство человека.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c8823903cdb105d3ae4fde8d11344b9d__1720823280
URL1:https://arc.ask3.ru/arc/aa/c8/9d/c8823903cdb105d3ae4fde8d11344b9d.html
Заголовок, (Title) документа по адресу, URL1:
ALGOL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)