BETA

BETA
Jazyková třída objektově orientované programování
Objevil se v 1992
Autor Kristen Nygor , Ole Lehrmann Madsen, Birger Møller-Pedersen a Bent Bruun Kristensen
Vývojář Nygaard, Kristen
Typový systém přísný, statický
Hlavní implementace Mjølner, Beta.Net, BETA.Java
Dialekty gbeta
Byl ovlivněn Simula , Algol-68
webová stránka daimi.au.dk/~beta
cs.au.dk/~beta

BETA  je čistě objektově orientovaný jazyk „skandinávské školy“ zahájený prvním objektově orientovaným jazykem na světě, Simula . Podporuje také metodologii procedurálního a funkčního programování. BETA, stejně jako Simula , Eiffel a C++  , je silně typovaný jazyk převážně statickým psaním (kontrola typu v době kompilace). Jazyk BETA má řadu jedinečných funkcí.

Historie

Kristen Nygor (jedna z autorek Simuly) Ole Lehrmann Madsen, Birger Møller-Pedersen a Bent Bruun Kristensen začínali v letech 1975-1976. práce na novém objektově orientovaném jazyce v rámci projektu The Joint Language Project (společný jazykový projekt). Práce na novém jazyce probíhaly na katedře informatiky na Ahu University (DAIMI) .  Stejně jako u Simuly byl i tento projekt zaměřen na simulaci . Podle autorů jazyka, [1] , bylo původně plánováno, že tento projekt bude dokončen za rok nebo dva. Vývoj byl založen na navrženém (ale nikdy neimplementovaném) doménově specifickém rozšíření jazyka Simula s názvem Delta, bylo rozhodnuto nazvat nový jazyk Gamma.

V listopadu 1976 bylo kvůli nedostatečnému pokroku na projektu rozhodnuto o jeho rozdělení na 6 podprojektů, z nichž jedním byl jazyk Beta – byl plánován jako poměrně nízkoúrovňový „implementační jazyk“ pro jazyk Gamma. Nicméně v procesu práce na jazyku v letech 1978-1979. bylo rozhodnuto neomezovat se pouze na implementační jazyk a vyrostl v plnohodnotný jazyk – dědice Simuly, určený jak pro simulační modelování, tak i jako univerzální univerzální jazyk. Nový jazyk měl být zároveň v implementaci znatelně efektivnější než Simula. V roce 1981 byl dokončen BETA Programming Language Review [2] , který posloužil jako základ pro první implementaci jazyka, která byla dokončena v roce 1983. [3]

V roce 1988 tvůrci jazyka BETA založili společnost Mjølner Informatics Ltd., která v roce 1992 vydala komerční, multiplatformní RAD - programovací prostředí v BETA jazyce Mjølner (v současnosti distribuované jako freeware ). Mjølnerův GUI framework se nazývá Lidskjalv a je postaven nad knihovnou widgetů Motif (může také používat LessTif ). Zajímavostí je, že James Gosling a Bill Joy byli mezi prvními, kdo získali komerční licenci na systém Mjølner . [jeden]

Základy syntaxe

Statické proměnné jsou deklarovány pomocí konstrukcí jako:

i: @integer; r: @skutečný;

Dynamický:

i: ^integerObject

Přiřazení v BETA je označeno jako hodnota -> proměnná , vícenásobné přiřazení je povoleno.

2 -> i (* přiřadit hodnotu 2 proměnné i *) i -> j (* přiřadit i k proměnné j *) i*j -> k (* přiřadit hodnotu i*j proměnné k *) (i,j) -> (x,y) (* přiřadit i k proměnné x a * hodnota j proměnná y *)

Kontrolní konstrukce z hlediska jazyka BETA se nazývají imperativy . Existují pouze dva z nich, if (může mít několik větví potom , fungujících jako příkazy jako switch nebo select ... case ) a for (má mnoho variant). Jejich syntaxe se mírně podobá syntaxi podobných konstrukcí v Algolu 68 .

(pokud x // 17 tedy... // 33 tedy... // y+3 tedy... jiný... li); (pokud (x>0) a (y<0) // Tak to je pravda... // Falešné tedy... li) (pokud je to pravda // (x<0) a (y=0) pak … // (x=0) a (y=0) pak … // x>=0 pak… li)

Abstrakce mechanismy

BETA má výkonné abstrakční mechanismy pro podporu identifikace, klasifikace a kompozice objektů . Třídy , procedury , funkce , rutiny , procesy , výjimky  – všechny jsou sloučeny do jediného konceptu šablon . S tímto konceptem souvisí koncepty dílčích šablon , virtuálních šablon a proměnných šablon . Třídy, podtřídy a virtuální procedury (metody) se nacházejí ve většině objektově orientovaných jazyků a některé jazyky obsahují procedurální proměnné. Ale v BETA je možná dědičnost , „virtualizace“ a definice proměnných pro šablony jakéhokoli typu: třídy, procedury, korutiny atd. Kromě toho existují obecné programovací mechanismy pro šablony jazyka BETA . Objekty jazyka BETA, stejně jako objekty Simula, jsou aktivními objekty , stejně jako korutiny umožňují kvaziparalelní provádění.

Je možné deklarovat objekty, které nepatří do žádné šablony (tj. jsou jedinou instancí své třídy, viz vzor návrhu singleton ).

Objekty a šablony objektů lze definovat jako složení jiných objektů a šablon. Existují tři způsoby takového složení:

Příklad deklarace

zaměstnanec: (#name:@Text; narozeniny: @Datum; odd: ^Oddělení; totalHours: @ Integer; registrovat práci: (#noOfHours: @Integer zadejte noOfHours do noOfHours + totalhours -> totalHours #); ComputeSalary:< (#plat: @integer udělat vnitřní výstupní plat #); #); Dělník: Zaměstnanec (#seniority: @integer; ComputeSalary::< (#do noOfHours*80+seniority*4 -> plat; 0 -> totalHours #) #); Prodavač: Zaměstnanec (#noOfSoldUnits: @integer; ComputeSalary::< (#do noOfHours*80+noOfSoldUnits*6 -> plat; 0 -> noOfSoldUnits -> totalHours #) #) mary: @Worker předák: ^ Dělník mary[] -> předák[] &Worker[] -> The Foreman[] prezident: @ Employee(#ComputeSalary::< (#do BIG -> plat #) #)

Literatura

Poznámky

  1. 1 2 Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen. Kdy, proč a proč ne programovacího jazyka BETA  (odkaz není k dispozici) , HOPL III Archivováno 7. července 2011 na Wayback Machine
  2. Kristensen, BB, Madsen, OL, Møller-Pedersen, B. a Nygaard, K.: Průzkum programovacího jazyka BETA, Norské výpočetní centrum, Oslo, zpráva č. 698, 1981.
  3. Kristensen, BB, Madsen, OL, Møller-Pedersen, B. a Nygaard, K.: Abstrakce v programovacím jazyce BETA, desáté sympozium ACM o principech programovacích jazyků, Austin, Texas, 1983.
  4. Dvě kapitoly s přehledem jazyka BETA a systému Mjølner jsou dostupné online

Odkazy