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

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

BETA - это чистый объектно-ориентированный язык, возникший в «Скандинавской школе» объектно-ориентированной архитектуры, где был разработан первый объектно-ориентированный язык Simula . Среди его примечательных особенностей - вложенные классы и унифицированные классы с процедурами в так называемые шаблоны.

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

Функции

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

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

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

Узоры

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

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

class point {
    int x, y;
};

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

point: (#
    x, y: @integer
#)

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

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

int max(int x, int y)
{
    if (x >= y)
    {
        return x;
    }
    else
    {
        return y;
    }
}

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

max: (#
    x, y, z: @integer
enter (x, y)
do
    (if x >= y // True then
        x -> z
    else
        y -> z
    if)
exit z
#)

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

Привет, мир!

Этот фрагмент печатает стандартную строку «Hello world!» :

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

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

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

использованная литература

внешние ссылки