Эта статья поднимает множество проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалить эти сообщения-шаблоны ) ( Узнайте, как и когда удалить этот шаблон сообщения )
|
Парадигма | Объектно-ориентированный |
---|---|
Разработано | Бент Бруун Кристенсен , Оле Лерманн Мадсен , Биргер Мёллер-Педерсен , Кристен Найгаард |
Интернет сайт | бета |
Под влиянием | |
Симула |
BETA - это чистый объектно-ориентированный язык, зародившийся в «Скандинавской школе» объектной ориентации, где был разработан первый объектно-ориентированный язык Simula . [1] Среди его примечательных особенностей были введены вложенные классы и унифицированные классы с процедурами в так называемые шаблоны.
По состоянию на октябрь 2020 года проект неактивен. [2]
Особенности [ править ]
Технический обзор [ править ]
С технической точки зрения BETA предоставляет несколько уникальных функций. Классы и процедуры объединены в одно понятие - шаблон . Также классы определяются как свойства / атрибуты объектов. Это означает, что класс не может быть создан без явного контекста объекта. Следствием этого является то, что BETA поддерживает вложенные классы . Классы можно определять виртуально, как виртуальные методы в большинстве объектно-ориентированных языков программирования. Виртуальные сущности (такие как методы и классы) никогда не перезаписываются; вместо этого они переопределяются или специализируются.
BETA поддерживает объектно-ориентированный подход к программированию и имеет обширные возможности для процедурного и функционального программирования. Он имеет мощные механизмы абстракции для поддержки идентификации объектов, классификации и композиции. BETA - это язык со статической типизацией, такой как Simula, Eiffel и C ++ , при этом большая часть проверки типов выполняется во время компиляции. [1] БЕТА нацелена на достижение оптимального баланса между проверкой типов во время компиляции и проверкой типов во время выполнения.
Выкройки [ править ]
Важнейшей и своеобразной особенностью языка является концепция паттернов. В другом языке программирования, таком как C ++ , можно было бы иметь несколько классов и процедур. BETA выражает обе эти концепции с помощью шаблонов.
Например, простой класс в C ++ будет иметь вид
классная точка { int x , y ; };
В БЕТА-версии один и тот же класс может быть представлен шаблоном
точка : ( # x , y : @ целое число # )
То есть класс с именем point будет иметь два поля, x и y , целочисленного типа . Символы (# и #) обозначают шаблоны. Двоеточие используется для объявления шаблонов и переменных. Знак @ перед целочисленным типом в определениях полей указывает, что это целочисленные поля, а не, напротив, ссылки, массивы или другие шаблоны.
В качестве другого сравнения, процедура в C ++ могла бы иметь вид
int max ( int x , int y ) { если ( x > = y ) { вернуть x ; } else { return y ; } }
В бета-версии такую функцию можно было бы написать с использованием шаблона
max : ( # x , y , z : @ integer enter ( x , y ) do ( if x > = y // True, то x -> z else y -> z if ) exit z # )
Х , у и г являются локальными переменными. Ввести ключевое слово указывает входные параметры в шаблоне, в то время как выход ключевого слова указывает результат функции. Между ними ключевое слово do ставит префикс последовательности операций, которые необходимо выполнить. Условный блок разделяется (если и если) , то есть ключевое слово if становится частью открывающей и закрывающей круглых скобок. Истина проверяется // Истина внутри блока if. Наконец, оператор присваивания -> присваивает значение с левой стороны переменной с правой стороны.
Привет мир! [ редактировать ]
Этот фрагмент печатает стандартную строку «Hello world!» :
(#сделать 'Hello world!' -> PutLine#)
Дальнейшее чтение [ править ]
- Оле Лерманн Мадсен, Биргер Мёллер-Педерсен, Кристен Найгаард: объектно-ориентированное программирование на языке программирования BETA, [2]
- Бент Бруун Кристенсен, Оле Лерманн Мадсен, Биргер Мёллер-Педерсен: Когда, почему и почему не о языке программирования BETA, История языков программирования ACM III, Конференция, Сан-Диего 2007, [3]
Ссылки [ править ]
- ^ a b Источник: [1] Оле Лерманн Мадсен: Обзор BETA
- ^ https://beta.cs.au.dk/
Внешние ссылки [ править ]
- Официальный веб-сайт
- gbeta Обобщенная бета- версия