XL (programmeringsspråk)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 4 november 2015; kontroller kräver 3 redigeringar .
XL
Språkklass multiparadigm : imperativ
Framträdde i 2000
Författare Christoph De Dinechin [d]
Släpp 0,1 (2010)
Testversion 2010-02-27
Typ system sträng
Blivit påverkad Ada , C++
Licens GPLv2
Hemsida xlr.sf.net
OS Unix-liknande operativsystem

XL  är grunden för det utvidgbara språket eXtensible Language. Det är ett programmeringsspråk utformat för att stödja konceptuell programmering .

Beskrivning

XL tillhandahåller programmatiskt utvidgbar syntax och semantik. Kompilatorplugins kan användas för att lägga till nya funktioner till ett språk. Den grundläggande uppsättningen av plugin-program implementeras enligt standardimperativspråk. Programmerare kan skriva sina egna plugins för att implementera specifika uppgifter, som att arbeta med andra nummersystem, som senare enkelt kan byggas in i språket.

Språk

XL definierar tre abstraktionsnivåer:

XL har varken primitiva typer eller reserverade ord. Alla operatorer och datatyper som används, såsom heltal eller additionsoperatorn, deklareras i standardbiblioteket (XL2). XL1 är portabel för att köras över olika miljöer och plattformar. Men i XL2 finns det ingen sådan garanti längre: om en viss processor inte stöder flyttalsmultiplikation, kan beskrivningen av motsvarande operator i standardbiblioteket hoppas över och användningen av en sådan multiplikation kan resultera i en kompileringstid fel.

Ett exempel på Hello World- program i XL ser ut så här:

använd XL.TEXT_IO Skriv "Hej världen"

En alternativ stavning i en stil som är mer lämpad för brett skalbara program skulle vara:

import IO = XL.TEXT_IO IO.WriteLn "Hello World"

Syntax

Syntaxen definieras på XL0-nivån. XL0-kompileringssteget kan konfigureras med hjälp av deskriptorfilsyntax, som definierar hur text presenteras och tilldelar operatörsprioritet. Bassyntaxfilen definierar vanliga matematiska notationer, såsom "+" för addition, som vanligtvis används i operationsordning.

Det strukturella trädet innehåller 7 typer av noder: 4 lövtypsnoder (heltal, reellt, text och symbol) och 3 interna typnoder (infix, prefix och block).

Med en standardsyntaxfil är följande en giltig XL0 oberoende av eventuell semantik.

A = B + "hej"

Efter bearbetning kommer det att se ut så här:

index("=", symbol("A"), index("+", symbol("B"), text("Hej")))

Länkar