summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore30
-rw-r--r--voorstel.tex44
2 files changed, 74 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..981ca62
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,30 @@
+### TeX
+*.aux
+*.glo
+*.idx
+*.fdb_latexmk
+*.fls
+*.log
+*.toc
+*.ist
+*.acn
+*.acr
+*.alg
+*.bbl
+*.blg
+*.dvi
+*.glg
+*.gls
+*.ilg
+*.ind
+*.lof
+*.lot
+*.maf
+*.mtc
+*.mtc1
+*.out
+*.pdf
+*.swp
+*.synctex.gz
+_minted-*/
+
diff --git a/voorstel.tex b/voorstel.tex
new file mode 100644
index 0000000..170ea6e
--- /dev/null
+++ b/voorstel.tex
@@ -0,0 +1,44 @@
+\documentclass[a4paper]{article}
+
+\usepackage[hidelinks]{hyperref}
+\usepackage[dutch]{babel}
+
+\title{Smurf}
+\author{Evi Sijben, Ward Theunisse en Camil Staps}
+
+\begin{document}
+
+\maketitle
+
+In ons project willen we de semantiek van
+Smurf\footnote{\url{http://esolangs.org/wiki/Smurf}}
+defini\"eren en bestuderen.
+
+Smurf, een esoterische taal, is een kleinere versie van Muriel. Het enige
+native data type is de string. Er is zowel een stack als een variable store.
+Er zijn standaardoperaties (concatenatie, head, tail, etc.) die op de stack
+werken. De variable store wordt aangepast door eerst een naam en een waarde op
+de stack te zetten en dan `put' uit te voeren. De store kan uitgelezen worden
+door de naam van de variabele op de stack te zetten en `get' uit te voeren.
+Ten slotte is er een functie `execute' om een string op de stack als
+Smurf-programma uit te voeren. De volledige stack en variable store wordt dan
+gewist, waarna het nieuwe programma wordt uitgevoerd. Het op de stack zetten
+van een nieuw Smurf-programma en dat uitvoeren is de enige mogelijkheid tot
+recursie of iteratie.
+
+In het bijzonder zijn we benieuwd wat voor aanpassingen we moeten doen aan de
+semantiek om stackgeheugen en het `execute'-commando te modelleren.
+
+Er is een aantal dingen onduidelijk in de specificatie, zowel op syntactisch
+als op semantisch niveau. Bijvoorbeeld is het ongedefinieerd wat er gebeurt
+wanneer het programma dat middels `execute' wordt uitgevoerd termineert:
+termineert het ouderprogramma dan ook, of gaat de uitvoering hiervan door op
+het punt na `execute'? In eerste instantie zullen we hiervoor een geannoteerde
+specificatie\footnote{\url{http://safalra.com/programming/esoteric-languages/smurf/specification}},
+waarin al een aantal onduidelijkheden zijn uitgelicht en suggesties voor
+verdere specificatie zijn gegeven, gebruiken. Deze vrije definities geven
+ook de mogelijkheid om ons project later te verbreden, door bijvoorbeeld de
+invloed van een andere interpretatie op de semantiek te bekijken.
+
+\end{document}
+