SPL

Sjoerd’s Programming Language, mijn eigen poging om een scripttaal te maken. Opzich werkte het heel goed, maar omdat er al zoveel programmeertalen zijn ben ik ermee gestopt. Het ontwikkelen en implementeren van alle functies en commando’s die ik erin wilde hebben zou namelijk zoveel tijd in beslag nemen en (voor mezelf) weinig voordeel opleveren boven programmeertalen als Visual Dialogscript en Visual Basic aangezien ik die allebei goed beheers.
SPL kende twee soorten instructies, functies en commando’s. Commando’s voeren iets uit en functies geven een waarde terug van bijvoorbeeld een berekening. Onderstaande commando’s en functies konden worden gebruikt met SPL:

Commando's

messagebox [tekst]
alert [tekst]
title [nieuwe titel]
if / else / end
while / wend
goto [naam label]
exit

Functies

#chr([nummer])
#asc([teken])
#add([nummer1],[nummer2],[nummer3],{enzovoorts})
#diff([nummer1],[nummer2],[nummer3],{enzovoorts})
#multiply([nummer1],[nummer2],[nummer3],{enzovoorts})
#division([nummer1],[nummer2],[nummer3],{enzovoorts})
#substring([tekst],[begin],[einde])
#input([tekst],[titel],[standaard waarde])
#title()
#time( h – m – s)
#equal([waarde1],[waarde2])
#unequal([waarde1],[waarde2])
#not([boolean waarde])
Om te springen tussen stukken programmeercode, heb ik zogenaamde labels gebruikt. Een label is te herkennen aan een tekst dat tussen < en > staat. Variabelen kunnen worden gebruikt door voor een woord een dollarteken $ te plaatsen.
De SPL interpreter is gemaakt in Visual Basic. De reden hiervoor is dat Visual Basic beschikking heeft over arrays die ik heb gebruikt om variabelen in op te slaan. Ook is het voor Visual Basic applicaties vaak niet nodig om extra bestanden mee te leveren aan de gebruiker, waardoor de gecompliceerde SPL scripts slechts 10 KB groot zijn.
Om het voor de gebruiker makkelijk te maken én houden, is er ook een kleine IDE ontwikkelt in Visual Dialogscript. Met deze IDE kunnen bestanden geopend, gecompileerd en uitgevoerd worden zonder dat hiervoor externe commando’s ingetypt hoeven te worden.