Hoe Om 'n Tolk Te Skryf

INHOUDSOPGAWE:

Hoe Om 'n Tolk Te Skryf
Hoe Om 'n Tolk Te Skryf

Video: Hoe Om 'n Tolk Te Skryf

Video: Hoe Om 'n Tolk Te Skryf
Video: Hoe om 'n brief te skryf. 2024, Julie
Anonim

Om 'n tolk te skep, moet u 'n bronkode-ontleder, 'n bytecode-uitvoeringslus en 'n groot hoeveelheid standaardbiblioteekkode skryf. Dit is nie altyd lekker en maklik as u nie die gereedskap gebruik wat die samesteller en ontleder vir u sal genereer nie. By hulle sal dit net so maklik wees as om pere te beskiet om 'n tolk vir 'n kundige persoon te skryf. Kom ons kyk na 'n voorbeeld van die skryf van 'n tolk met JIT in PyPy.

Hoe om 'n tolk te skryf
Hoe om 'n tolk te skryf

Instruksies

Stap 1

Kies 'n taal om te skryf. In hierdie geval is dit breinsinnig. Dit is baie eenvoudig en bestaan uit 'n band van heelgetalle wat na nul geïnisialiseer word en 1 wyser na die huidige sel in die band. Daar is slegs agt opdragte in die taal: ">" - skuif die wyser na die volgende sel,"

Stap 2

Skryf 'n tolk in gewone Python. Die instruksietoonbank sal die aanwysings na die huidige instruksie stoor. Die eerste uitdrukking sal die verklaring ophaal, waarna verskeie verklarings bepaal hoe u dit moet uitvoer. Laat die implementering van die "[" en "]" -operateurs weg, aangesien hulle die opdragteller moet verander na die posisie van dieselfde hakie.

Stap 3

Implementeer 'n bandklas wat 'n wyser op die huidige nommer en 'n band heelgetalle stoor. Die band sal groei soos nodig. Ontleed die bronkode vroegtydig, sodat meerdere opmerkings nie een byte per keer gelees word nie. Skep ook 'n hakwoordeboek, sodat u ooreenstemmende hakies daarin kan vind indien nodig.

Stap 4

Voer def parse (program) uit. Hierdie funksie gee slegs snare vanaf opdragte en die hakieswoordeboek.

Stap 5

Sit alles bymekaar en jy het 'n werkende breintok-tolk. Begin die Python-tolk en sorg dat dit werk. Dit is slegs 'n enkele geval van die skryf van 'n tolk in die eenvoudigste taal. As u wil, kan u in byna enige taal skryf, nadat u vertroud is met die eienskappe en doel daarvan.

Aanbeveel: