interpreter

Status
Niet open voor verdere reacties.

kevincs

Gebruiker
Lid geworden
27 aug 2007
Berichten
48
Bestaat er ergens op het net een tutorial over het maken van een interpreter?
Ik ben namelijk bezig met een project voor school, ga een simplistische programmeertaal maken (à la basic) en daar heb ik dus een interpreter voor nodig.

Vooral de tech voor het herkennen van de syntax heb ik erg nodig, de mijne is nogal amateuristisch en loopt veel te traag.
Bv if statement = "Print"
---> cout << [Tekst na print tussen ""] << endl;
 
Als je een interpreter wilt maken (en daarmee dus een eigen programmeertaaltje) moet je controleren of het programma dat je interpreteert aan de definitie van jouw taal voldoet. Je moet het programma dus parsen. Vervolgens moet je door alle statements heen lopen. Dit is afhankelijk van de semantiek van jouw taal. Dit houdt in dat je moet vastleggen dat je met bijvoorbeeld een 'print' statement iets naar de console kunt schrijven. Per stap komt jouw programma dan in een nieuwe toestand terecht. Vanuit die toestand kun je weer in een nieuwe toestand komen door het volgende statement te interpreteren (uit te voeren).

Op wikipedia staat dit allemaal nog veel uitgebreider uitgelegd: http://en.wikipedia.org/wiki/Interpreter_(computing).

In plaats van alles zelf te gaan parsen kun je ook je taal (grammatica en semantiek) definieren en een parser en interpreter laten genereren door een zogenaamde 'parser generator'. Zelf heb ik antlr (http://www.antlr.org/) gebruikt, wat echt heel goed werkt. Volgens mij staan er op hun website ook wel tutorials hoe je het kunt gebruiken.
Maar het maken van een goede taal met een goede syntax en semantiek is zeker niet eenvoudig! In elk geval veel succes ermee :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan