At lave sin egen maskinekode/interpreter/compiler

Tags:    programmering

<< < 12 > >>
Hej Udvikleren.

Jeg har igennem flere år drømt om at rode med maskine kode og lave mit eget sprog.

Fordelen ved at kunne lave maskine kode, er jo at man kan tage alle slags maskine afviklende apperarter og kode, som man har lyst.

Derfor søger jeg lidt hjælp til at komme igang med bare at forsøge at lave mit eget Scripting Language eller min egen interpreter/compiler.

Jeg har nogle grundlæggende idé'er om hvordan det skal laves og bruges, men, alligevel er jeg en smuuuuule lost omkring hvordan jeg skal starte op.

Sådan rent basalt, skal den vel kunne nogenlunde det som det script sprog jeg bruger til hverdag (PHP), jeg har vel bare nogle idé'er til at lave om på det, og nogle forslag til forbedringer.

Dog vil jeg skære det ned til en start, den skal bestå af blandt andet funktionen print som fortæller at det er noget der skal vises på skærmen og ikke bare køre i baggrunden, også skal der være mulighed for at lave if sætninger, og fortælle hvornår en variabel er en variabel, og ikke mindst hvilken type variabel det er.

Det er det jeg vil starte med, så må resten komme hen af vejen som man får øvet sig på sit eget sprog.

Nogen der kan hjælpe mig med at komme igang med at lave det?
Eventuelt noget grundlæggende, på måske Dansk?

Vigtigst af alt, er at mit Engelsk er begyndt at gå i stå, så jeg forstår ikke så meget af det jeg læser, mere det jeg snakker.

På forhånd tak.



Jeg har aldrig været skør nok til at bruge disse:

http://dinosaur.compilertools.net/

Men været uheldig nok til at skulle gennemlæse en fortolker skrevet i dem.

Det kan varmt anbefale ikke at gøre det, men er ret sikker på at du kan skrive en oversætter/fortolker, der kan hvad du vil.


Netop fordi Lex/Yacc ofte er mere sort magi end videnskab er det en god idé at pensionere dem. Antlr (http://www.antlr.org/) er en nyere parser generator, og noget nemmere at gennemskue.

Men det er stadig en god øvelse at lave sin egen simple parser først.



<< < 12 > >>
t