Programovací jazyk FPL
FPL je vlastní programovací jazyk a kompiler inspirovaný Lispem. Kompilace funguje jako transpilace do C. Zdaleka není hotový a překladač vyžaduje C kompiler.
Název jazyka je akronymem Function Processing Language. S názvem nejsem zcela spokojen, takže budu rád za návrhy.
FPL vs. Lisp
Jak název napovídá, původně jsem vycházel z Lispu. Konečný výsledek je však rozdílný.
Syntaxe
Kód s veškerými syntaktickými jevy:
main {
puts "Hello World!" #komentář
(na více
řádcích)
some_func "string",$c #argumenty jsou dva výrazy (interpretované jako příkazový list) oddělené ARG_SEPARATOR
math_func 1,0x0,1F,1D,var0 + var1 #funkce var0 s argumentem kterým je identifikátor +, který považuje za svůj argument var1
some_class:getInstanceSize # CLASS_SELECTOR jako argument způsobí volání statické metody getInstanceSize
some_instance getObjectSize
}
Podrobný rozbor syntaxe
Začněme komentáři. Jednořádkový komentář začíná hashtagem
(#). Víceřádkový je vymezen jednoduchými závorkami
(). Syntakticky se kód stejně jako v Lispu dělí na
listy a atomy.
Identifikátor je nepřerušený řetězec znaků, který zároveň nesplňuje požadavky pro jiný druh atomu.
Znakový literál je stejně jako u Smalltalku ve formátu
$znak.
Číslice jsou řešeny stejně jako v ostatních jazycích. Ovšem aby byl
literál interpretován jako byte nebo short, musí
číslice končit B nebo S. Koncové znaky (i ty i
long a float) musí být velkým písmenem.
Textové řetězce jsou stejné jako v ostatních jazycích.
Posledním jsou takzvané speciální atomy. Jedná se o:
;(v kódu veden jakoEND_ARGS),,(ARG_SEPARATOR) a:(CLASS_SELECTOR).
V jazyce jsou dva druhy listů:
- příkazový, který je vymezen začátkem a koncem řádku.
- Druhým typem je blokový, který je "překvapivě" vymezen složenými závorkami.
Není-li zpracován jinak, je každý identifikátor a literál považován
za funkci. To zahrnuje true, false, nil i
proměnné. Funkce může veškerý kód, který po ní následuje v
příkazovém listu, považovat za své argumenty. To umožňuje sestavit
většinu jazyka z funkcí.
Překlad
Zdrojový kód se v současnosti překládá do C a poté
do spustitelného souboru. Argumenty pro překladač v souboru .jar
jsou:
java -jar FPL.jar <sestavací soubor>
příklad sestavovacího souboru (build.properties):
outputFile = FPLC.exe cc = C:\\TDM-GCC-64\\bin\\gcc -w mainModule = compiler.main
Tento soubor se musí nacházet ve složce projektu, kde je zároveň složka
src/, ve které je zdrojový kód. Argument -w vypne u
GCC varování, jinak by dost spamoval. Použití jiného kompileru může
vyžadovat změny ve standardní knihovně jazyka.
V současné době je pro přidání standardní knihovny potřeba rozbalit
soubor std.zip (viz. příloha) ve zdrojové složce projektu.
Galerie
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 8x (71.98 kB)
Aplikace je včetně zdrojových kódů v jazyce Java
