BETA | |
---|---|
Sprog klasse | objektorienteret programmering |
Dukkede op i | 1992 |
Forfatter | Kristen Nygor , Ole Lehrmann Madsen, Birger Møller-Pedersen og Bent Bruun Kristensen |
Udvikler | Nygaard, Kristen |
Type system | streng, statisk |
Større implementeringer | Mjølner, Beta.Net, BETA.Java |
Dialekter | gbeta |
Blev påvirket | Simula , Algol-68 |
Internet side |
daimi.au.dk/~beta cs.au.dk/~beta |
BETA er et rent objektorienteret sprog fra den "skandinaviske skole" startet af verdens første objektorienterede sprog, Simula . Det understøtter også proceduremæssige og funktionelle programmeringsmetoder. BETA er ligesom Simula , Eiffel og C++ et stærkt maskinskrevet sprog ved overvejende statisk indtastning (typekontrol ved kompilering). BETA-sproget har en række unikke funktioner.
Kristen Nygor (en af forfatterne til Simula) Ole Lehrmann Madsen, Birger Møller-Pedersen og Bent Bruun Kristensen startede i 1975-1976. arbejde med et nyt objektorienteret sprog inden for rammerne af The Joint Language Project (fælles sprogprojekt). Arbejdet med det nye sprog blev udført på Computer Science Department , Ahu University (DAIMI) . Som med Simula var dette projekt fokuseret på simulering . Ifølge forfatterne af sproget, [1] var dette projekt oprindeligt planlagt til at være afsluttet om et år eller to. Udviklingen var baseret på en designet (men aldrig implementeret) domænespecifik udvidelse af Simula-sproget kaldet Delta, det blev besluttet at kalde det nye sprog Gamma.
I november 1976 blev det på grund af manglende fremskridt på projektet besluttet at opdele det i 6 delprojekter, hvoraf det ene var Beta-sproget - det var planlagt som et ret lavt niveau "implementeringssprog" for Gamma-sproget. Dog i gang med at arbejde med sproget i 1978-1979. det blev besluttet ikke at være begrænset til implementeringssproget, og det voksede til et fuldgyldigt sprog - Simulas arving, beregnet både til simuleringsmodellering og til at være et universelt sprog til almene formål. Samtidig skulle det nye sprog være mærkbart mere effektivt i implementeringen end Simula. I 1981 blev BETA Programming Language Review [2] afsluttet, som fungerede som grundlag for den første implementering af sproget, som blev afsluttet i 1983. [3]
I 1988 grundlagde skaberne af BETA-sproget virksomheden Mjølner Informatics Ltd., som i 1992 udgav et kommercielt, cross-platform RAD - programmeringsmiljø i BETA-sproget Mjølner (i øjeblikket distribueret som freeware ). Mjølners GUI framework hedder Lidskjalv og er bygget oven på Motif widget biblioteket (kan også bruge LessTif ). Et interessant faktum er, at James Gosling og Bill Joy var blandt de første til at erhverve en kommerciel licens til Mjølner-systemet . [en]
Statiske variable erklæres ved hjælp af konstruktioner som:
i: @heltal; r: @rigtig;Dynamisk:
i: ^integerObjectTildeling i BETA betegnes som værdi -> variabel , flere tildelinger er tilladt.
2 -> i (* tildel værdi 2 til variabel i *) i -> j (* tildele i til variabel j *) i*j -> k (* tildel værdi i*j til variabel k *) (i,j) -> (x,y) (* tildele i til variabel x og * værdi j variabel y *)Kontrolkonstruktioner i form af BETA-sproget kaldes imperativer . Der er kun to af dem, if (kan have flere derefter grene , der fungerer som udsagn som switch eller select ... case ) og for (har mange variationer). Deres syntaks ligner lidt den for lignende konstruktioner i Algol 68 .
(hvis x // 17 så... // 33 så... // y+3 så... andet... hvis); (hvis (x>0) og (y<0) // Så sandt... // Falsk da... hvis) (hvis sandt // (x<0) og (y=0) så … // (x=0) og (y=0) så … // x>=0 så … hvis)BETA har kraftfulde abstraktionsmekanismer til at understøtte objektidentifikation , klassificering og sammensætning . Klasser , procedurer , funktioner , coroutiner , processer , undtagelser - de er alle kombineret i et enkelt koncept af skabeloner . Relateret til dette koncept er begreberne underskabeloner , virtuelle skabeloner og skabelonvariabler . Klasser, underklasser og virtuelle procedurer (metoder) findes i de fleste objektorienterede sprog, og nogle sprog inkluderer proceduremæssige variabler. Men i BETA er nedarvning , "virtualisering" og definitionen af variabler for skabeloner af enhver type mulig: klasser, procedurer, koroutiner osv. Derudover er der generiske programmeringsmekanismer for BETA sprogskabeloner . BETA-sprogobjekter, ligesom Simula-objekter, er aktive objekter , de tillader, ligesom koroutiner, kvasi-parallel udførelse.
Det er muligt at erklære objekter, der ikke tilhører nogen skabelon (det vil sige, at de er den eneste forekomst af deres klasse, se singleton - designmønsteret ).
Objekter og objektskabeloner kan defineres som en sammensætning af andre objekter og skabeloner. Der er tre måder til en sådan sammensætning: