Gå til innhold

Skrive interpreter i PHP (Hvor begynne?..)


Anbefalte innlegg

For en stund siden da jeg surfet rundt på nett fant jeg noe snedig, en ASM-interpreter skrevet i PHP, jeg ble selvfølgelig interessert og vil nå prøve å skrive et eget lite script-språk for sidene mine, slik at jeg kan legge ut poster i bloggen som endres for hver gang du er på siden osv..

 

Er det noen som vet om guider, tutorials e.l. der jeg kan lære grunnprinsippene i slik programmering?

 

Mvh. Pingvinen

Lenke til kommentar
Videoannonse
Annonse

Det kommer veldig ann på hvordan du har tenkt script språket skal se ut. Interprete ASM er egentlig ikke så veldig vanskelig, alt du trenger er en struktur som representerer registrene i prosessoren og en funksjon som sjekker hvilken instruksjon som ble kjørt og deretter gjør det som står i reference manualen til Intel (det er ganske sikkert noen detaljer som mangler som gjør det vanskeligere).

 

Om du tenkte på et ASM-aktig språk (en instruksjon og et par argumenter pr linje) så kan du bruke en metode som den som er beskrevet over.

 

Om du tenker på noe mer avansert med funksjoner osv. så trenger du en måte å oversette programteksten til en struktur interpreteren din kan forstå. Det de fleste kompilatorene (som jeg vet om) gjør er å lage en trestruktur som beskriver programmet. Dette kan gjøres f.eks med en recursive-descent algoritme. Etter du har denne trestrukturen trenger du fortsatt en måte for å faktisk kjøre programmet, og det du kan gjøre da er å generere en ASM-lignende kode som du etterpå kjører på samme måte som i ASM delen over.

 

Skal heller ikke se bort fra at det finnes biblioteker som forenkler deler av dette.

Lenke til kommentar

Vil ha et scriptspråk likt JS/PHP som jeg selv kan fikse på, skal bruke det for moro skyld, eller for å erstatte JS (som jeg har blokkert for) i blogginnleggene til brukerne på siden min.

 

Jeg trenger ikke å ha så mange funksjoner osv. Skal bare være for å lære hvordan man gjør det osv.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...