Da biste kreirali tumač, morate napisati parser izvornog koda, petlju izvršavanja bajt koda i ogromnu količinu standardnog koda biblioteke. Nije uvijek zabavno i lako ako ne koristite alate koje će vam kompajler i parser stvoriti. S njima će biti lako poput granatiranja krušaka napisati tumača jezika za upućenu osobu. Pogledajmo primjer pisanja tumača sa JIT-om u PyPy-u.
Instrukcije
Korak 1
Izaberite jezik za pisanje. U ovom slučaju, to je pamet. Vrlo je jednostavan i sastoji se od trake s cijelim brojevima, koje su inicijalizirane na nulu, i 1 pokazivača na trenutnu ćeliju na traci. U jeziku postoji samo osam naredbi: ">" - pomaknite pokazivač na sljedeću ćeliju,"
Korak 2
Napišite tumača na običnom Pythonu. Brojač uputa pohranit će pokazivače na trenutnu uputu. Prvi izraz dohvatit će izraz, nakon čega nekoliko izraza određuje kako ga izvršiti. Izostavite implementaciju operatora "[" i "]", jer oni moraju promijeniti brojač naredbi u položaj iste zagrade.
Korak 3
Implementirajte klasu Tape koja pohranjuje pokazivač na trenutni broj i traku s cijelim brojevima. Traka će rasti po potrebi. Raščlanite izvorni kôd prije vremena, tako da se više komentara ne čita jedan po jedan bajt. Kreirajte i rječnik zagrada, tako da u njemu možete pronaći odgovarajuće zagrade ako je potrebno.
Korak 4
Izvršite def parse (program). Ova funkcija vraća nizove samo iz naredbi i rječnika zagrada.
Korak 5
Sastavite sve i imate radnog prevodioca mozgova. Pokrenite Python interpreter i provjerite radi li. Ovo je samo jedan slučaj pisanja tumača na najjednostavnijem jeziku. Ako želite, možete pisati na gotovo bilo kojem jeziku, upoznavši se sa njegovim svojstvima i svrhom.