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