Альфа-язык (Gl,sg-x[dt)

Перейти к навигации Перейти к поиску

Альфа-язык — расширенный диалект языка программирования Algol 60. Разработан в СССР в 1960-х гг под руководством Андрея Петровича Ершова.

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

История создания

[править | править код]

В дневнике Ершова сохранилась запись от 7 сентября 1958 года, помеченная им, как начало α-транслятора. При проектировании языка он отталкивался от идеи дать как можно более естественную форму для выражения алгоритмов вычислительной математики, которой руководствовались создатели Алгола (предварительная версия которого была опубликована в 1958). После публикации «Сообщении об алгоритмическом языке Алгол 60» было принято решение удалить все несущественные различия из проекта альфа-языка (известного тогда под неформальным названием сибирский), сделав его расширением Алгола-60[1].

Расширения

[править | править код]

Комплексные числа

[править | править код]

Для описания комплексных переменных использовалось ключевое слово комплексный. С комплексными числами работают все арифметические операции и большинство математических функций (sqrt, ln, exp, sin, cos, tan, sh, ch, th, arctan, arth, arcsin, arccos, arsh, arch) и операции сравнения на равенство и неравенство. Функции, являющиеся для комплексных аргументов многозначными, такие как квадратный корень или логарифм, вычисляют главное значение[2].

Многомерные значения и переменные

[править | править код]

Для описания многомерных переменных (которые различаются от стандартных массивов Алгола) используется форма, вроде вещественный А — массив 2×3×5; , вместо ключевого слова массив, для более естественной записи, можно использовать ключевые слова вектор и матрица. Если a — двумерная матрица, то a [i,] будет обращением к её i-й строке, a [,j] — к j-му столбцу, а a [,] — ко всей матрице[3].

В отличие от массивов Алгола, над многомерными значениями можно выполнять все арифметические и логические операции и стандартные функции. Арифметические операции +, -, /, ÷, (при возведении в нецелую степень) выполняются покомпонентно[4].

Примечания

[править | править код]
  1. Ирина Крайнева, Наталья Черемных. Альфа-язык и транслятор // Открытые системы. — 2014. — № 6. Архивировано 20 ноября 2015 года.
  2. Аникеева, 1979, 2.1. Комплексные величины и действия над ними, с. 13-16.
  3. Аникеева, 1979, 2.2. Многомерные значения и переменные, с. 16-21.
  4. Аникеева, 1979, 2.2. Операции над многомерными массивами, с. 21-23.

Литература

[править | править код]
  • А. П. Ершов. Альфа-язык // Энциклопедия кибернетики / В. М. Глушков. — Киев: Главная редакция УСЭ, 1974. — С. 112-113. — 608 с.
  • Аникеева И.Н., Буда А.О., Васючкова Т.С. Транслятор альфа-6 в системе Дубна. / А. П. Ершов. — М.: Наука. Главная редакция физико-математической литературы, 1979. — 354 с. — (Библиотечка программиста).
  • Становление Новосибирской школы программирования (мозаика воспоминаний) / Игорь Васильевич Поттосин. — Новосибирск: Российская академия наук. Сибирское отделение. Институт систем информатики им. А. П. Ершова, 2001. — 196 с.
  • Ирина Крайнева, Наталья Черемных. Альфа-язык и транслятор // Открытые системы. — 2014. — № 6.