Hur Man Skriver En Tolk

Innehållsförteckning:

Hur Man Skriver En Tolk
Hur Man Skriver En Tolk

Video: Hur Man Skriver En Tolk

Video: Hur Man Skriver En Tolk
Video: How to Use Text to Speech on TikTok (Siri Voice Tutorial) 2024, November
Anonim

För att skapa en tolk måste du skriva en källkodsparserare, en bytecode-körningsslinga och en enorm mängd standardbibliotekskod. Det är inte alltid roligt och enkelt om du inte använder verktygen som kompilatorn och parsern kommer att skapa för dig. Med dem blir det lika enkelt som att beskjuta päron att skriva en språktolk för en kunnig person. Låt oss titta på ett exempel på att skriva en tolk med JIT i PyPy.

Hur man skriver en tolk
Hur man skriver en tolk

Instruktioner

Steg 1

Välj ett språk för att skriva. I det här fallet är det hjärnskak. Det är väldigt enkelt och består av ett band av heltal som initialiseras till noll och en pekare till den aktuella cellen i bandet. Det finns bara åtta kommandon på språket: ">" - flytta pekaren till nästa cell,"

Steg 2

Skriv en tolk i vanlig Python. Instruktionsräknaren lagrar pekare till den aktuella instruktionen. Det första uttrycket hämtar uttalandet, varefter flera uttalanden avgör hur det ska utföras. Utelämna implementeringen av operatörerna "[" och "], eftersom de måste ändra kommandoräknaren till samma parentes.

Steg 3

Implementera en bandklass som lagrar en pekare till det aktuella numret och ett band med heltal. Tejpen kommer att växa efter behov. Analysera källkoden i förväg så att flera kommentarer inte läses en byte åt gången. Skapa också en parentesordbok så att du kan hitta matchande parenteser i den om det behövs.

Steg 4

Utför def parse (program). Denna funktion returnerar endast strängar från kommandon och parentesordboken.

Steg 5

Sätt ihop allt och du har en fungerande tolk med hjärnavsen. Starta Python-tolk och se till att den fungerar. Detta är bara en enda instans av att skriva en tolk med det enklaste språket. Om du vill kan du skriva på nästan vilket språk som helst och ha bekantat dig med dess egenskaper och syfte.

Rekommenderad: