Hvordan Man Skriver En Tolk

Indholdsfortegnelse:

Hvordan Man Skriver En Tolk
Hvordan Man Skriver En Tolk

Video: Hvordan Man Skriver En Tolk

Video: Hvordan Man Skriver En Tolk
Video: KU TALK - hvordan man skriver opgave på uni 2024, November
Anonim

For at oprette en tolk skal du skrive en kildekodeparser, en bytecode-udførelsessløjfe og en enorm mængde standardbibliotekskode. Det er ikke altid sjovt og let, hvis du ikke bruger de værktøjer, som kompilatoren og parseren vil generere til dig. Med dem vil det være lige så let som at beskære pærer at skrive en sprogfortolker til en kyndig person. Lad os se på et eksempel på at skrive en tolk med JIT i PyPy.

Hvordan man skriver en tolk
Hvordan man skriver en tolk

Instruktioner

Trin 1

Vælg et sprog til skrivning. I dette tilfælde er det hjernefuck. Det er meget simpelt og består af et bånd af heltal, der initialiseres til nul, og en markør til den aktuelle celle i båndet. Der er kun otte kommandoer på sproget: ">" - flyt markøren til den næste celle,"

Trin 2

Skriv en tolk i almindelig Python. Instruktionstælleren gemmer markører til den aktuelle instruktion. Det første udtryk henter udsagnet, hvorefter flere udsagn bestemmer, hvordan det skal udføres. Udelad implementeringen af "[" og "]" operatorerne, da de skal ændre kommandotælleren til positionen for den samme parentes.

Trin 3

Implementere en båndklasse, der gemmer en markør til det aktuelle nummer og et bånd af heltal. Båndet vokser efter behov. Parse kildekoden på forhånd, så flere kommentarer ikke læses en byte ad gangen. Opret også en parentes ordbog, så du kan finde matchende parenteser i den, hvis det er nødvendigt.

Trin 4

Udfør def parse (program). Denne funktion returnerer kun strenge fra kommandoer og parenteses ordbog.

Trin 5

Sæt alt sammen, og du har en fungerende tolk med hjernefuck. Start Python-tolk og sørg for, at den fungerer. Dette er kun en enkelt forekomst af at skrive en tolk ved hjælp af det enkleste sprog. Hvis du ønsker det, kan du skrive på næsten ethvert sprog efter at have gjort dig bekendt med dets egenskaber og formål.

Anbefalede: