Paradigm | Объектно-ориентированный |
---|---|
Разработан | , Биргером Мёллер-Педерсен, Кристен Найгаард |
Веб-сайт | beta.cs.au.dk |
Под влиянием | |
Simula |
БЕТА - это чистый объектно-ориентированный язык, возникший в "Скандинавской школе" в объектно-ориентированном Страна, где был разработан первый объектно-ориентированный язык Simula. Среди его примечательных особенностей он представил вложенные классы и унифицированные классы с процедурами в так называемые шаблоны.
С технической точки зрения BETA предоставляет несколько уникальных функций. Классы и процедуры объединены в одну концепцию: a. Также классы определяются как свойства / атрибуты объектов. Это означает, что класс не может быть создан без явного контекста объекта. Следствием этого является то, что 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 #)
x, y и z - локальные переменные. Ключевое слово enter определяет параметры ввода для шаблона, а ключевое слово exit определяет результат функции. Между ними ключевое слово do ставит префикс последовательности операций, которые необходимо выполнить. Условный блок разделяется символом (if и if), то есть, если ключевое слово становится частью открывающей и закрывающей круглых скобок. Истинность проверяется с помощью // Истина внутри блока if. Наконец, оператор присваивания ->присваивает значение с левой стороны переменной с правой стороны.
Этот фрагмент печатает стандартную строку «Hello world!» :.
(# do 'Hello world!' ->PutLine #)