БЕТА (язык программирования) - BETA (programming language)

БЕТА
ПарадигмаОбъектно-ориентированный
РазработаноБент Бруун Кристенсен, Оле Лерманн Мадсен, Биргер Мёллер-Педерсен, Кристен Найгаард
Интернет сайтбета.cs.au.dk
Под влиянием
Симула

БЕТА чистый объектно-ориентированный язык, происходящий в «Скандинавская школа» в объектной ориентации, где первый объектно-ориентированный язык Симула был развит.[1] Среди его примечательных особенностей он представил вложенные классы, и унифицированные классы с процедурами в так называемые шаблоны.

По состоянию на октябрь 2020 года проект неактивен.[2]

Функции

Технический обзор

С технической точки зрения BETA предоставляет несколько уникальных функций. Классы и процедуры объединены в одну концепцию, Шаблон. Также классы определяются как свойства / атрибуты объектов. Это означает, что класс не может быть создан без явного контекста объекта. Следствием этого является то, что BETA поддерживает вложенные классы. Классы можно определять виртуально, как виртуальные методы в большинстве объектно-ориентированных языков программирования. Виртуальные сущности (такие как методы и классы) никогда не перезаписываются; вместо этого они переопределяются или специализируются.

BETA поддерживает объектно-ориентированный подход к программированию и имеет обширные возможности для процедурного и функционального программирования. Он имеет мощные механизмы абстракции для поддержки идентификации объектов, классификации и композиции. BETA - это язык со статической типизацией, такой как Simula, Эйфель и C ++, при этом большая часть проверки типов выполняется во время компиляции.[1] BETA стремится достичь оптимального баланса между проверкой типов во время компиляции и проверкой типов во время выполнения.

Узоры

Важной и своеобразной особенностью языка является концепция паттернов. На другом языке программирования, например C ++, можно было бы иметь несколько классов и процедур. BETA выражает обе эти концепции с помощью шаблонов.

Например, простой класс в C ++ будет иметь вид

учебный класс точка {    int Икс, у;};

В бета-версии один и тот же класс может быть представлен шаблоном

точка: (#    Икс, у: @целое число#)

То есть класс с именем точка будет два поля, Икс и у, типа целое число. Символы (# и #) ввести шаблоны. Двоеточие используется для объявления шаблонов и переменных. В @ Знак перед целочисленным типом в определениях полей указывает, что это целочисленные поля, а не, напротив, ссылки, массивы или другие шаблоны.

В качестве другого сравнения, процедура в C ++ могла бы иметь вид

int Максимум(int Икс, int у){    если (Икс >= у)    {        возвращаться Икс;    }    еще    {        возвращаться у;    }}

В бета-версии такую ​​функцию можно было бы написать с использованием шаблона

Максимум: (#    Икс, у, z: @целое числовойти (Икс, у)делать    (если Икс >= у // Тогда верно        Икс -> z    еще        у -> z    если)выход z#)

В Икс, у и z являются локальными переменными. В войти ключевое слово определяет входные параметры для шаблона, а выход ключевое слово определяет результат функции. Между этими двумя делать ключевое слово префикс последовательности операций, которые должны быть выполнены. Условный блок ограничен (если и если), это если ключевое слово становится частью открывающей и закрывающей скобок. Правда проверена // Истинный внутри блока if. Наконец, оператор присваивания -> присваивает значение с левой стороны переменной с правой стороны.

Привет, мир!

Этот фрагмент печатает стандартную строку "Привет, мир!":

(#do ’Hello world!’ -> PutLine #)

дальнейшее чтение

  • Оле Лерманн Мадсен, Биргер Мёллер-Педерсен, Кристен Найгаард: объектно-ориентированное программирование на языке программирования BETA, [2]
  • Бент Бруун Кристенсен, Оле Лерманн Мадсен, Биргер Мёллер-Педерсен: Когда, почему и почему не о языке программирования БЕТА, История языков программирования ACM III, Конференция, Сан-Диего 2007, [3]

Рекомендации

  1. ^ а б Источник: [1] Оле Лерманн Мадсен: Обзор BETA
  2. ^ https://beta.cs.au.dk/

внешняя ссылка