Merge branch 'master' of github.com:dopefishh/sec2014 into commentaar_verwerken commentaar_verwerken
authorMart Lubbers <mart@martlubbers.net>
Thu, 12 Jun 2014 13:13:54 +0000 (15:13 +0200)
committerMart Lubbers <mart@martlubbers.net>
Thu, 12 Jun 2014 13:13:54 +0000 (15:13 +0200)
16 files changed:
.gitignore
Clean System Files/_semantic_functions_options.o [new file with mode: 0644]
Clean System Files/semantic_functions.abc [new file with mode: 0644]
Clean System Files/semantic_functions.o [new file with mode: 0644]
an_faculteit.tex
an_variabelen.tex
appendix.tex
functions.icl [deleted file]
img/Thumbs.db [new file with mode: 0644]
semantic_functions.dcl [new file with mode: 0644]
semantic_functions.icl [new file with mode: 0644]
semantic_functions.prj [new file with mode: 0644]
semantic_functions.prp [new file with mode: 0644]
semantics.tex
syntax.tex
todo.txt

index ce4067a..e21a9e4 100644 (file)
@@ -1,6 +1,9 @@
+Clean\ System\ Files/*
 *.aux
 *.log
 *.out
 *.pdf
 *.toc
 *.gz
+*.exe
+img/thumbs.db
diff --git a/Clean System Files/_semantic_functions_options.o b/Clean System Files/_semantic_functions_options.o
new file mode 100644 (file)
index 0000000..07a549f
Binary files /dev/null and b/Clean System Files/_semantic_functions_options.o differ
diff --git a/Clean System Files/semantic_functions.abc b/Clean System Files/semantic_functions.abc
new file mode 100644 (file)
index 0000000..a84bea9
--- /dev/null
@@ -0,0 +1,2130 @@
+.comp 920 00011101001
+.start __semantic_functions_Start
+.depend "StdReal" "20111221123336"
+.depend "StdChar" "20111221123336"
+.depend "StdBool" "20111221123336"
+.depend "StdClass" "20111221123336"
+.depend "StdList" "20111221123336"
+.depend "StdOverloaded" "20111221123336"
+.depend "StdInt" "20111221123336"
+.depend "semantic_functions" "20140530152128"
+.module m_semantic_functions "semantic_functions" "20140530175504"
+.endinfo
+.implab _cycle_in_spine
+.implab _type_error
+.implab _hnf
+.impdesc _ind
+.implab _indirection _eaind
+.impdesc e_system_dif
+.implab e_system_nif e_system_eaif
+.implab e_system_sif
+.impdesc e_system_dAP
+.implab e_system_nAP e_system_eaAP
+.implab e_system_sAP
+.impdesc _Nil
+.impdesc _Cons
+.impdesc _Conss
+.implab n_Conss ea_Conss
+.impdesc _Consts
+.implab n_Consts ea_Consts
+.impdesc _Conssts
+.implab n_Conssts ea_Conssts
+.impdesc _Tuple
+.impdesc d_S.1
+.implab n_S.1 ea_S.1
+.impdesc d_S.2
+.implab n_S.2 ea_S.2
+.impdesc d_S.3
+.implab n_S.3 ea_S.3
+.impdesc d_S.4
+.implab n_S.4 ea_S.4
+.impdesc d_S.5
+.implab n_S.5 ea_S.5
+.impdesc d_S.6
+.implab n_S.6 ea_S.6
+.implab _driver
+.implab e_StdBool_snot
+.impdesc e_StdList_d++
+.implab e_StdList_s++
+.implab e_StdList_n++ e_StdList_ea++
+.implab e_StdList_slength;47
+.implab e_StdInt_s+;6
+.impdesc e_StdInt_d-;7
+.implab e_StdInt_s-;7
+.implab e_StdInt_n-;7
+.impdesc e_StdInt_d*;9
+.implab e_StdInt_n*;9
+.implab e_StdInt_s==;16
+.implab e_StdInt_s<;17
+.export __semantic_functions_Start
+.o 0 0
+__semantic_functions_Start
+       build _ 0 n20
+.d 1 0
+       jmp _driver
+.n 0 _ ea20
+.o 1 0
+n20
+       push_node _cycle_in_spine 0
+.o 1 0
+ea20
+.o 1 0
+s20
+.d 1 0
+       jmp s25
+.o 1 0
+s25
+       create
+.d 1 0
+       jsr s26
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s12
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+.d 2 0
+       jmp s3
+.o 1 0
+s26
+       create
+.d 1 0
+       jsr s27
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 4
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s7
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+.d 2 0
+       jmp s1
+.o 1 0
+s27
+       create
+.d 1 0
+       jsr s28
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s12
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+.d 2 0
+       jmp s3
+.o 1 0
+s28
+       create
+.d 1 0
+       jsr s29
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 4
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s7
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+.d 2 0
+       jmp s1
+.o 1 0
+s29
+       create
+.d 1 0
+       jsr s30
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s12
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+.d 2 0
+       jmp s3
+.o 1 0
+s30
+       create
+.d 1 0
+       jsr s31
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 4
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s7
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+.d 2 0
+       jmp s1
+.o 1 0
+s31
+       create
+.d 1 0
+       jsr s32
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s12
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s11
+.o 1 0
+.d 2 0
+       jmp s3
+.o 1 0
+s32
+       buildh _Nil 0
+       buildI 5
+       buildh _Cons 2
+       buildI 1
+       buildh _Cons 2
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 4
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s7
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s10
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s6
+.o 1 0
+       create
+       buildI 3
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s1
+.o 1 0
+       create
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+.d 2 0
+       jsr s3
+.o 1 0
+       create
+       buildI 2
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+       create
+       buildI 1
+       push_a 2
+       update_a 2 3
+       update_a 0 2
+       pop_a 1
+.d 3 0
+       jsr s4
+.o 1 0
+.d 2 0
+       jmp s1
+.o 2 0
+s12
+       eq_desc _Nil 0 0
+       jmp_true case.1
+       jmp case.2
+case.1
+       fillh _Nil 0 1
+       pop_a 1
+.d 1 0
+       rtn
+case.2
+       repl_args 2 2
+       jsr_eval 1
+       eq_desc _Nil 0 1
+       jmp_true case.3
+       jmp case.4
+case.3
+       buildh _Nil 0
+       push_a 1
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+case.4
+       push_args 1 2 2
+       buildh _Nil 0
+       update_a 0 4
+       pop_a 1
+       push_a 0
+       jsr_eval 0
+       pushI_a 1
+       pop_a 1
+       push_a 2
+       jsr_eval 0
+       pushI_a 3
+       pop_a 1
+       ltI
+       notB
+       jmp_false else.5
+       push_a 1
+       buildI 0
+       fillh _Cons 2 6
+       pop_a 4
+.d 1 0
+       rtn
+else.5
+       push_a 1
+       buildI 1
+       fillh _Cons 2 6
+       pop_a 4
+.d 1 0
+       rtn
+.o 2 0
+s11
+       eq_desc _Nil 0 0
+       jmp_true case.6
+       jmp case.7
+case.6
+       fillh _Nil 0 1
+       pop_a 1
+.d 1 0
+       rtn
+case.7
+       repl_args 2 2
+       jsr_eval 0
+       eqI_a 0 0
+       jmp_true case.8
+       jmp case.9
+case.8
+       push_a 1
+       buildI 1
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+case.9
+       push_a 1
+       buildI 0
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+.o 2 0
+s10
+       eq_desc _Nil 0 0
+       jmp_true case.10
+       jmp case.11
+case.10
+       fillh _Nil 0 1
+       pop_a 1
+.d 1 0
+       rtn
+case.11
+       repl_args 2 2
+       push_a 1
+       push_a 1
+       buildh _Cons 2
+       push_a 1
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+.o 2 0
+s7
+       eq_desc _Nil 0 0
+       jmp_true case.12
+       jmp case.13
+case.12
+       fillh _Nil 0 1
+       pop_a 1
+.d 1 0
+       rtn
+case.13
+       repl_args 2 2
+       jsr_eval 1
+       eq_desc _Nil 0 1
+       jmp_true case.14
+       jmp case.15
+case.14
+       buildh _Nil 0
+       push_a 1
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+case.15
+       push_args 1 2 2
+       buildh _Nil 0
+       update_a 0 4
+       pop_a 1
+       push_a 2
+       push_a 1
+       build _ 2 e_StdInt_n*;9
+       push_a 2
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+       fillh _Cons 2 6
+       pop_a 4
+.d 1 0
+       rtn
+.o 2 0
+s6
+       eq_desc _Nil 0 0
+       jmp_true case.16
+       jmp case.17
+case.16
+       fillh _Nil 0 1
+       pop_a 1
+.d 1 0
+       rtn
+case.17
+       repl_args 2 2
+       jsr_eval 1
+       eq_desc _Nil 0 1
+       jmp_true case.18
+       jmp case.19
+case.18
+       buildh _Nil 0
+       push_a 1
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+case.19
+       push_args 1 2 2
+       buildh _Nil 0
+       update_a 0 4
+       pop_a 1
+       push_a 2
+       push_a 1
+       build _ 2 e_StdInt_n-;7
+       push_a 2
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+       fillh _Cons 2 6
+       pop_a 4
+.d 1 0
+       rtn
+.o 3 0
+s4
+       eq_desc _Nil 0 1
+       jmp_true case.20
+       jmp case.21
+case.20
+       buildh _Nil 0
+       push_a 1
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+case.21
+       buildh _Nil 0
+       push_a 1
+       buildh _Cons 2
+       push_a 2
+       push_a 1
+       update_a 1 2
+       update_a 0 1
+       pop_a 1
+       update_a 1 3
+       updatepop_a 0 2
+.d 3 0
+       jmp e_StdList_s++
+.o 2 0
+s3
+       eq_desc _Nil 0 0
+       jmp_true case.22
+       jmp case.23
+case.22
+       fillh _Nil 0 1
+       pop_a 1
+.d 1 0
+       rtn
+case.23
+       repl_args 2 2
+       pop_a 1
+       jmp_eval_upd
+.export e_semantic_functions_sroll
+.export e_semantic_functions_earoll
+.descexp e_semantic_functions_droll e_semantic_functions_nroll e_semantic_functions_lroll 1 0 "roll"
+.o 2 0
+e_semantic_functions_lroll
+       update_a 1 0
+       create
+       update_a 0 2
+       pop_a 1
+.d 2 0
+       jmp e_semantic_functions_earoll
+.n 1 e_semantic_functions_droll e_semantic_functions_earoll
+.o 1 0
+e_semantic_functions_nroll
+       push_node _cycle_in_spine 1
+.o 2 0
+e_semantic_functions_sroll
+.o 2 0
+e_semantic_functions_earoll
+       jsr_eval 0
+.o 2 0
+s1
+       eq_desc _Nil 0 0
+       jmp_true case.24
+       jmp case.25
+case.24
+       fillh _Nil 0 1
+       pop_a 1
+.d 1 0
+       rtn
+case.25
+       repl_args 2 2
+       jsr_eval 1
+       eq_desc _Nil 0 1
+       jmp_true case.26
+       jmp case.27
+case.26
+       buildh _Nil 0
+       push_a 1
+       fillh _Cons 2 4
+       pop_a 2
+.d 1 0
+       rtn
+case.27
+       push_args 1 2 2
+       buildh _Nil 0
+       update_a 0 4
+       pop_a 1
+       push_a 0
+       jsr_eval 0
+       pushI_a 1
+       pop_a 1
+       push_a 2
+       jsr_eval 0
+       pushI_a 3
+       pop_a 1
+.d 0 2 ii
+       jsr s15
+.o 0 1 i
+       pushI 0
+       push_b 1
+       update_b 1 2
+       update_b 0 1
+       pop_b 1
+       eqI
+       jmp_false else.28
+       updatepop_a 1 3
+       jmp_eval_upd
+else.28
+       pushI_a 0
+       pushI 0
+       ltI
+       notB
+       jmp_false else.29
+       updatepop_a 1 3
+       jmp_eval_upd
+else.29
+       push_a 1
+       jsr_eval 0
+.d 1 0
+       jsr e_StdList_slength;47
+.o 0 1 i
+       pushI_a 0
+       push_b 1
+       update_b 1 2
+       update_b 0 1
+       pop_b 1
+       ltI
+       jmp_false else.30
+       fill_a 1 4
+       pop_a 4
+.d 1 0
+       rtn
+else.30
+       pushI 1
+       pushI_a 2
+       eqI
+       jmp_false else.31
+       push_a 1
+       push_a 1
+       buildh _Cons 2
+       updatepop_a 0 4
+.d 2 0
+       jmp s2
+else.31
+       pushI_a 2
+       pushI 0
+       ltI
+       jmp_false else.32
+       push_a 1
+       push_a 1
+       buildh _Cons 2
+       build e_semantic_functions_droll1 1 e_semantic_functions_nroll1
+       buildh _Nil 0
+       push_a 2
+       buildh _Cons 2
+       build e_StdList_d++ 2 e_StdList_n++
+       buildh _Nil 0
+       buildI 1
+       push_a 5
+       build _ 2 e_StdInt_n-;7
+       buildh _Cons 2
+       create
+       push_a 2
+       update_a 1 3
+       update_a 2 1
+       update_a 0 2
+       pop_a 1
+       update_a 2 6
+       update_a 1 5
+       updatepop_a 0 4
+.d 3 0
+       jsr e_StdList_s++
+.o 1 0
+.d 2 0
+       jmp s1
+else.32
+       pushI 0
+       pushI_a 2
+       ltI
+       jmp_false else.33
+       push_a 1
+       push_a 1
+       buildh _Cons 2
+       buildh _Nil 0
+       push_a 2
+       push_a 5
+       build _ 2 n15
+       buildh _Cons 2
+       create
+       push_a 2
+       update_a 1 3
+       update_a 2 1
+       update_a 0 2
+       pop_a 1
+       update_a 2 6
+       update_a 1 5
+       updatepop_a 0 4
+.d 3 0
+       jsr e_StdList_s++
+.o 1 0
+.d 2 0
+       jmp s1
+else.33
+       pop_a 3
+       jmp s1.1
+s1.1
+       pop_a 2
+       pushD m_semantic_functions
+       pushD e_semantic_functions_droll
+.d 0 2 ii
+       jmp _match_error
+.export e_semantic_functions_sroll1
+.export e_semantic_functions_earoll1
+.descexp e_semantic_functions_droll1 e_semantic_functions_nroll1 e_semantic_functions_lroll1 1 0 "roll1"
+.o 2 0
+e_semantic_functions_lroll1
+       update_a 1 0
+       create
+       update_a 0 2
+       pop_a 1
+.d 2 0
+       jmp e_semantic_functions_earoll1
+.n 1 e_semantic_functions_droll1 e_semantic_functions_earoll1
+.o 1 0
+e_semantic_functions_nroll1
+       push_node _cycle_in_spine 1
+.o 2 0
+e_semantic_functions_sroll1
+.o 2 0
+e_semantic_functions_earoll1
+       jsr_eval 0
+.o 2 0
+s2
+       eq_desc _Cons 2 0
+       jmp_true case.34
+       jmp s2.1
+case.34
+       repl_args 2 2
+       jsr_eval 0
+       eqI_a 1 0
+       jmp_true case.35
+       jmp case.36
+case.35
+       pop_a 1
+       jmp_eval_upd
+case.36
+       jsr_eval 1
+       eq_desc _Cons 2 1
+       jmp_true case.37
+       pop_a 1
+       jmp s2.1
+case.37
+       push_args 1 2 2
+       buildh _Nil 0
+       update_a 0 4
+       pop_a 1
+       jsr_eval 1
+       eq_desc _Cons 2 1
+       jmp_true case.38
+       pop_a 3
+       jmp s2.1
+case.38
+       push_args 1 2 2
+       buildh _Nil 0
+       update_a 0 4
+       pop_a 1
+       push_a 1
+       push_a 3
+       buildh _Cons 2
+       buildI 1
+       push_a 6
+       build _ 2 e_StdInt_n-;7
+       buildh _Cons 2
+       build e_semantic_functions_droll1 1 e_semantic_functions_nroll1
+       buildh _Nil 0
+       push_a 2
+       buildh _Cons 2
+       update_a 1 7
+       updatepop_a 0 6
+.d 3 0
+       jmp e_StdList_s++
+s2.1
+       pop_a 2
+       pushD m_semantic_functions
+       pushD e_semantic_functions_droll1
+.d 0 2 ii
+       jmp _match_error
+.n 2 _
+.o 1 0
+n15
+       push_node _cycle_in_spine 2
+.d 2 0
+       jsr ea15
+.o 0 1 i
+       fillI_b 0 0
+       pop_b 1
+.d 1 0
+       rtn
+.o 2 0
+ea15
+       jsr_eval 1
+       jsr_eval 0
+       pushI_a 1
+       pushI_a 0
+       pop_a 2
+.o 0 2 ii
+s15
+       pushI 0
+       push_b 1
+       ltI
+       jmp_false else.39
+       push_b 1
+       push_b 1
+       addI
+       push_b 2
+       push_b 1
+       update_b 1 2
+       update_b 0 1
+       pop_b 1
+       update_b 1 3
+       updatepop_b 0 2
+.d 0 2 ii
+       jmp s15
+else.39
+       push_b 1
+       push_b 1
+       ltI
+       jmp_false else.40
+       update_b 0 1
+       pop_b 1
+.d 0 1 i
+       rtn
+else.40
+       push_b 1
+       push_b 1
+       subI
+       push_b 2
+       push_b 1
+       update_b 1 2
+       update_b 0 1
+       pop_b 1
+       update_b 1 3
+       updatepop_b 0 2
+.d 0 2 ii
+       jmp s15
diff --git a/Clean System Files/semantic_functions.o b/Clean System Files/semantic_functions.o
new file mode 100644 (file)
index 0000000..9b437d2
Binary files /dev/null and b/Clean System Files/semantic_functions.o differ
index 695fb4d..59fd921 100644 (file)
@@ -95,3 +95,37 @@ Wat in piet er uit zit als in \ref{fig:img3}
        \fbox{\includegraphics[natheight=320px, natwidth=256px, height=320px,
        width=256px]{img3.png}}
 \end{figure}
+
+\begin{landscape}
+De afleidingsrij voor 1! ziet er als volgt uit:\\
+$
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1;push \: 3;dup;roll;push \: 1;push \: 2;push \: 1;push \: 1, [\:], [\:], [\:]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1;push \: 3;dup;roll;push \: 1;push \: 2;push \: 1, [\:], [\:], [1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1;push \: 3;dup;roll;push \: 1;push \: 2, [\:], [\:], [1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1;push \: 3;dup;roll;push \: 1, [\:], [\:], [2,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1;push \: 3;dup;roll, [\:], [\:], [1,2,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1;push \: 3;dup, [\:], [\:], [1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1;push \: 3, [\:], [\:], [1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll;push \: 1, [\:], [\:], [3,1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1;roll, [\:], [\:], [1,3,1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;push \: 1, [\:], [\:], [1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not;subtract;, [\:], [\:], [1,1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1;not, [\:], [\:], [1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1;push \: 1, [\:], [\:], [1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract;push\:1, [\:], [\:], [1,1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater;subtract, [\:], [\:], [1,1,1,1,1]\rangle \Rightarrow\\
+\langle pointer; not;greater, [\:], [\:], [0,1,1,1]\rangle \Rightarrow\\
+\langle pointer; not, [\:], [\:], [1,1,1]\rangle \Rightarrow\\
+\langle pointer [\:], [\:], [0,1,1]\rangle \Rightarrow\\
+\langle [\:], [\:], [1,1]\rangle\\
+\\
+$
+Eerst worden x en y op de stack gestopt zodat de stack [y,x] = [1,1]. 
+Deze stack is gelijk aan de stack in de termineerende configuratie: 1 = 1! dus y = x!.
+Als bewijs dat de wiskundige operaties op de stack goed zijn uitgevoerd staat in 
+de appendix onder het kopje voorbeelden een stukje code.  In het programma 
+eenfaculteit worden alle wiskundige operaties die bij de commando's horen 
+achter elkaar uitgevoerd op de stack, waarbij het resultaat [1,1] is.\\
+Bij de voorbeelden staan ook nog de programma's tweefaculteit en 
+vijffaculteit die respectievelijk 2! en 5! uitrekenen.
+\end{landscape}
\ No newline at end of file
index b386acf..6761898 100644 (file)
@@ -13,6 +13,7 @@ Bij het opvragen van een vaste waar
 $Get(n)$
 
 \subsubsection{Unair}
+\label{subsec:unair}
 Als er een operator uitgevoerd wordt die slechts \'e\'en waarde vraagt van de
 stack hoeft er slechts \'e\'en waarde boven aan de stack gezet te worden en dit
 gaat met de volgende operaties bij $n>1$:\\
index 3bacb77..ed1e909 100644 (file)
@@ -1 +1,6 @@
-\lstinputlisting[language=Clean, lastline=100]{functions.icl}
\ No newline at end of file
+\subsection{help functies}
+\lstinputlisting[language=Clean, lastline=88]{semantic_functions.icl}
+\subsection{voorbeelden}
+\begin{landscape}
+\lstinputlisting[language=Clean,firstline=90, lastline=120]{semantic_functions.icl}
+\end{landscape}
diff --git a/functions.icl b/functions.icl
deleted file mode 100644 (file)
index 8250323..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-implementation module roll
-
-import StdInt, StdList
-
-d :: [Int] -> [Int]
-d [] = []
-d [a:rest] = rest
-
-e :: [Int] Int -> [Int]
-e [] a = [a]
-e [b] a = [a] ++ [b]
-
-add :: [Int] -> [Int]
-add [] = []
-add [a] = [a]
-add [a:b:rest] = [b+a:rest]
-
-sub :: [Int] -> [Int]
-sub [] = []
-sub [a] = [a]
-sub [a:b:rest] = [b-a:rest]
-
-mul :: [Int] -> [Int]
-mul [] = []
-mul [a] = [a]
-mul [a:b:rest] = [b*a:rest]
-
-div :: [Int] -> [Int]
-div [] = []
-div [a] = [a]
-div [a:b:rest] = [b/a:rest]
-
-modc :: [Int] -> [Int]
-modc[] = []
-modc[a] = [a]
-modc[a:b:rest] = [modulo b a:rest]
-
-dup :: [Int] -> [Int]
-dup[] = []
-dup[a:rest] = [a:a:rest]
-
-notc :: [Int] -> [Int]
-notc[] = []
-notc[0:rest] = [1:rest]
-notc[_:rest] = [0:rest]
-
-gre :: [Int] -> [Int]
-gre[] = []
-gre[a] = [a]
-gre[a:b:rest]
-|a >= b = [0:rest]
-|otherwise = [1:rest]
-
-roll :: [Int] -> [Int]
-roll [] = []
-roll [a] = [a]
-roll [a:b:rest]
-|modulo a b == 0 = rest
-|b <= 0 = rest
-|b > length rest = rest
-|a == 1 = roll1 [b:rest]
-|a > 0 = roll ([a-1] ++ [b] ++ roll1 [b:rest])
-|a < 0 = roll ([modulo a b] ++ [b:rest])
-
-pointer :: [Int] -> [Int]
-pointer [] = []
-pointer [a:rest] = rest
-
-//outnum_s :: stack_output  stack -> stack_output
-outnum_s :: [Int] [Int] -> [Int]
-outnum_s _ [] = []
-outnum_s _ [a:rest] = rest
-
-outnum_so :: [Int] [Int] -> [Int]
-outnum_so so [] = so
-outnum_so so [a:rest] = add_to_s a so
-
-//innum_s :: stack_input  stack -> stack
-innum_s :: [Int] [Int] -> [Int]
-innum_s [] _ = []
-innum_s [a:rest] s = add_to_s a s
-
-innum_si :: [Int] [Int] -> [Int]
-innum_si [] s = []
-innum_si [a:rest] s = rest
-
-//help functions
-roll1 :: [Int] -> [Int]
-roll1 [1:rest] = rest
-roll1 [b:c:d:rest] = [d] ++ roll1[b-1:c:rest]
-
-modulo :: Int Int -> Int
-modulo a b
-|a<0 = modulo (a+b) b
-|a<b = a
-|otherwise = modulo (a-b) b
-
-add_to_s :: a [a] -> [a]
-add_to_s a [] = [a]
-add_to_s a b = b ++ [a]
-
-x = 5
-y = 1
-stack = []
-so = []
-si = []
-
-Start = start51
-
-start21 = (notc(gre(sub(push 1(push 1(notc(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2[2,1])))))))))))))))
-start22 = roll(push 1(push 2(pop(roll(push 2(push 3(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2(pop(roll(push 1(push 2(mul(roll(push 1(push 4(dup(roll(push 2(push 3(dup[1,2]))))))))))))))))))))))))))))
-start23 = pointer(notc(gre(sub(push 1(push 1(notc(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2(push 1 (push 2 stack)))))))))))))))))
-
-start51 = (notc(gre(sub(push 1(push 1(notc(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2[120,1])))))))))))))))
-start52 = roll(push 1(push 2(pop(roll(push 2(push 3(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2(pop(roll(push 1(push 2(mul(roll(push 1(push 4(dup(roll(push 2(push 3(dup[60,2]))))))))))))))))))))))))))))
-start53 = pointer(notc(gre(sub(push 1(push 1(notc(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2[60,2])))))))))))))))
-start54 = roll(push 1(push 2(pop(roll(push 2(push 3(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2(pop(roll(push 1(push 2(mul(roll(push 1(push 4(dup(roll(push 2(push 3(dup[20,3]))))))))))))))))))))))))))))
-start55 = pointer(notc(gre(sub(push 1(push 1(notc(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2[20,3])))))))))))))))
-start56 = roll(push 1(push 2(pop(roll(push 2(push 3(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2(pop(roll(push 1(push 2(mul(roll(push 1(push 4(dup(roll(push 2(push 3(dup[5,4]))))))))))))))))))))))))))))
-start57 = pointer(notc(gre(sub(push 1(push 1(notc(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2[5,4])))))))))))))))
-start58 = roll(push 1(push 2(pop(roll(push 2(push 3(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2(pop(roll(push 1(push 2(mul(roll(push 1(push 4(dup(roll(push 2(push 3(dup[1,5]))))))))))))))))))))))))))))
-start59 = pointer(notc(gre(sub(push 1(push 1(notc(sub(push 1(roll(push 1(push 3(dup(roll(push 1(push 2(push y (push x stack)))))))))))))))))
diff --git a/img/Thumbs.db b/img/Thumbs.db
new file mode 100644 (file)
index 0000000..ca9c33b
Binary files /dev/null and b/img/Thumbs.db differ
diff --git a/semantic_functions.dcl b/semantic_functions.dcl
new file mode 100644 (file)
index 0000000..f198566
--- /dev/null
@@ -0,0 +1,3 @@
+definition module semantic_functions
+roll :: [Int] -> [Int]
+roll1 :: [Int] -> [Int]
\ No newline at end of file
diff --git a/semantic_functions.icl b/semantic_functions.icl
new file mode 100644 (file)
index 0000000..adf2ba2
--- /dev/null
@@ -0,0 +1,112 @@
+implementation module semantic_functions
+
+import StdInt, StdList
+
+d :: [Int] -> [Int]
+d [] = []
+d [a:rest] = rest
+
+e :: Int [Int] -> [Int]
+e a [] = [a]
+e a b = [a] ++ b
+
+add :: [Int] -> [Int]
+add [] = []
+add [a] = [a]
+add [a:b:rest] = [b+a:rest]
+
+sub :: [Int] -> [Int]
+sub [] = []
+sub [a] = [a]
+sub [a:b:rest] = [b-a:rest]
+
+mul :: [Int] -> [Int]
+mul [] = []
+mul [a] = [a]
+mul [a:b:rest] = [b*a:rest]
+
+div :: [Int] -> [Int]
+div [] = []
+div [a] = [a]
+div [a:b:rest] = [b/a:rest]
+
+modc :: [Int] -> [Int]
+modc[] = []
+modc[a] = [a]
+modc[a:b:rest] = [modulo b a:rest]
+
+dup :: [Int] -> [Int]
+dup[] = []
+dup[a:rest] = [a:a:rest]
+
+notc :: [Int] -> [Int]
+notc[] = []
+notc[0:rest] = [1:rest]
+notc[_:rest] = [0:rest]
+
+gre :: [Int] -> [Int]
+gre[] = []
+gre[a] = [a]
+gre[a:b:rest]
+|a >= b = [0:rest]
+|otherwise = [1:rest]
+
+roll :: [Int] -> [Int]
+roll [] = []
+roll [a] = [a]
+roll [a:b:rest]
+|modulo a b == 0 = rest
+|b <= 0 = rest
+|b > length rest = rest
+|a == 1 = roll1 [b:rest]
+|a > 0 = roll ([a-1] ++ [b] ++ roll1 [b:rest])
+|a < 0 = roll ([modulo a b] ++ [b:rest])
+
+roll1 :: [Int] -> [Int]
+roll1 [1:rest] = rest
+roll1 [b:c:d:rest] = [d] ++ roll1[b-1:c:rest]
+
+//outnum_so :: stack_output  stack -> stack_output
+outnum_so :: [Int] [Int] -> [Int]
+outnum_so so [] = so
+outnum_so so [a:rest] = add_to_s a so
+
+//innum_s :: stack_input  stack -> stack
+innum_s :: [Int] [Int] -> [Int]
+innum_s [] _ = []
+innum_s [a:rest] s = add_to_s a s
+
+//help functions
+modulo :: Int Int -> Int
+modulo a b
+|a<0 = modulo (a+b) b
+|a<b = a
+|otherwise = modulo (a-b) b
+
+add_to_s :: a [a] -> [a]
+add_to_s a [] = [a]
+add_to_s a b = b ++ [a]
+
+x = 5
+y = 1
+stack = []
+
+Start = vijffaculteit
+
+eenfaculteit = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2[1,1])))))))))))))))
+
+tweefaculteit = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 tweefaculteit1)))))))))))))))
+tweefaculteit1 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup tweefaculteit2))))))))))))))))))))))))))))
+tweefaculteit2 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(e 1 (e 2 stack)))))))))))))))))
+
+vijffaculteit = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 vijffaculteit1)))))))))))))))
+vijffaculteit1 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup vijffaculteit2))))))))))))))))))))))))))))
+vijffaculteit2 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 vijffaculteit3)))))))))))))))
+vijffaculteit3 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup vijffaculteit4))))))))))))))))))))))))))))
+vijffaculteit4 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 vijffaculteit5)))))))))))))))
+vijffaculteit5 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup vijffaculteit6))))))))))))))))))))))))))))
+vijffaculteit6 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2 vijffaculteit7)))))))))))))))
+vijffaculteit7 = roll(e 1(e 2(d(roll(e 2(e 3(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(d(roll(e 1(e 2(mul(roll(e 1(e 4(dup(roll(e 2(e 3(dup [1,5]))))))))))))))))))))))))))))
+//[1,5] is the outcome of vijffaculteit8, but it won't run if not substituted
+vijffaculteit8 = d(notc(gre(sub(e 1(e 1(notc(sub(e 1(roll(e 1(e 3(dup(roll(e 1(e 2(e y (e x stack)))))))))))))))))
+
diff --git a/semantic_functions.prj b/semantic_functions.prj
new file mode 100644 (file)
index 0000000..f034c2d
--- /dev/null
@@ -0,0 +1,239 @@
+Version: 1.4
+Global
+       ProjectRoot:    .
+       Built:  True
+       Target: StdEnv
+       Exec:   {Project}\semantic_functions.exe
+       CodeGen
+               CheckStacks:    False
+               CheckIndexes:   True
+       Application
+               HeapSize:       2097152
+               StackSize:      512000
+               ExtraMemory:    81920
+               IntialHeapSize: 204800
+               HeapSizeMultiplier:     4096
+               ShowExecutionTime:      False
+               ShowGC: False
+               ShowStackSize:  False
+               MarkingCollector:       False
+               StandardRuntimeEnv:     True
+               Profile
+                       Memory: False
+                       MemoryMinimumHeapSize:  0
+                       Time:   False
+                       Stack:  False
+               Output
+                       Output: ShowConstructors
+                       Font:   Courier
+                       FontSize:       9
+                       WriteStdErr:    False
+       Link
+               LinkMethod:     Static
+               GenerateRelocations:    False
+               GenerateLinkMap:        False
+               LinkResources:  False
+               ResourceSource: 
+               GenerateDLL:    False
+               ExportedNames:  
+       Paths
+               Path:   {Project}
+       Precompile:     
+       Postlink:       
+MainModule
+       Name:   semantic_functions
+       Dir:    {Project}
+       Compiler
+               NeverMemoryProfile:     False
+               NeverTimeProfile:       False
+               StrictnessAnalysis:     True
+               ListTypes:      StrictExportTypes
+               ListAttributes: True
+               Warnings:       True
+               Verbose:        True
+               ReadableABC:    False
+               ReuseUniqueNodes:       True
+               Fusion: False
+OtherModules
+       Module
+               Name:   StdArray
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdBool
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdChar
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdClass
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdEnum
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdInt
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdList
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdMisc
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdOverloaded
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdReal
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   StdString
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemArray
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
+       Module
+               Name:   _SystemEnum
+               Dir:    {Application}\Libraries\StdEnv
+               Compiler
+                       NeverMemoryProfile:     False
+                       NeverTimeProfile:       False
+                       StrictnessAnalysis:     True
+                       ListTypes:      StrictExportTypes
+                       ListAttributes: True
+                       Warnings:       True
+                       Verbose:        True
+                       ReadableABC:    False
+                       ReuseUniqueNodes:       True
+                       Fusion: False
diff --git a/semantic_functions.prp b/semantic_functions.prp
new file mode 100644 (file)
index 0000000..131e5bc
--- /dev/null
@@ -0,0 +1,78 @@
+Version: 1.4
+MainModule
+       Name:   semantic_functions
+       Dir:    {Project}
+       Dcl
+               WindowPosition
+                       X:      10
+                       Y:      10
+                       SizeX:  800
+                       SizeY:  640
+       DclOpen:        False
+       IclOpen:        True
+OtherModules
+       Module
+               Name:   StdArray
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdBool
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdChar
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdClass
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdEnum
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdInt
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdList
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdMisc
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdOverloaded
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdReal
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   StdString
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   _SystemArray
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
+       Module
+               Name:   _SystemEnum
+               Dir:    {Application}\Libraries\StdEnv
+               DclOpen:        False
+               IclOpen:        False
index 7812014..994aeb6 100644 (file)
@@ -9,7 +9,9 @@ Om deze redenen hebben we gekozen voor sos.\\
 Een toestand in onze semantiek wordt beschreven door drie stacks; input, output
 en programma. Respectievelijk benoemen we deze met $s_i, s_o, s$ en beschrijven
 ze de STDIN, STDOUT en interne stack van het programma.  Stacks worden
-gerepresenteerd als: $s=[e_0, e_1, \dots, e_n]$ waarbij $e_i\in\mathbb{Z}$\\
+gerepresenteerd als: $s=[e_0, e_1, \dots, e_n]$ waarbij $e_i\in\mathbb{Z}$
+ en waarbij het bovenste element op de stack gerepresenteerd word door het
+ eerste element in de lijst.\\
 Het transitie systeem zal twee verschillende transities kennen, namelijk:\\ 
 $\langle S, s_i, s_o, s\rangle\Rightarrow\langle S', s_i', s_o', s'\rangle$ en\\ 
 $\langle S, s_i, s_o, s\rangle\Rightarrow\langle s_i', s_o', s'\rangle$\\ 
@@ -30,7 +32,7 @@ Deze functie haalt het bovenste element van de stack en gooit deze weg.\\
 extend functie (e, r. 9):\\
 Om een stack uit te kunnen breiden met een element gebruiken we de volgende 
 functie:\\
-$$\mathcal{E} : Stack\rightarrow (\mathbb{Z} \rightarrow Stack)$$\\
+$$\mathcal{E} : \mathbb{Z}\rightarrow (Stack\rightarrow Stack)$$\\
 Deze functie neemt een stack en een integer en voegt de integer toe bovenop de 
 stack.\\
 
@@ -100,24 +102,25 @@ Deze functie haalt de bovenste twee elementen van de stack en stopt 1 bovenop
 de stack als het tweede bovenste element een hogere waarde heeft als dat van het 
 bovenste element. Anders word 1 bovenop de stack gestopt.\\ 
 
-pointer functie (pointer, r. 65):\\
-
-out number functie (outnum, r. 74):\\
-
-in number functie (innum, r. 83):\\
-
-
-
-
-
-(switch, outchar, inchar)\\
+out number (output stack) functie (outnum, r. 70):\\
+Deze functie past de output stack aan als er een integer naartoe geschreven word:\\
+$$\mathcal{OUTN_{SO}} : Stack \rightarrow Stack$$\\
+Deze functie haalt het bovenste element van de stack en stopt dit element bovenop de output stack.\\
 
+in number (stack) functie (innum, r. 75):\\
+Deze functie past de stack aan als er een integer naartoe geschreven word:\\
+$$\mathcal{INN_S} : Stack \rightarrow Stack$$\\
+Deze functie haalt het bovenste element van de input stack en stopt dit element bovenop de output stack.\\
 
 Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekregels opstellen:\\
 
-
-
 \begin{alignat*}{2}
+{[comp^1_{sos}]}\qquad &
+\frac{\langle S_2, s\rangle \Rightarrow \langle S'_2, s'\rangle}
+{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1;S'_2, s'\rangle}\\
+{[comp^2_{sos}]}\qquad &
+\frac{\langle S_2, s\rangle \Rightarrow \langle s'\rangle}
+{\langle S_1 ;S_2, s\rangle \Rightarrow \langle S_1, s'\rangle}\\
 {[pop_{sos}]}\qquad &
 \langle pop, s_i, s_o, s\rangle \Rightarrow
 \langle s_i, s_o,\mathcal{D}(s)\rangle\\
@@ -148,6 +151,9 @@ Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekreg
 {[pointer_{sos}]} \qquad &
 \langle pointer, s_i, s_o, s\rangle \Rightarrow
 \langle s_i, s_o, \mathcal{D}(s)\rangle\\
+{[switch_{sos}]} \qquad &
+\langle switch, s_i, s_o, s\rangle \Rightarrow
+\langle s_i, s_o, \mathcal{D}(s)\rangle\\
 {[push_{sos}]} \qquad &
 \langle push \: n, s_i, s_o, s\rangle \Rightarrow
 \langle s_i, s_o, \mathcal{E}(n,s)\rangle\\
@@ -156,18 +162,9 @@ Met behulp van deze gedefinieerde functies kunnen we nu de volgende semantiekreg
 \langle s_i, s_o, \mathcal{ROLL}(s)\rangle\\
 {[innum_{sos}]} \qquad &
 \langle innum, s_i, s_o, s\rangle \Rightarrow
-\langle \mathcal{INN_{SI}}(s_i), s_o, \mathcal{INN_S}(s)\rangle\\
+\langle \mathcal{D}(s_i), s_o, \mathcal{INN_S}(s)\rangle\\
 {[outnum_{sos}]} \qquad &
 \langle outnum, s_i, s_o, s\rangle \Rightarrow
-\langle s_i, \mathcal{OUTN_{SO}}(s_o),\mathcal{OUTN_S}(s)\rangle\\
-{[inchar_{sos}]} \qquad &
-\langle inchar, s_i, s_o, s\rangle \Rightarrow
-\langle s_i, s_o, s\rangle\\
-{[outchar_{sos}]} \qquad &
-\langle outchar, s_i, s_o, s\rangle \Rightarrow
-\langle s_i, s_o, s\rangle\\
-{[switch_{sos}]} \qquad &
-\langle switch, s_i, s_o, s\rangle \Rightarrow
-\langle s_i, s_o, s\rangle\\
+\langle s_i, \mathcal{OUTN_{SO}}(s_o),\mathcal{D}(s)\rangle\\
 \end{alignat*}
 
index 9f1809e..60f8767 100644 (file)
@@ -37,8 +37,19 @@ Om de notatie leesbaar en overzichtelijk te houden beschrijven we de syntax
 niet in de oorspronkelijke kleuren notatie maar gebruiken we een woordelijke
 notatie. Dan ziet de grammatica er als volgt uit:\\
 $S ::= S_1 ; S_2\ |\ push \: n\ |\ pop\ |\ add\ |\ subtract\
-|\ multiply\ |\ divide\ |\\mod\ |\ not\ |\ greater\
-|\ pointer\ |\ switch\ |\ duplicate\ |\ roll\ |\\
-inchar\ |\ innum\ |\ outchar\ |\ outnum$\\ 
+|\ multiply\ |\ divide\ |\mod\ |\\ not\ |\ greater\
+|\ pointer\ |\ switch\ |\ duplicate\ |\ roll\ |\
+innum\ |\ outnum$\\ 
 
-Waarbij $n \in \mathbb{N}_1$.
+Waarbij $n \in \mathbb{N}_1$.\\
+De commando's in(char) en out(char) worden hier niet behandeld.
+
+\subsection{Piet'}
+Omdat sommige simpele expressies in \textit{While} veel regels in beslag nemen 
+als deze omgeschreven zouden worden naar een semantisch equivalent programma 
+in de bovengenoemde tussentaal hebben we ook nog een tweede syntax: Piet'. 
+In Piet' worden de commando's die beschreven worden in de tussentaal aangegeven 
+door de eerste 3 letters van het commando, met uitzondering van het commando 
+\textit{push}. Voor het ophalen van een variabele zoals staat beschreven in 
+subsectie \ref{subsec:unair} gebruiken we ook \textit{get n}. De commando's 
+worden gescheiden door komma's inplaats van puntkomma's.
index 95e3e0b..64a58bd 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -1,4 +1,5 @@
 spelfouten!!
+uitleg bij tabel 4
 
 Mart:
 KLAAR variabelen opslag
@@ -12,9 +13,11 @@ annoteren Piet' programma in paint
 uitleg terminatie Piet' programma
 
 Marjolein:
-BEZIG wiskundige operaties op stacks definieren
-BEZIG onderscheid wiskundige deel
-BEZIG natuurlijke taal toevoegen voor semantiekbeschrijving
-BEZIG toevoegen functies/regels aan semantiek
-toepassen semantiekregels op faculteitsprogramma in Piet'
-verdere uitleg Piet'
+KLAAR wiskundige operaties op stacks definieren
+KLAAR onderscheid wiskundige deel
+KLAAR natuurlijke taal toevoegen voor semantiekbeschrijving
+KLAAR toevoegen functies/regels aan semantiek
+KLAAR toepassen semantiekregels op faculteitsprogramma in Piet'
+KLAAR? verdere uitleg Piet'
+inchar/outchar eventueel toevoegen aan semantiek (voor nu weggelaten)
+voor later: waarschijnlijk nog meer analyses in de vorm van afleidingsrijen toevoegen