Лучшие вопросы
Таймлайн
Чат
Перспективы
BETA
Из Википедии, свободной энциклопедии
Remove ads
BETA — чисто объектно-ориентированный язык «скандинавской школы», начатой первым в мире объектно-ориентированным языком Simula. Поддерживает также процедурный и функциональный методологии программирования. BETA, подобно Симуле, Эйфелю и C++ — это строго типизированный язык преимущественно статической типизацией (проверкой типов на стадии компиляции). Язык BETA имеет ряд уникальных особенностей.
Remove ads
История
Суммиров вкратце
Перспектива
Кристен Нюгор (один из авторов Симулы) Ole Lehrmann Madsen, Birger Møller-Pedersen и Bent Bruun Kristensen начали в 1975—1976 гг. работу над новым объектно-ориентированным языком в рамках The Joint Language Project (проекта сочленённого языка). Работа над новым языком велась на факультете информатики (англ. Computer Science Department), Орхуского университета (DAIMI). Как и в случае с Симулой этот проект был ориентирован на имитационное моделирование. По словам авторов языка,[1] изначально этот проект планировалось закончить за год-два. Фундаментом для разработки было спроектированное (но так и не реализованное) проблемно-ориентированное расширение языка Simula под названием Delta, новый язык было решено назвать Gamma.
В ноябре 1976, по причине отсутствия прогресса в работе на проектом, было решено разделить его на 6 подпроектов, одним из которых и стал язык Beta — он планировался как достаточно низкоуровневый «язык реализации» для языка Gamma. Однако, в процессе работы над языком в 1978—1979 гг. было решено не ограничиваться языком реализации, и он вырос в полноценный язык — наследник Симулы, предназначенный как для имитационного моделирования, так и являющийся универсальным языком общего назначения. При этом новый язык должен был стать заметно эффективней в реализации, чем Симула. В 1981 г. был готов «Обзор языка программирования BETA»[2], послуживший основой для первой реализации языка, которая была готова в 1983.[3]
В 1988 создатели языка BETA основали компанию Mjølner Informatics Ltd., которая выпустила в 1992 коммерческую, кроссплатформенную RAD-среду программирования на языке BETA Mjølner (в настоящее время распространяется как freeware). GUI фреймвок Mjølner называется Lidskjalv и построен поверх библиотеки виджетов Motif (может также использовать LessTif). Интересный факт, что одними из первых коммерческую лицензию на Mjølner system приобрели Джеймс Гослинг и Билл Джой.[1]
Remove ads
Основы синтаксиса
Для объявления статических переменных используются конструкции вроде:
i: @integer; r: @real;
Динамических:
i: ^integerObject
Присваивание в BETA обозначается как значение -> переменная, допустимы множественные присваивания.
2 -> i (* присвоить значение 2 переменой i *)
i -> j (* присвоить значение i переменой j *)
i*j -> k (* присвоить значение i*j переменой k *)
(i,j) -> (x,y) (* присвоить значение i переменой x и
* значение j переменой y
*)
Управляющие конструкции в терминах языка BETA называются императивами. Их там всего две, if (может имеет несколько ветвей then, выполняя роль операторов типа switch или select … case) и for (имеющий множество вариаций). Их синтаксис слегка напоминает синтаксис подобных конструкций в Algol 68.
(if x // 17 then … // 33 then … // y+3 then … else … if); (if (x>0) and (y<0) // True then … // False then … if)
(if true // (x<0) and (y=0) then … // (x=0) and (y=0) then … // x>=0 then … if)
Remove ads
Механизмы абстракции
Суммиров вкратце
Перспектива
В BETA имеются мощные механизмы абстракции для поддержки идентификации, классификации и композиции объектов. Классы, процедуры, функции, сопрограммы, процессы, исключения — все они объединены в единую концепцию шаблонов. С этой концепцией связаны понятия подшаблонов, виртуальных шаблонов и шаблонных переменных. Классы, подклассы и виртуальные процедуры (методы) имеются в большинстве объектно-ориентированных языков, некоторые языки включают процедурные переменные. Но в BETA возможно наследование, «виртуализация» и определение переменных для шаблонов любых типов: классов, процедур, сопрограмм и т. д. Кроме того для шаблонов языка BETA имеются механизмы обобщённого программирования. Объекты языка BETA, как и объекты Симулы — это активные объекты, они, подобно сопрограммам, позволяют квазипараллельное выполнение.
Имеется возможность объявлять объекты, не относящиеся к какому то шаблону (то есть являющимся единственным экземпляром своего класса, см. шаблон проектирования синглтон).
Объекты и шаблоны объектов могут быть определены как композиция других объектов и шаблонов. Имеются три способа такой композиции:
- Включение всего объекта в объект композицию.
- Включение в объект ссылки на другой объект.
- Объект или шаблон может включать вложенный, локальный шаблон (см. внутренний класс).
Пример объявления
Employee:
(# name: @ Text;
birthday: @ Date;
dept: ^ Department;
totalHours: @ Integer;
RegisterWork:
(# noOfHours: @ Integer
enter noOfHours
do noOfHours + totalhours -> totalHours
#);
ComputeSalary:<
(# salary: @ integer
do inner
exit salary
#);
#);
Worker: Employee
(# seniority: @ integer;
ComputeSalary::<
(#do noOfHours*80+seniority*4 -> salary; 0 -> totalHours #)
#);
Salesman: Employee
(# noOfSoldUnits: @ integer;
ComputeSalary::<
(#do noOfHours*80+noOfSoldUnits*6 -> salary;
0 -> noOfSoldUnits -> totalHours
#)
#)
mary: @ Worker
theForeman: ^ Worker mary[] -> theForeman[] &Worker[] -> theForeman[] president: @ Employee(#ComputeSalary::< (#do BIG -> salary #) #)
Remove ads
Литература
- Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. — Addison-Wesley, Reprinted by Mjølner Informatics with permission from Addison-Wesley, 1993. — 350 с. — ISBN 0-201-62430-3.
- J. Lindskov Knudsen, M. Lofgren, O. Lehrmann Madsen. B. Magnusson (Eds.). Object-Oriented Environments - The Mjølner Approach. — Prentice Hall, 1993. — 600 с. — ISBN 0-13-009291-6. (недоступная ссылка)[4]
- Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen. The When, Why and Why Not of the BETA Programming Language, HOPL III Архивная копия от 7 июля 2011 на Wayback Machine
- BETA Language Introduction Архивная копия от 23 января 2011 на Wayback Machine
Remove ads
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads