БЕТА (язык программирования)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | Объектно-ориентированный |
---|---|
Разработано | Бент Бруун Кристенсен , Оле Лерманн Мэдсен , Биргер Мёллер-Педерсен , Кристен Нюгаард |
Веб-сайт | бета |
Под влиянием | |
начало |
БЕТА — это чистый объектно-ориентированный язык, возникший в рамках «Скандинавской школы» объектной ориентации, где был разработан первый объектно-ориентированный язык Simula . [ 1 ] Среди его примечательных особенностей — введение вложенных классов и объединение классов с процедурами в так называемые шаблоны.
По состоянию на октябрь 2020 года проект неактивен. [ 2 ]
Функции
[ редактировать ]Технический обзор
[ редактировать ]С технической точки зрения БЕТА предоставляет несколько уникальных функций. Классы и процедуры объединены одной концепцией — шаблоном . Кроме того, классы определяются как свойства/атрибуты объектов. Это означает, что класс не может быть создан без явного контекста объекта. Следствием этого является то, что БЕТА поддерживает вложенные классы . Классы могут быть определены виртуально, так же, как виртуальные методы могут быть определены в большинстве объектно-ориентированных языков программирования. Виртуальные объекты (такие как методы и классы) никогда не перезаписываются; вместо этого они переопределены или специализированы.
БЕТА поддерживает объектно-ориентированный подход к программированию и имеет комплексные возможности для процедурного и функционального программирования. Он имеет мощные механизмы абстракции для поддержки идентификации объектов, классификации и композиции. БЕТА — это статически типизированный язык, такой как Simula, Eiffel и C++ , в котором большая часть проверки типов выполняется во время компиляции. [ 1 ] БЕТА направлена на достижение оптимального баланса между проверкой типов во время компиляции и проверкой типов во время выполнения.
Узоры
[ редактировать ]Основной и своеобразной особенностью языка является концепция шаблонов. В другом языке программирования, например C++ , можно было бы иметь несколько классов и процедур. БЕТА выражает обе эти концепции с помощью шаблонов.
Например, простой класс в 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
#)
x y , z и . являются локальными переменными Ключевое слово Enter определяет входные параметры шаблона, а ключевое слово выхода указывает результат функции. Между ними ключевое слово do указывает на последовательность выполняемых операций. Условный блок разделяется символами (if и if) , то есть ключевое слово if становится частью открывающей и закрывающей скобки. Истина проверяется // True внутри блока if. Наконец, оператор присваивания -> присваивает значение в левой части переменной в правой части.
Привет, мир!
[ редактировать ]Этот фрагмент выводит стандартную строку «Hello world!» :
(# do ’Hello world!’->PutLine #)
Дальнейшее чтение
[ редактировать ]- Оле Лерманн Мэдсен, Биргер Мёллер-Педерсен, Кристен Нюгаард: Объектно-ориентированное программирование на языке программирования БЕТА, Система Мьёльнера: Книги
- Бент Бруун Кристенсен, Оле Лерманн Мэдсен, Биргер Мёллер-Педерсен: Когда, почему и почему не использовать язык программирования БЕТА, История языков программирования ACM III, Конференция, Сан-Диего, 2007 г., [2]
Ссылки
[ редактировать ]- ^ Jump up to: а б Источник: [1] Оле Лерманн Мэдсен: Обзор БЕТА.
- ^ «Домашняя страница языка БЕТА» . beta.cs.au.dk.
Внешние ссылки
[ редактировать ]- Официальный сайт
- gbeta Обобщенная БЕТА