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