Плюс (язык программирования) - Plus (programming language)
Парадигма | императивный , структурированный |
---|---|
Разработчик | Алан Баллард и Пол Уэйли в UBC |
Впервые появился | 1976 г. |
Печатная дисциплина | статический , сильный , безопасный |
Операционные системы | Терминальная система штата Мичиган (MTS), OS / VS1 |
Основные реализации | |
IBM System / 370 , DEC PDP-11 и Motorola 68000 | |
Под влиянием | |
ГУП, Паскаль |
Plus - это «похожий на Паскаль» язык реализации системы из Университета Британской Колумбии (UBC), Канада, основанный на системном языке SUE, разработанном в Университете Торонто , c. 1971 г.
Существует еще один язык программирования PLUS, разработанный в Sperry Univac в Розвилле, штат Миннесота, но Univac PLUS не является предметом этой статьи.
Описание
Plus был разработан в вычислительном центре Университета Британской Колумбии (UBC) Аланом Баллардом и Полом Уэйли для использования с и для разработки Michigan Terminal System (MTS), но код, сгенерированный компилятором, не зависит от операционной системы, и поэтому не ограничивается использованием или развитием MTS.
Компилятор UBC Plus написан в основном на языке Plus, работает под управлением Michigan Terminal System (MTS) на IBM S / 370 или совместимом оборудовании или под IBM OS / VS1 и генерирует код для IBM S / 370 , DEC PDP-11 , или архитектуры Motorola 68000 .
Plus в значительной степени основан на системном языке SUE, разработанном в Университете Торонто, c. 1971. Язык SUE был получен, в частности, в его средствах структуры данных из Паскаля .
Plus внешне сильно отличается от SUE или Pascal; однако семантика основного языка действительно очень похожа. Пользователи, знакомые с языком программирования C , также узнают большую часть его структуры и семантики в PLUS.
Цели компилятора и языка Plus включают:
- Разрешать и поощрять разумные структуры программ
- Обеспечьте проблемно-ориентированные структуры данных
- Разрешить и поощрять читаемый и понятный исходный код
- Возможность параметризации с использованием символьных констант
- Активно помогать в обнаружении и изоляции ошибок, если возможно, во время компиляции и, при необходимости, во время выполнения, если необходимо
- Сгенерируйте эффективный код
- Предоставлять средства, необходимые для системного программирования
- Обеспечивает достаточно эффективную компиляцию, включая раздельную компиляцию разных частей программы
- Необязательно создавать символьную информацию (SYM), позволяющую отлаживать программы с использованием системы символьной отладки, такой как SDS под MTS
Компилятор создает обширные списки источников, включая перекрестные ссылки. Кроме того, он автоматически форматирует источник, используя строгие правила, и имеет простой язык разметки для комментариев.
Доступно руководство UBC PLUS: The Plus Programming Language . Также доступно описание исходных библиотек и библиотек объектов, доступных для использования с Plus, PLUS Source Library Definitions .
Пример "Привет, мир"
Программа- пример " hello, world " выводит строку "Hello, world!" к терминалу или экранному дисплею.
%Title := "Hello world"; %Include(Pluslist); %Subtitle := "Definitions"; %Lower_Case := True; /* Definitions that everyone needs */ %Include(Boolean, Numeric_Types, More_Numeric_Types, String_Types, More_String_Types); /* A tasteful subset of procedure definitions */ %Include(Main); /* Message routine definitions */ %Include(Message_Initialize, Message, Message_Terminate); %Subtitle := "Local Procedure Definitions"; %Eject(); definition Main variable Mcb is pointer to Stream_Type; Mcb := Message_Initialize(); Message(Mcb, "Hello, world!"); Message_Terminate(Mcb); Mcb := Null; end Main;