БЕТА (язык программирования) - BETA (programming language)
Парадигма | Объектно-ориентированный |
---|---|
Разработано | Бент Бруун Кристенсен , Оле Лерманн Мадсен , Биргер Мёллер-Педерсен , Кристен Найгаард |
Веб-сайт | бета |
Под влиянием | |
Симула |
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]
использованная литература
внешние ссылки
- Официальный веб-сайт
- gbeta Обобщенная бета- версия