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í.
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]
Statické proměnné jsou deklarovány pomocí konstrukcí jako:
i: @integer; r: @skutečný;Dynamický:
i: ^integerObjectPř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)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í: