Euler — язык программирования, созданный Никлаусом Виртом и Хельмутом Вебером, задуманный как расширение и обобщение ALGOL 60. [1] [2] [3] Целью разработчиков было создание языка, который:
Имеющиеся источники указывают на то, что Эйлер уже функционировал к 1965 году.
Эйлер использует общую концепцию типа данных . В Эйлере массивы , процедуры и переключатели не являются величинами, которые объявляются и именуются идентификаторами: в отличие от ALGOL , они не являются величинами на том же уровне, что и переменные . Скорее, эти величины находятся на уровне числовых и булевых констант . Таким образом, помимо традиционных числовых и логических констант, Эйлер вводит несколько дополнительных типов:
Все константы могут быть назначены переменным, которые имеют ту же форму, что и в ALGOL, но для которых не указаны фиксированные типы: Эйлер использует динамическую типизацию . Кроме того, процедура может производить значение любого типа при выполнении, и этот тип может меняться от одного вызова процедуры к другому .
Аналогично, элементы списка могут иметь значения любого типа, и они могут различаться от элемента к элементу в списке. Таким образом, когда элементы списка являются метками, получается переключатель. Если элементы являются процедурами, получается список процедур, который недоступен в ALGOL 60. Если элементы сами являются списками, получается общая древовидная структура.
Эйлер предоставляет общие операторы проверки типов и преобразования типов.