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