BETA | |
---|---|
Språkklass | objektorienterad programmering |
Framträdde i | 1992 |
Författare | Kristen Nygor , Ole Lehrmann Madsen, Birger Møller-Pedersen och Bent Bruun Kristensen |
Utvecklaren | Nygaard, Kristen |
Typ system | strikt, statisk |
Stora implementeringar | Mjølner, Beta.Net, BETA.Java |
Dialekter | gbeta |
Blivit påverkad | Simula , Algol-68 |
Hemsida |
daimi.au.dk/~beta cs.au.dk/~beta |
BETA är ett rent objektorienterat språk från den "skandinaviska skolan" som startades av världens första objektorienterade språk, Simula . Det stöder också procedur- och funktionsprogrammeringsmetoder . BETA, liksom Simula , Eiffel och C++ , är ett starkt skrivet språk genom övervägande statisk typning (typkontroll vid kompilering). BETA-språket har ett antal unika funktioner.
Kristen Nygor (en av författarna till Simula) Ole Lehrmann Madsen, Birger Møller-Pedersen och Bent Bruun Kristensen startade 1975-1976. arbeta med ett nytt objektorienterat språk inom ramen för The Joint Language Project (gemensamt språkprojekt). Arbetet med det nya språket utfördes vid datavetenskapsavdelningen , Ahu University (DAIMI) . Precis som med Simula var detta projekt fokuserat på simulering . Enligt författarna till språket, [1] , var detta projekt ursprungligen planerat att slutföras inom ett eller två år. Utvecklingen baserades på en designad (men aldrig implementerad) domänspecifik förlängning av Simula-språket kallat Delta, det beslutades att kalla det nya språket Gamma.
I november 1976, på grund av bristande framsteg i projektet, beslutades det att dela upp det i 6 delprojekt, varav ett var betaspråket - det planerades som ett ganska lågnivå "implementeringsspråk" för gammaspråket. Dock i färd med att arbeta med språket 1978-1979. det beslutades att inte begränsas till implementeringsspråket, och det växte till ett fullfjädrat språk - Simulas arvtagare, avsett både för simuleringsmodellering och för att vara ett universellt allmänspråk. Samtidigt var det tänkt att det nya språket skulle vara märkbart effektivare i implementeringen än Simula. 1981 slutfördes BETA Programming Language Review [2] som fungerade som grund för den första implementeringen av språket, som slutfördes 1983. [3]
År 1988 grundade skaparna av BETA-språket företaget Mjølner Informatics Ltd., som släppte 1992 en kommersiell, plattformsoberoende RAD - programmeringsmiljö i BETA-språket Mjølner (distribueras för närvarande som gratisprogram ). Mjølners GUI -ramverk heter Lidskjalv och är byggt ovanpå Motif - widgetbiblioteket (kan även använda LessTif ). Ett intressant faktum är att James Gosling och Bill Joy var bland de första att förvärva en kommersiell licens för Mjølner-systemet . [ett]
Statiska variabler deklareras med hjälp av konstruktioner som:
jag: @heltal; r: @real;Dynamisk:
i: ^integerObjectTilldelning i BETA betecknas som värde -> variabel , flera tilldelningar är tillåtna.
2 -> i (* tilldela värde 2 till variabel i *) i -> j (* tilldela i till variabel j *) i*j -> k (* tilldela värdet i*j till variabeln k *) (i,j) -> (x,y) (* tilldela i till variabeln x och * värde j variabel y *)Kontrollkonstruktioner i termer av BETA-språket kallas imperativ . Det finns bara två av dem, if (kan ha flera sedan grenar , som fungerar som satser som switch eller select ... case ) och for (har många variationer). Deras syntax liknar något liknande konstruktioner i Algol 68 .
(om x // 17 då... // 33 då... // y+3 sedan... annan... om); (om (x>0) och (y<0) // Sant då... // Falskt då... om) (om sant // (x<0) och (y=0) sedan … // (x=0) och (y=0) sedan … // x>=0 sedan … om)BETA har kraftfulla abstraktionsmekanismer för att stödja objektidentifiering , klassificering och sammansättning . Klasser , procedurer , funktioner , koroutiner , processer , undantag - de är alla kombinerade till ett enda koncept av mallar . Besläktade med detta koncept är begreppen delmallar , virtuella mallar och mallvariabler . Klasser, underklasser och virtuella procedurer (metoder) finns i de flesta objektorienterade språk, och vissa språk inkluderar procedurvariabler. Men i BETA är nedärvning , "virtualisering" och definitionen av variabler för mallar av alla slag möjliga: klasser, procedurer, koroutiner, etc. Dessutom finns det generiska programmeringsmekanismer för BETA-språkmallar . BETA-språkobjekt, som Simula-objekt, är aktiva objekt , de, liksom koroutiner, tillåter kvasi-parallell exekvering.
Det är möjligt att deklarera objekt som inte tillhör någon mall (det vill säga att de är den enda instansen av sin klass, se singleton design pattern ).
Objekt och objektmallar kan definieras som en sammansättning av andra objekt och mallar. Det finns tre sätt för en sådan sammansättning: