BETA

BETA
BETA
Класс языка:

объектно-ориентированное программирование

Появился в:

1992

Автор(ы):

Кристен Нюгорд, Ole Lehrmann Madsen, Birger Møller-Pedersen и Bent Bruun Kristensen

Типизация данных:

строгая, статическая

Основные реализации:

Mjølner, Beta.Net, BETA.Java

Диалекты:

gbeta

Испытал влияние:

Simula, Algol-68


BETA — это чисто объектно-ориентированный язык «скандинавской школы», начатой первым в мире объектно-ориентированным языком Simula. Поддерживает также процедурного и функционального программирование. BETA, подобно Симуле, Эйфелю и C++ — это строго типизированный язык преимущественно статической типизацией (проверкой типов на стадии компиляции). Язык BETA имеет ряд уникальных особенностей.

Содержание

История

Кристен Нюгорд (один из авторов Симулы) Ole Lehrmann Madsen, Birger Møller-Pedersen и Bent Bruun Kristensen начали в 1975-1976 гг. работу над новым объектно-ориентированным языком в рамках The Joint Language Project (проект сочленённого языка). Работа над новым языком велась на факультете информатики (англ. Computer Science Department), Ахуского университета (DAIMI). Как и в случае с Simula этот проект был ориентирован на имитационное моделирование. По словам авторов языка,[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]

Основы синтаксиса

Для объявления статических переменных исп. конструкция вроде:

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 или selectcase) и 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)

Механизмы абстракции

В 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 #) #)

Литература

Примечания

  1. 1 2 Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen. The When, Why and Why Not of the BETA Programming Language, HOPL III
  2. Kristensen, B. B., Madsen, O. L., Mшller-Pedersen, B., and Nygaard, K.: A Survey of the BETA Programming Language, Norwegian Computing Center, Oslo, Report No 698, 1981.
  3. Kristensen, B. B., Madsen, O. L., Møller-Pedersen, B., and Nygaard, K.: Abstraction Mechanisms in the BETA Programming Language, Tenth ACM Symposium on Principles of Programming Languages, Austin, Texas, 1983.
  4. В сети доступны две главы с обзором языка BETA и ситемы Mjølner

Внешние ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "BETA" в других словарях:

  • bêta — bêta …   Dictionnaire des rimes

  • Beta — may refer to: *Beta (β), the second letter of the Greek alphabetIn finance: * Beta coefficient in Capital Asset Pricing ModelIn mathematics: * Beta function in mathematics * Beta distribution in statistics * False negative rate in statistics *… …   Wikipedia

  • Beta —  Pour l’article homophone, voir Bêta. Pour les articles homonymes, voir Beta (homonymie) …   Wikipédia en Français

  • Béta — Bêta  Pour l’article homophone, voir Beta. Pour les articles homonymes, voir Bêta (homonymie). Bêta …   Wikipédia en Français

  • BETA — ist eine reine objektorientierte Programmiersprache, welche wie Simula auch in Skandinavien entwickelt wurde. Technisch gesehen bietet BETA einige besondere Eigenschaften, so werden Klassen und Prozeduren als ein gemeinsames Konzept, den Pattern …   Deutsch Wikipedia

  • beta — s.m. 1. A doua literă a alfabetului grecesc, corespunzând sunetului b. 2. (fiz.; în sintagmele) Particulă beta = electron negativ sau pozitiv emis de unele substanţe radioactive. Radiaţie beta = radiaţie constituită din particule beta. – Din fr.… …   Dicționar Român

  • BETA — is a pure object oriented language originating within the Scandinavian School in object orientation where the first object oriented language Simula was developed. From a technical perspective, BETA provides several unique features. Classes and… …   Wikipedia

  • beta — |ê| s. f. 1. Mancha comprida ou faixa de cor diferente nas penas ou pelo do animal. = LISTA, LISTRA 2. Qualquer mancha comprida. 3. Mancha na pele. 4. Filão, veio. 5.  [Marinha] Corda ou cabo. 6.  [Marinha] Talha na extremidade dos guardins. 7. … …   Dicionário da Língua Portuguesa

  • Beta — Be ta, n. [Gr. bh^ta.] The second letter of the Greek alphabet, B, [beta]. See {B}, and cf. etymology of {Alphabet}. Note: Beta (B, [beta]) is used variously for classifying, as: (a) (Astron.) To designate some bright star, usually the second… …   The Collaborative International Dictionary of English

  • bêta- — ❖ ♦ Élément (écrit aussi β ) utilisé en chimie organique pour caractériser le deuxième d une série d isomères, indiquer la présence dans un composé d un atome de carbone séparant deux fonctions, préciser la structure stéréochimique des sucres,… …   Encyclopédie Universelle


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»