Da biste stvorili tumač, morate napisati parser izvornog koda, petlju izvršavanja bajt koda i ogromnu količinu standardnog koda knjižnice. 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 s JIT-om u PyPy-u.
Upute
Korak 1
Odaberite 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.
3. korak
Implementirajte klasu Tape koja pohranjuje pokazivač na trenutni broj i traku s cijelim brojevima. Traka će rasti prema potrebi. Raščlanite izvorni kôd prije vremena, tako da se više komentara ne čita jedan po jedan bajt. Stvorite i rječnik zagrada, tako da u njemu možete pronaći odgovarajuće zagrade ako je potrebno.
4. korak
Izvršiti def parse (program). Ova funkcija vraća nizove samo iz naredbi i rječnika zagrada.
Korak 5
Sastavite sve i imate radnog prevoditelja s mozgom. Pokrenite Python interpreter i provjerite radi li. Ovo je samo jedan slučaj pisanja tumača najjednostavnijim jezikom. Ako želite, možete pisati na gotovo bilo kojem jeziku, upoznavši se s njegovim svojstvima i svrhom.