BETA

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.

Historik

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]

Grundläggande syntax

Statiska variabler deklareras med hjälp av konstruktioner som:

jag: @heltal; r: @real;

Dynamisk:

i: ^integerObject

Tilldelning 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)

Abstraktionsmekanismer

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:

Deklarationsexempel

anställd: (#namn:@Text; födelsedagsdatum; avd: ^Avdelning; totalHours: @ Heltal; registrera arbete: (#noOfHours: @Integer ange noOfHours gör noOfHours + totalhours -> totalHours #); Beräkna lön:< (#lön: @heltal göra inre utgångslön #); #); Arbetare: Anställd (#senioritet: @heltal; Beräkna Lön::< (#do noOfHours*80+Senioritet*4 -> lön; 0 -> TotalHours #) #); Säljare: Anställd (#noOfSoldUnits: @heltal; Beräkna Lön::< (#do noOfHours*80+noOfSoldUnits*6 -> lön; 0 -> noOfSoldUnits -> totalt timmar #) #) mary: @Arbetare förmannen: ^ Arbetare mary[] -> theForeman[] &Arbetare[] -> förmannen[] president: @ Anställd(#ComputeSalary::< (#do BIG -> lön #) #)

Litteratur

Anteckningar

  1. 1 2 Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen. När, varför och varför inte för programmeringsspråket BETA  (länk ej tillgänglig) , HOPL III Arkiverad 7 juli 2011 på Wayback Machine
  2. Kristensen, BB, Madsen, OL, Møller-Pedersen, B. och Nygaard, K .: En undersökning av BETA-programmeringsspråket, Norwegian Computing Center, Oslo, rapport nr 698, 1981.
  3. Kristensen, BB, Madsen, OL, Møller-Pedersen, B., och Nygaard, K .: Abstraktionsmekanismer i BETA-programmeringsspråket, tionde ACM-symposium om principer för programmeringsspråk, Austin, Texas, 1983.
  4. Två kapitel med en översikt över BETA-språket och Mjølner-systemet finns tillgängliga online

Länkar