BLACK FRIDAY! Slevy až 80 % jsou všude. Tak je nepropásni a přejdi do rostoucího IT oboru!
The real BF 2020

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.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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 jako END_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

Program byl vytvořen v roce 2020.

 

Stáhnout

Staženo 3x (71.98 kB)
Aplikace je včetně zdrojových kódů v jazyce java

 

Všechny články v sekci
Kompilace manuálně v Javě
Program pro vás napsal Richard H.
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Autor se věnuje programování v Javě
Aktivity (6)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!