XL | |
---|---|
Jazyková třída | multi-paradigma : imperativ |
Objevil se v | 2000 |
Autor | Christoph De Dinechin [d] |
Uvolnění | 0,1 (2010) |
Testovací verze | 27. 2. 2010 |
Typový systém | přísný |
Byl ovlivněn | Ada , C++ |
Licence | GPLv2 |
webová stránka | xlr.sf.net |
OS | Operační systém podobný Unixu |
XL je základem rozšiřitelného jazyka eXtensible Language. Je to programovací jazyk navržený pro podporu koncepčního programování .
XL poskytuje programově rozšiřitelnou syntaxi a sémantiku. K přidání nových funkcí do jazyka lze použít pluginy kompilátoru. Základní sada zásuvných modulů je implementována podle standardních imperativních jazyků. Programátoři mohou napsat své vlastní pluginy pro implementaci specifických úkolů, jako je práce s jinými číselnými systémy, které lze později jednoduše zabudovat do jazyka.
XL definuje tři úrovně abstrakce:
XL nemá ani primitivní typy , ani vyhrazená slova. Všechny použité operátory a datové typy, jako jsou celá čísla nebo operátor sčítání, jsou deklarovány ve standardní knihovně (XL2). XL1 je přenosný pro běh v různých prostředích a platformách. Ale v XL2 již taková záruka neexistuje: pokud konkrétní procesor nepodporuje násobení s plovoucí desetinnou čárkou, pak může být popis odpovídajícího operátoru ve standardní knihovně přeskočen a použití takového násobení může mít za následek dobu kompilace chyba.
Příklad programu Hello World v XL vypadá takto:
použijte XL.TEXT_IO Napište "Ahoj světe"Alternativní pravopis ve stylu vhodnějším pro široce škálovatelné programy by byl:
import IO = XL.TEXT_IO IO.WriteLn "Ahoj světe"Syntaxe je definována na úrovni XL0. Krok kompilace XL0 lze nakonfigurovat pomocí syntaxe souboru deskriptoru, která definuje způsob prezentace textu a přiřazuje prioritu operátoru. Soubor základní syntaxe definuje běžné matematické zápisy, jako je „+“ pro sčítání, které se obvykle používají v pořadí operací.
Strukturální strom obsahuje 7 typů uzlů: 4 uzly typu list (celé, reálné, text a symbol) a 3 uzly interního typu (infix, prefix a blok).
U standardního souboru syntaxe je následující platný XL0 nezávislý na jakékoli sémantice.
A = B + "ahoj"Po zpracování to bude vypadat takto:
index("=", symbol ("A"), index("+", symbol ("B"), text ("Ahoj")))