BETA (programmeringssprog) - BETA (programming language)
| Paradigme | Objektorienteret |
|---|---|
| Designet af | Bent Bruun Kristensen , Ole Lehrmann Madsen , Birger Møller-Pedersen , Kristen Nygaard |
| Internet side | beta |
| Påvirket af | |
| Simula | |
BETA er et rent objektorienteret sprog med oprindelse i "Scandinavian School" i objektorientering, hvor det første objektorienterede sprog Simula blev udviklet. Blandt sine bemærkelsesværdige træk introducerede den indlejrede klasser og forenede klasser med procedurer i såkaldte mønstre.
Projektet er inaktivt fra oktober 2020.
Funktioner
Teknisk oversigt
Fra et teknisk perspektiv giver BETA flere unikke funktioner. Klasser og procedurer er forenet til ét koncept, et mønster . Klasser er også defineret som egenskaber/attributter for objekter. Det betyder, at en klasse ikke kan instantieres uden en eksplicit objektkontekst. En konsekvens af dette er, at BETA understøtter indlejrede klasser . Klasser kan praktisk talt defineres, ligesom virtuelle metoder kan være i de fleste objektorienterede programmeringssprog. Virtuelle enheder (f.eks. Metoder og klasser) overskrives aldrig; i stedet er de omdefineret eller specialiseret.
BETA understøtter det objektorienterede perspektiv på programmering og har omfattende faciliteter til proceduremæssig og funktionel programmering. Det har kraftfulde abstraktionsmekanismer til at understøtte identifikation af objekter, klassificering og sammensætning. BETA er et statisk skrevet sprog som Simula, Eiffel og C ++ , hvor de fleste typekontroller udføres på kompileringstidspunktet. BETA sigter mod at opnå en optimal balance mellem kompileringstidstypekontrol og driftstidstypekontrol.
Mønstre
Et vigtigt og ejendommeligt træk ved sproget er mønsterbegrebet. I et andet programmeringssprog, såsom C ++ , ville man have flere klasser og procedurer. BETA udtrykker begge disse begreber ved hjælp af mønstre.
For eksempel ville en simpel klasse i C ++ have formen
class point {
int x, y;
};
I BETA kunne den samme klasse repræsenteres af mønsteret
point: (#
x, y: @integer
#)
Det vil sige, at en klasse kaldet punkt vil have to felter, x og y , af typen heltal . Symbolerne ( # og #) introducerer mønstre. Tykktarmen bruges til at deklarere mønstre og variabler. Den @ tegn før heltalstypen i feltdefinitioner angiver, at disse er heltalsfelter og ikke, derimod, referencer, arrays eller andre mønstre.
Som en anden sammenligning kan en procedure i C ++ have formen
int max(int x, int y)
{
if (x >= y)
{
return x;
}
else
{
return y;
}
}
I BETA kunne en sådan funktion skrives ved hjælp af et mønster
max: (#
x, y, z: @integer
enter (x, y)
do
(if x >= y // True then
x -> z
else
y -> z
if)
exit z
#)
Den x , y og z er lokale variable. Den indtaste søgeord Angiver de inputparametre til mønsteret, mens exit nøgleordet angiver resultatet af funktionen. Mellem de to præfikserer søgeordet do den rækkefølge, der skal foretages. Den betingede blok er afgrænset af (hvis og hvis) , det er hvis søgeordet bliver en del af åbningen og lukningen i parentes. Sandheden kontrolleres igennem // Sand inden for en if -blok. Endelig tildeler tildelingsoperatøren -> værdien i venstre side til variablen i højre side.
Hej Verden!
Dette udsnit udskriver standardlinjen "Hej verden!" :
(# do ’Hello world!’->PutLine #)
Yderligere læsning
- Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard: Objektorienteret programmering i BETA-programmeringssprog, [2]
- Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen: BETA-programmeringssprogets hvornår, hvorfor og hvorfor ikke, ACM History of Programming Languages III, Conference, San Diego 2007, [3]
Referencer
eksterne links
- Officiel hjemmeside
- gbeta Generaliseret BETA