Si Të Shkruajmë Një Përkthyes

Përmbajtje:

Si Të Shkruajmë Një Përkthyes
Si Të Shkruajmë Një Përkthyes
Anonim

Për të krijuar një përkthyes, duhet të shkruash një analizues të kodit burimor, një lak të ekzekutimit të bytecode dhe një sasi të madhe të kodit standard të bibliotekës. Nuk është gjithmonë argëtuese dhe e lehtë nëse nuk përdorni mjetet që përpiluesit dhe analizuesit do të gjenerojnë për ju. Me ta, do të jetë aq e lehtë sa të granatosh dardhat të shkruash një përkthyes gjuhe për një person të ditur. Le të shohim një shembull të shkrimit të një përkthyesi me JIT në PyPy.

Si të shkruajmë një përkthyes
Si të shkruajmë një përkthyes

Udhëzimet

Hapi 1

Zgjidhni një gjuhë për të shkruar. Në këtë rast, kjo është mendja. Shtë shumë e thjeshtë dhe përbëhet nga një shirit i plotë, të cilët iniciohen në zero, dhe 1 tregues në qelizën aktuale në shirit. Ka vetëm tetë komanda në gjuhë: ">" - zhvendosni treguesin në qelizën tjetër,"

Hapi 2

Shkruaj një përkthyes në Python të thjeshtë. Numëruesi i udhëzimeve do të ruajë treguesit e udhëzimit aktual. Shprehja e parë do të rimarrë deklaratën, pas së cilës disa deklarata përcaktojnë se si ta ekzekutojnë atë. Hiqni zbatimin e operatorëve "[" dhe "]", pasi ata duhet të ndryshojnë numëruesin e komandës në pozicionin e së njëjtës kllapa.

Hapi 3

Zbatoni një klasë Tape që ruan një tregues për numrin aktual dhe një kasetë të plotë. Kaseta do të rritet sipas nevojës. Analizoni kodin burimor para kohe në mënyrë që shumë komente të mos lexohen një bajt në të njëjtën kohë. Krijo gjithashtu një fjalor kllapa, kështu që mund të gjesh kllapa që përputhen nëse është e nevojshme.

Hapi 4

Ekzekutoni def-parse (programin). Ky funksion i kthen vargjet vetëm nga komandat dhe fjalori i parantezës.

Hapi 5

Vendosni gjithçka së bashku dhe ju keni një interpretues që punon me mend. Filloni interpretuesin Python dhe sigurohuni që ai të funksionojë. Kjo është vetëm një shembull i vetëm i shkrimit të një përkthyesi duke përdorur gjuhën më të thjeshtë. Nëse dëshironi, mund të shkruani në pothuajse çdo gjuhë, pasi të jeni familjarizuar me vetitë dhe qëllimin e saj.

Recommended: