Интерактивный АЛГОЛ 68
Интерактивный компилятор ALGOL 68 для ALGOL 68 был предоставлен Питером Крейвеном из Algol Applications в 1984 году. [1] Затем в 1994 году из OCCL (Oxford and Cambridge Compilers Ltd) до 2004 года. [2]
Платформы
[ редактировать ]- Инмос Транспьютер Семейство
- Linux для Intel x86 компьютеров
- OS/2 версии 2.0 и более поздних версий
- SunOS -4.1.3 ( Solaris 1) для SPARC компьютеров на базе
- Windows 95 и Windows NT для Intel
Расширения стандарта АЛГОЛ 68
[ редактировать ]- Возможность включения исходного кода и версий исходного кода.
- Вложенные комментарии
- Синтаксический элемент FORALL для цикла по массивам.
- ANYMODE — объединение всех режимов, известных компилятору, и, следовательно, динамическая типизация.
- Расширенные приведения (приведение типов), позволяющие применять более строгие, а затем «сильные» приведения.
- Структурирование автоматически переводит переменную из типа в структуру (тип).
- Соответствие приводит UNION (THING, MOODS) к THING, но если это не текущее настроение объединения, то будет сгенерирована ошибка времени выполнения.
- Интерфейс библиотеки к собственной операционной системе и другим библиотекам.
- Оператор РАЗМЕР
- Псевдооператоры ANDTH и OREL, а также ANF и ORF для короткого вычисления логических выражений.
- Массивы могут быть легко разделены на части для выбора подмножества элементов.
- MOID обрабатывается по-другому.
Пример кода
[ редактировать ]MODULE vectors BEGIN INT dim=3; MODE VECTOR = [dim]REAL; OP + = (VECTOR a, b) VECTOR: ( VECTOR out; FOR i FROM LWB a TO UPB a DO out:=a[i]+b[i] OD; out ), - = (VECTOR a, b) VECTOR: ( VECTOR out; FOR i FROM LWB a TO UPB a DO out:=a[i]-b[i] OD; out ), DOT = (VECTOR a, b) REAL: ( REAL out:=0; FOR i FROM LWB a TO UPB a DO out+:=a[i]*b[i] OD; out ); END KEEP VECTOR, +, -, DOT
Ограничения на язык из стандарта АЛГОЛ 68
[ редактировать ]- Переменная, режимы и операторы должны быть объявлены перед использованием.
- Анонимная процедура может использовать в качестве параметра средство объявления строк.
- Никаких временных подимен гибких массивов.
- Нет форматированного Transput (или форматированных текстов).
- Ограничено использование выпрямления нескольких значений во время передачи.
- Ограниченное использование BYTES, BITS и BOOL.
- ограниченное использование меток после операторов EXIT.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «AB52.3.1: Обзор жизнеспособных реализаций Алгола 68» . Архивировано из оригинала 27 сентября 2007 года . Проверено 26 апреля 2007 г.
- ^ «Домашняя страница Oxford and Cambridge Compilers Ltd» . Архивировано из оригинала 12 июня 2004 года . Проверено 26 апреля 2007 г.