Mennyire nehéz feladat egy saját fordítóprogramot írni?
Semmiképpen sem triviális dolog, viszont mindenképpen megéri. Nagyon sok dolgot meg lehet tanulni közben. Feltételezem, hogy hobbiból szeretnél ilyet csinálni és nem professzionális környezetben. A következöket ennek fényében írom.
Ha elfogadsz néhány tanácsot:
- inkább interpretert kezdj el írni. Az interpreterek meg a compilerek felsö 2-3 rétege azonos, a végén nem kell szopnod kódgenerálással. Ha késöbb úgy döntesz (és a programnyelv, amit kitaláltál engedi), akkor kiegészítheted compilerré.
- válassz/találj ki olyan nyelvet, aminek nincs túl sok szintaktikai feature-je. Én azt ajánlom, hogy valami Lisp szerü nyelvet találj ki. Ha nincs kedved kitalálni sajátot, ajánlom a Scheme nevü lisp dialektust. Persze célszerü elsöre ennek is csak egy részhalmazát megvalósítani.
- válassz olyan nyelvet az implementációra(amiben írod a compilered), amiben kényelmesen tudsz dolgozni. Bármilyen rendes programozási nyelven lehet compilert írni(igen, még PHP-ban is, jöhet a lepontozás :D )
- Jó ha kicsit utánnaolvasgatsz a formális nyelvek témakörének. Elsöre elég matekos, igazság szerint másodikra is, de meg lehet érteni.
"Minden gépi kódra fordít."
Hát, nem egészen. A példádban említett JAVA sem, a VM-hez meg a fordítónak semmi köze, tehát a fordító írójának se sok.
Minek ma már olyat írni?
Antrl4-nek megadsz egy CF nyelvtant és legeneralod a fordítót és kész.
"#6: abszolút igazad van"
Dehogy van igaza!
In this Github repository, I'm documenting my journey to write a self-compiling compiler for a subset of the C language. I'm also writing out the details so that, if you want to follow along, there will be an explanation of what I did, why, and with some references back to the theory of compilers.
But not too much theory, I want this to be a practical journey.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!