summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comp/lucas-standen-NEA/writeup/coverpage.ms99
-rw-r--r--comp/lucas-standen-NEA/writeup/coverpage.ps1169
-rw-r--r--comp/lucas-standen-NEA/writeup/questions-for-amy.ps2
-rw-r--r--comp/lucas-standen-NEA/writeup/questions-for-rayn.ms13
-rw-r--r--comp/lucas-standen-NEA/writeup/questions-for-rayn.ps274
5 files changed, 924 insertions, 633 deletions
diff --git a/comp/lucas-standen-NEA/writeup/coverpage.ms b/comp/lucas-standen-NEA/writeup/coverpage.ms
index 4868180..98d3528 100644
--- a/comp/lucas-standen-NEA/writeup/coverpage.ms
+++ b/comp/lucas-standen-NEA/writeup/coverpage.ms
@@ -1,5 +1,7 @@
.TL
-NEA cover page
+The final solution
+
+To bad code
.AU
Lucas standen
.AI
@@ -8,7 +10,7 @@ Lucas standen
.NH 1
Reading this document
.LP
-This document is writen in roff and can be found online at
+This document is writen in roff and can be found online at:
https://github.com/standenboy/school/tree/master/comp/lucas-standen-NEA/writeup
@@ -152,7 +154,7 @@ https://harelang.org/
I think Zippy should have a strong emphasis on stability, much like Hare, to many times have I segfaulted due to a
tiny mistake. Zippy should also look to Hare small size, you can buy a copy of Hare on a
-.B "SINGLE 3 1/2'' FL.LPY"
+.B "SINGLE 3 1/2'' FLOLPY"
.LP
This is something I too should try to achieve.
@@ -185,9 +187,11 @@ My first client is a friend of mine, Amy C, she is a confident programmer who ha
complicated projects. I am choosing her as a client as she can give me technical feed back on my
project and its function/utility.
.NH 3
-Client 2, a technical user, but not a programmer
+Client 2, Rayn M
.LP
-some stuff about this person.
+Another friend of mine, Rayn M, is a technical computer user, however he does not know how to
+program at a high level. He will be a good client as he can show me how my language looks to
+some one who doesn't understand the inside workings, helping me design the structure of the code.
.NH 3
Client 3, a normie
.LP
@@ -493,17 +497,17 @@ feature that I will be implementing.
Objectives
.NH 3
An interpreter for the Zippy language
+.NH 3
+Linked list of AST's
+.LP
+All of a loaded program should be represented as a linked list of individual AST's, The developer
+should be able to access the AST for easy hacking. Functions can be represented as a pointer to
+another part of the list.
.NH 4
A lisp like syntax
.LP
This is to ensure the language can be parsed quickly, and is easy to write.
.NH 4
-A powerful abstract syntax tree
-.LP
-That the programmer can use to debug their code, and to allow for easy extensibility, the full tree
-should be a linked list of AST's each on being its own expression, a function will make a link
-between 2 nodes in the linked list of AST's.
-.NH 4
Immutable by default
.LP
The core to creating a safe language is immutability, forcing this makes it easy to write safe
@@ -595,7 +599,7 @@ https://www.raylib.com/
.NH 3
LSP
.LP
-A LSP (language server protocall), is used in code IDE's to auto complete code for you, I'd
+A LSP (language server protocol), is used in code IDE's to auto complete code for you, I'd
like one for zippy. Although I am unsure as to how to tackle this. I believe a program called
treesitter can be helpful for this.
.NH 3
@@ -610,7 +614,7 @@ Design
.NH 2
Language specification
.LP
-Like any other programing language zippy needs to have a defined syntax, as metioned in the
+Like any other programming language zippy needs to have a defined syntax, as mentioned in the
objectives section of Analysis, I want the language to follow a lisp like syntax.
I also believe higher order functions should be taken as standard and many core functions will use
@@ -632,19 +636,19 @@ u64 - unsigned integer of size 64 bits
char - single ascii code
.NH 4
-Advaced types
+Advanced types
.LP
function - a function that can be used
-struct - initilizer for an object
+struct - initializer for an object
-obj - instace of a struct
+obj - instance of a struct
-generic - should be avoided, removes checks for data types when inputing values to functions
-will cause many runtime errors, however when absolutely needed it is useful
+generic - should be avoided, removes checks for data types when inputting values to functions
+will cause many runtime errors, however when absolutely needed it is useful.
err - error type, can be given to terminate function to bring down the program, or have
-info drawn on the error
+info drawn on the error.
.NH 4
Arrays
@@ -653,7 +657,7 @@ Arrays can be show like so:
x:type[]
-With x being the vairable name, type being the type of variable, and [] showing its an array
+With x being the variable name, type being the type of variable, and [] showing its an array
All arrays are dynamic, represented by a linked list on the back end.
.NH 5
@@ -679,7 +683,7 @@ returntype.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
let
@@ -688,7 +692,7 @@ let
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
Creates constant x of type type to value.
@@ -697,11 +701,11 @@ set
.LP
(set x:type value)
-Creates/recreates the vairable value of x to value.
+Creates/recreates the variable value of x to value.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
if/elif/else
@@ -713,27 +717,27 @@ if/elif/else
(else function)
-Executes the function provided if the conditon is true.
+Executes the function provided if the condition is true.
-Elif works the same, exept only if the previous if statement is false.
+Elif works the same, except only if the previous if statement is false.
Else executes only if all previous statements were false.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
for
.LP
-(for i conditon function)
+(for i (condition) function)
Runs the function while the condition is true, and increments i every time the function
is called.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
@@ -745,7 +749,7 @@ Runs the function if the condition is true, keeps running until it is false.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
symbol
@@ -757,9 +761,9 @@ and the file path of the elf.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
-Can throw other errors, via returning an err type
+Can throw other errors, via returning an err type.
.NH 4
struct
@@ -775,10 +779,10 @@ struct
)
Returns a struct (a class) that can have a default value, the default value can be set
-using an underscore infront of the variable name. A default vairable will be returned
-if you use the struct without specifing a value.
+using an underscore in front of the variable name. A default variable will be returned
+if you use the struct without specifying a value.
-Use let to asign it a name:
+Use let to assign it a name:
(let a:struct (struct
@@ -792,7 +796,7 @@ Use let to asign it a name:
)
-Then to instatiate the stuct use the following:
+Then to instantiate the struct use the following:
(let a:obj struct)
@@ -802,13 +806,13 @@ To read from the struct use this:
(if (= a.num b.num) .... )
-Or if you have set a default value you can use the following
+Or if you have set a default value you can use the following:
(if (= a b.num) .... )
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
Arithmetic operations
@@ -842,7 +846,7 @@ All return true or false
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
cast
@@ -853,9 +857,9 @@ returns a but cast to data type type, which is a string.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
-Can throw errors, via err, if value can't be casted to given type
+Can throw errors, via err, if value can't be cast to a given type.
.NH 4
typeof
@@ -866,19 +870,18 @@ returns in a string the type that variable A is.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
terminate
.LP
(terminate error:error)
-Kills the program at the current point, frees all related memory, prints
-error info stored in error.
+Kills the program at the current point, frees all related memory, prints error info stored in error.
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
.NH 4
return
@@ -889,9 +892,11 @@ Must be used in defun, returns "a" from the function, "a" must be of the functio
.NH 5
Errors
.LP
-Can systax error.
+Can syntax error.
-Can throw erros via err.
+Can throw errors via err.
+.NH 3
+Questionare 2 for Rayn M
.NH 1
Technical Solution
diff --git a/comp/lucas-standen-NEA/writeup/coverpage.ps b/comp/lucas-standen-NEA/writeup/coverpage.ps
index 611a762..fef3b9c 100644
--- a/comp/lucas-standen-NEA/writeup/coverpage.ps
+++ b/comp/lucas-standen-NEA/writeup/coverpage.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.23.0
-%%CreationDate: Thu May 9 13:10:35 2024
+%%CreationDate: Mon May 13 12:58:04 2024
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Italic
%%+ font Times-Roman
@@ -272,381 +272,385 @@ def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 12/Times-Bold@0 SF(NEA co)264.462 123 Q -.12(ve)-.12 G 3(rp).12 G
-(age)-3 E/F1 10/Times-Italic@0 SF(Lucas standen)277.25 159 Q/F2 10
-/Times-Roman@0 SF(7949)296 177 Q F1(ABSTRA)282.535 213 Q(CT)-.3 E/F3 10
-/Times-Bold@0 SF 2.5(1. Reading)111 237 R(this document)2.5 E F2
-(This document is writen in rof)111 252.6 Q 2.5(fa)-.25 G
-(nd can be found online at)-2.5 E(https://github)111 276.6 Q
-(.com/standenbo)-.4 E
+/F0 12/Times-Bold@0 SF(The \214nal solution)261.318 123 Q 2.208 -1.104
+(To b)275.214 153 T(ad code)1.104 E/F1 10/Times-Italic@0 SF
+(Lucas standen)277.25 189 Q/F2 10/Times-Roman@0 SF(7949)296 207 Q F1
+(ABSTRA)282.535 243 Q(CT)-.3 E/F3 10/Times-Bold@0 SF 2.5(1. Reading)111
+267 R(this document)2.5 E F2(This document is writen in rof)111 282.6 Q
+2.5(fa)-.25 G(nd can be found online at:)-2.5 E(https://github)111 306.6
+Q(.com/standenbo)-.4 E
(y/school/tree/master/comp/lucas-standen-NEA/writeup)-.1 E .714
-(It is using the ms macro of trof)111 300.6 R .714
+(It is using the ms macro of trof)111 330.6 R .714
(f. It can be compiled using the Mak)-.25 F .713(e\214le, or mak)-.1 F
.713(e.sh. A table of)-.1 F .454(contents has been generated using pdft\
-ocgen, it is embedded into the pdf, most pdf readers ha)111 312.6 R -.15
-(ve)-.2 G 2.5(ab)111 324.6 S(utton to open it \(\214refox has it in the\
+ocgen, it is embedded into the pdf, most pdf readers ha)111 342.6 R -.15
+(ve)-.2 G 2.5(ab)111 354.6 S(utton to open it \(\214refox has it in the\
top left, in zathura press tab to vie)-2.7 E 2.5(wi)-.25 G(t\).)-2.5 E
-2.676(An)111 348.6 S .176(ote on formating of the rof)-2.676 F .176
+2.676(An)111 378.6 S .176(ote on formating of the rof)-2.676 F .176
(f, the te)-.25 F .175
(xt is limited to 100 characters per line and is writen in plan)-.15 F
-.22(ascii, no utf8 emojis and the lik)111 360.6 R .22
+.22(ascii, no utf8 emojis and the lik)111 390.6 R .22
(e. Code snippets are left in plain te)-.1 F .22
-(xt, and the full section of code)-.15 F(the)111 372.6 Q 2.89(ya)-.15 G
+(xt, and the full section of code)-.15 F(the)111 402.6 Q 2.89(ya)-.15 G
.39(re from should be link)-2.89 F .39(ed abo)-.1 F .69 -.15(ve t)-.15 H
.39(hem; assuming the).15 F 2.89(ya)-.15 G .39
-(re from a \214le and not a small e)-2.89 F(xam-)-.15 E(ple.)111 384.6 Q
-F3 2.5(2. Analysis)111 420.6 R 2.5(2.1. The)111 444.6 R(curr)2.5 E
-(ent pr)-.18 E(oblem)-.18 E F2 -.15(Fo)111 460.2 S 2.545(rg).15 G .045
+(re from a \214le and not a small e)-2.89 F(xam-)-.15 E(ple.)111 414.6 Q
+F3 2.5(2. Analysis)111 450.6 R 2.5(2.1. The)111 474.6 R(curr)2.5 E
+(ent pr)-.18 E(oblem)-.18 E F2 -.15(Fo)111 490.2 S 2.545(rg).15 G .045
(eneral small and simple projects, I write in C. Ho)-2.545 F(we)-.25 E
-.15(ve)-.25 G 2.545(rt).15 G .046(his leads to hours of deb)-2.545 F
-.046(ugging due)-.2 F .089(to se)111 472.2 R(gf)-.15 E .088(aults, and \
+.046(ugging due)-.2 F .089(to se)111 502.2 R(gf)-.15 E .088(aults, and \
memory leaks. Due to the languages manual memory management the program\
--)-.1 F .564(mer is required to kno)111 484.2 R 3.064(ws)-.25 G 3.064
+-)-.1 F .564(mer is required to kno)111 514.2 R 3.064(ws)-.25 G 3.064
(om)-3.064 G .564(uch information about the hardw)-3.064 F .565(are the)
-.1 F 3.065(yw)-.15 G .565(rite for)-3.065 F 3.065(,a)-.4 G .565
-(nd the second)-3.065 F(an)111 496.2 Q(ything goes wrong, it is v)-.15 E
+(nd the second)-3.065 F(an)111 526.2 Q(ything goes wrong, it is v)-.15 E
(ague on ho)-.25 E 2.5(wt)-.25 G 2.5<6f8c>-2.5 G 2.5(xt)-2.5 G(hings.)
--2.5 E F3 2.5(In)111 520.2 S(eed a language that stops me fr)-2.5 E
-(om shooting myself in the f)-.18 E(oot)-.25 E F2 2.585(Ch)111 544.2 S
+-2.5 E F3 2.5(In)111 550.2 S(eed a language that stops me fr)-2.5 E
+(om shooting myself in the f)-.18 E(oot)-.25 E F2 2.585(Ch)111 574.2 S
.084(as been standard for man)-2.585 F 2.584(yd)-.15 G .084(ecades no)
-2.584 F 2.584(wa)-.25 G .084(nd its age is sho)-2.584 F .084
(wing, it lacks man)-.25 F 2.584(ym)-.15 G .084(odern features)-2.584 F
-(lik)111 556.2 Q 2.605(eO)-.1 G(OP)-2.605 E 2.605(,o)-1.11 G 2.605(rh)
+(lik)111 586.2 Q 2.605(eO)-.1 G(OP)-2.605 E 2.605(,o)-1.11 G 2.605(rh)
-2.605 G .105(igher le)-2.605 F -.15(ve)-.25 G 2.605(lf).15 G .105
(unctional abstractions, that ha)-2.605 F .405 -.15(ve b)-.2 H .105
(ecome common in modern years due).15 F 1.304
-(to there helpfulness. This is not to f)111 568.2 R 1.303(ault C')-.1 F
+(to there helpfulness. This is not to f)111 598.2 R 1.303(ault C')-.1 F
3.803(sa)-.55 G(chie)-3.803 E -.15(ve)-.25 G 1.303(ments either).15 F
3.803(,t)-.4 G 1.303(he language is my personal)-3.803 F .659
-(choice for most projects for a reason, it')111 580.2 R 3.159(sf)-.55 G
+(choice for most projects for a reason, it')111 610.2 R 3.159(sf)-.55 G
.659(ast and po)-3.259 F .66(werful; an)-.25 F 3.16(ys)-.15 G .66
(olution I mak)-3.16 F 3.16(es)-.1 G .66(hould not cut)-3.16 F(that a)
-111 592.2 Q -.1(wa)-.15 G -.65(y.).1 G F3 2.5(2.2. A)111 628.2 R
-(solution)2.5 E/F4 10/Times-BoldItalic@0 SF(Zippy LANG)111.61 643.8 Q F2
-3.379(An)111 667.8 S -.15(ex)-3.379 G 3.379(tg).15 G .879
+111 622.2 Q -.1(wa)-.15 G -.65(y.).1 G F3 2.5(2.2. A)111 658.2 R
+(solution)2.5 E/F4 10/Times-BoldItalic@0 SF(Zippy LANG)111.61 673.8 Q F2
+3.379(An)111 697.8 S -.15(ex)-3.379 G 3.379(tg).15 G .879
(eneration language, for general use. Designed for k)-3.379 F .878
-(eeping code simple, neat and read-)-.1 F 3.306(able. It)111 679.8 R
+(eeping code simple, neat and read-)-.1 F 3.306(able. It)111 709.8 R
.807(will be similar to functional languages, kno)3.306 F .807
(wn for there strict ability to k)-.25 F .807(eep code safe)-.1 F .224
-(and practical. The language should be interpreted lik)111 691.8 R 2.724
+(and practical. The language should be interpreted lik)111 721.8 R 2.724
(ep)-.1 G .224(ython, perl and lisp, to allo)-2.824 F 2.723(wf)-.25 G
-.223(or easy de-)-2.723 F -.2(bu)111 703.8 S(gging tools.).2 E
-(The goal of Zipp)111 727.8 Q 2.5(yi)-.1 G 2.5(st)-2.5 G 2.5(om)-2.5 G
-(ak)-2.5 E 2.5(ec)-.1 G(odding easier)-2.5 E 2.5(,w)-.4 G
-(hile remaining f)-2.5 E(ast, with a interpreter writen in C.)-.1 E 0 Cg
-EP
+.223(or easy de-)-2.723 F 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-2-)300.17 48 Q/F1 10/Times-Bold@0 SF 2.5
-(2.3. What)111 84 R(is a pr)2.5 E(ogramming language)-.18 E 2.5
-(2.3.1. A)111 108 R -.1(ve)2.5 G(ry simple explanation).1 E F0 .247
-(At its lo)111 123.6 R .247
+/F0 10/Times-Roman@0 SF(-2-)300.17 48 Q -.2(bu)111 84 S(gging tools.).2
+E(The goal of Zipp)111 108 Q 2.5(yi)-.1 G 2.5(st)-2.5 G 2.5(om)-2.5 G
+(ak)-2.5 E 2.5(ec)-.1 G(odding easier)-2.5 E 2.5(,w)-.4 G
+(hile remaining f)-2.5 E(ast, with a interpreter writen in C.)-.1 E/F1
+10/Times-Bold@0 SF 2.5(2.3. What)111 144 R(is a pr)2.5 E
+(ogramming language)-.18 E 2.5(2.3.1. A)111 168 R -.1(ve)2.5 G
+(ry simple explanation).1 E F0 .247(At its lo)111 183.6 R .247
(west de\214nition a PL is a set of speci\214c w)-.25 F .247
(ords, that when gi)-.1 F -.15(ve)-.25 G 2.747(nt).15 G 2.747(oac)-2.747
-G .247(omputer in the right)-2.747 F 1.109(order ha)111 135.6 R 1.409
+G .247(omputer in the right)-2.747 F 1.109(order ha)111 195.6 R 1.409
-.15(ve a r)-.2 H 1.109(eproducible beha).15 F(viour)-.2 E 3.609(.Am)
-.55 G 1.109(ore human w)-3.609 F 1.109(ay of saying that, w)-.1 F 1.108
(ould be its ho)-.1 F 3.608(ww)-.25 G(e)-3.608 E(control computers.)111
-147.6 Q F1 2.5(2.3.2. Wh)111 171.6 R 2.5(ya)-.15 G .36 -.18(re t)-2.5 H
+207.6 Q F1 2.5(2.3.2. Wh)111 231.6 R 2.5(ya)-.15 G .36 -.18(re t)-2.5 H
(her).18 E 2.5(es)-.18 G 2.5(om)-2.5 G(any)-2.5 E F0 .21
(When someone is looking at code it can often be seen as just that, ho)
-111 187.2 R(we)-.25 E -.15(ve)-.25 G 2.711(rt).15 G .211
-(here are hundreds of)-2.711 F .558(languages that all tak)111 199.2 R
+111 247.2 R(we)-.25 E -.15(ve)-.25 G 2.711(rt).15 G .211
+(here are hundreds of)-2.711 F .558(languages that all tak)111 259.2 R
3.058(et)-.1 G .558(he idea of "code" in v)-3.058 F .557(ery dif)-.15 F
.557(ferent w)-.25 F .557(ays. Some are designed for speci\214c)-.1 F
-(hardw)111 211.2 Q .87(are, some are designed for making general use pr\
-ograms while others are highly special-)-.1 F 2.696(ized. It)111 223.2 R
+(hardw)111 271.2 Q .87(are, some are designed for making general use pr\
+ograms while others are highly special-)-.1 F 2.696(ized. It)111 283.2 R
.196(is important to see "code", as more than just one o)2.696 F -.15
(ve)-.15 G .196(rarching term and instead see where).15 F
-(the code is being used, and e)111 235.2 Q -.25(va)-.25 G
-(luate it from that.).25 E F1 2.5(2.4. Resear)111 283.2 R
+(the code is being used, and e)111 295.2 Q -.25(va)-.25 G
+(luate it from that.).25 E F1 2.5(2.4. Resear)111 343.2 R
(ching, and getting a scope of the pr)-.18 E(oject)-.18 E F0 .263
-(Before I start to design a language i should \214rst \214nd e)111 298.8
+(Before I start to design a language i should \214rst \214nd e)111 358.8
R .264(xamples of others and \214nd what i w)-.15 F .264(ant my)-.1 F
-(language to be lik)111 310.8 Q(e.)-.1 E(I')111 334.8 Q 3.659(dl)-.5 G
+(language to be lik)111 370.8 Q(e.)-.1 E(I')111 394.8 Q 3.659(dl)-.5 G
(ik)-3.659 E 3.659(em)-.1 G 3.658(yl)-3.659 G 1.158
(anguage to feel modern so i should tak)-3.658 F 3.658(ei)-.1 G 1.158
(nspiration from what other modern lan-)-3.658 F .067(guages do, ho)111
-346.8 R(we)-.25 E -.15(ve)-.25 G 2.568(ro).15 G 2.568(nt)-2.568 G .068
+406.8 R(we)-.25 E -.15(ve)-.25 G 2.568(ro).15 G 2.568(nt)-2.568 G .068
(he back)-2.568 F .068(ed i w)-.1 F .068
(ant my language to be stable and f)-.1 F .068
-(ast, for that i should look)-.1 F(at older projects.)111 358.8 Q F1 2.5
-(2.4.1. Examples)111 394.8 R(of older similar pr)2.5 E(ojects, that ar)
+(ast, for that i should look)-.1 F(at older projects.)111 418.8 Q F1 2.5
+(2.4.1. Examples)111 454.8 R(of older similar pr)2.5 E(ojects, that ar)
-.18 E 2.5(eag)-.18 G(ood base f)-2.5 E(or my language)-.25 E 2.5
-(2.4.1.1. Python)111 418.8 R F0 .535(Python is a high le)111 434.4 R
+(2.4.1.1. Python)111 478.8 R F0 .535(Python is a high le)111 494.4 R
-.15(ve)-.25 G 3.034(lO).15 G .534(OP language that w)-3.034 F .534
(as designed in 1991. It w)-.1 F .534(as made to mak)-.1 F 3.034(ep)-.1
G(rogram-)-3.034 E .644
-(ming easy while still being able to use some of C')111 446.4 R 3.144
+(ming easy while still being able to use some of C')111 506.4 R 3.144
(sf)-.55 G .644(unctions. Although it has become standard)-3.144 F
-(for man)111 458.4 Q 2.5(yu)-.15 G(se cases, it is slo)-2.5 E 2.5(wa)
+(for man)111 518.4 Q 2.5(yu)-.15 G(se cases, it is slo)-2.5 E 2.5(wa)
-.25 G(nd inef)-2.5 E(\214cient, and v)-.25 E(ery bloated.)-.15 E
-(https://www)111 482.4 Q(.p)-.65 E(ython.or)-.1 E(g/)-.18 E(Zipp)111
-506.4 Q 3.395(ys)-.1 G .895(hould tak)-3.395 F 3.395(ep)-.1 G .895
+(https://www)111 542.4 Q(.p)-.65 E(ython.or)-.1 E(g/)-.18 E(Zipp)111
+566.4 Q 3.395(ys)-.1 G .895(hould tak)-3.395 F 3.395(ep)-.1 G .895
(ythons high le)-3.495 F -.15(ve)-.25 G 3.395(la).15 G .895
(bstractions, as the)-3.395 F 3.395(ym)-.15 G(ak)-3.395 E 3.395(ep)-.1 G
.895(rogramming v)-3.395 F .895(ery easy and it)-.15 F
-(should try and tak)111 518.4 Q 2.5(en)-.1 G
+(should try and tak)111 578.4 Q 2.5(en)-.1 G
(otes from its libraries as the)-2.5 E 2.5(ya)-.15 G
(re mostly well written, and well documented.)-2.5 E F1 2.5
-(2.4.1.2. Lisp)111 542.4 R F0 .976(Lisp is the second e)111 558 R -.15
+(2.4.1.2. Lisp)111 602.4 R F0 .976(Lisp is the second e)111 618 R -.15
(ve)-.25 G 3.476(rp).15 G .976(rogramming language, de)-3.476 F -.15(ve)
-.25 G .976(loped at MiT).15 F 3.476(,i)-.74 G 3.476(ti)-3.476 G 3.476
(st)-3.476 G .976(he \214rst functional lan-)-3.476 F .844
-(guage, creating man)111 570 R 3.344(yc)-.15 G .844(ommon features lik)
+(guage, creating man)111 630 R 3.344(yc)-.15 G .844(ommon features lik)
-3.344 F 3.343(eh)-.1 G .843(igher order functions, recursion, and g)
-3.343 F .843(arbage col-)-.05 F .499
-(lection. It is generally not used an)111 582 R 2.999(ym)-.15 G .5
+(lection. It is generally not used an)111 642 R 2.999(ym)-.15 G .5
(ore as it feels old compared to other functional languages,)-2.999 F
-(lik)111 594 Q 2.5(eO)-.1 G(caml or Hask)-2.5 E(ell.)-.1 E
-(https://lisp-lang.or)111 618 Q(g/)-.18 E(Zipp)111 642 Q 3.393(ys)-.1 G
+(lik)111 654 Q 2.5(eO)-.1 G(caml or Hask)-2.5 E(ell.)-.1 E
+(https://lisp-lang.or)111 678 Q(g/)-.18 E(Zipp)111 702 Q 3.393(ys)-.1 G
.893(hould try to tak)-3.393 F 3.393(ea)-.1 G .893
(lot from the syntax of lisp, \(\) mak)-3.393 F 3.392(ei)-.1 G 3.392(te)
--3.392 G .892(asy to see what parts of code)-3.392 F(will ef)111 654 Q
-(fect what, and mak)-.25 E 2.5(et)-.1 G(hings easy to parse.)-2.5 E F1
-2.5(2.4.1.3. P)111 678 R(erl)-.2 E F0 .607(Perl is scripting language d\
-esigned for use in linux, when bash is too slo)111 693.6 R 1.907 -.65
-(w, o)-.25 H 3.108(rn).65 G .608(ot suited for the)-3.108 F(job)111
-705.6 Q 3.414(.P)-.4 G .914
-(erl is often described as the glue of the uni)-3.414 F -.15(ve)-.25 G
-.913(rse \(see xkcd https://3d.xkcd.com/224/\).).15 F(Its)5.913 E
-(syntax is quite strange ho)111 717.6 Q(we)-.25 E -.15(ve)-.25 G 2.5(ra)
-.15 G(nd it is slo)-2.5 E 1.3 -.65(w. M)-.25 H
-(aking it poorly suited to).65 E -.1(wa)-.25 G(rds general use.).1 E 0
-Cg EP
+-3.392 G .892(asy to see what parts of code)-3.392 F(will ef)111 714 Q
+(fect what, and mak)-.25 E 2.5(et)-.1 G(hings easy to parse.)-2.5 E 0 Cg
+EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-3-)300.17 48 Q(https://www)111 84 Q(.perl.or)
--.65 E(g/)-.18 E(Zipp)111 108 Q 3.082(ys)-.1 G .582(hould tak)-3.082 F
-3.082(ef)-.1 G .583(rom perls minimalism, it is a small language that i\
-s of a similar size to bash)-3.082 F .407
-(or zsh, while feeling closer to p)111 120 R .406(ython. If zipp)-.1 F
-2.906(yc)-.1 G .406(an achie)-2.906 F .706 -.15(ve a s)-.25 H .406
-(imilar small size, while remaining).15 F(po)111 132 Q
-(werful I will be happ)-.25 E -.65(y.)-.1 G/F1 10/Times-Bold@0 SF 2.5
-(2.4.2. Examples)111 168 R(of new similar pr)2.5 E(ojects that ar)-.18 E
-2.5(ea)-.18 G(lso a good base)-2.5 E 2.5(2.4.2.1. Gleam)111 192 R F0
+/F0 10/Times-Roman@0 SF(-3-)300.17 48 Q/F1 10/Times-Bold@0 SF 2.5
+(2.4.1.3. P)111 84 R(erl)-.2 E F0 .607(Perl is scripting language desig\
+ned for use in linux, when bash is too slo)111 99.6 R 1.907 -.65(w, o)
+-.25 H 3.108(rn).65 G .608(ot suited for the)-3.108 F(job)111 111.6 Q
+3.414(.P)-.4 G .914(erl is often described as the glue of the uni)-3.414
+F -.15(ve)-.25 G .913(rse \(see xkcd https://3d.xkcd.com/224/\).).15 F
+(Its)5.913 E(syntax is quite strange ho)111 123.6 Q(we)-.25 E -.15(ve)
+-.25 G 2.5(ra).15 G(nd it is slo)-2.5 E 1.3 -.65(w. M)-.25 H
+(aking it poorly suited to).65 E -.1(wa)-.25 G(rds general use.).1 E
+(https://www)111 147.6 Q(.perl.or)-.65 E(g/)-.18 E(Zipp)111 171.6 Q
+3.082(ys)-.1 G .582(hould tak)-3.082 F 3.082(ef)-.1 G .583(rom perls mi\
+nimalism, it is a small language that is of a similar size to bash)
+-3.082 F .407(or zsh, while feeling closer to p)111 183.6 R .406
+(ython. If zipp)-.1 F 2.906(yc)-.1 G .406(an achie)-2.906 F .706 -.15
+(ve a s)-.25 H .406(imilar small size, while remaining).15 F(po)111
+195.6 Q(werful I will be happ)-.25 E -.65(y.)-.1 G F1 2.5
+(2.4.2. Examples)111 231.6 R(of new similar pr)2.5 E(ojects that ar)-.18
+E 2.5(ea)-.18 G(lso a good base)-2.5 E 2.5(2.4.2.1. Gleam)111 255.6 R F0
.052(Gleam is a modern language releasing in the past 5 years. It is hi\
-ghly functional, with no mutable)111 207.6 R .432(data, no traditional \
+ghly functional, with no mutable)111 271.2 R .432(data, no traditional \
loops. Instead recursion can be used to replace alot of these features.)
-111 219.6 R(Gleam)5.432 E .453
-(compiles to erlang/Beam bytecode, much lik)111 231.6 R 2.954(ej)-.1 G
+111 283.2 R(Gleam)5.432 E .453
+(compiles to erlang/Beam bytecode, much lik)111 295.2 R 2.954(ej)-.1 G
-.2(av)-2.954 G 2.954(at)-.05 G 2.954(ot)-2.954 G .454
(he jvm, and doing this has made Gleam a)-2.954 F
(highly scalable language with good library support out the box.)111
-243.6 Q(https://gleam.run/)111 267.6 Q(Zipp)111 291.6 Q 2.891(ys)-.1 G
+307.2 Q(https://gleam.run/)111 331.2 Q(Zipp)111 355.2 Q 2.891(ys)-.1 G
.391(hould tak)-2.891 F 2.891(ef)-.1 G .391
(rom the functional elements of Gleam, as the)-2.891 F 2.89(yk)-.15 G
.39(eep programs safer)-2.99 F 2.89(,h)-.4 G -.25(ow)-2.89 G -2.15 -.25
-(ev e).25 H(r).25 E(Zipp)111 303.6 Q 2.5(ys)-.1 G(hould not remo)-2.5 E
+(ev e).25 H(r).25 E(Zipp)111 367.2 Q 2.5(ys)-.1 G(hould not remo)-2.5 E
.3 -.15(ve a)-.15 H(ll procedural elements, as for loops are v).15 E
-(ery helpful)-.15 E F1 2.5(2.4.2.2. Hask)111 327.6 R(ell)-.1 E F0(Hask)
-111 343.2 Q .912(ell is another modern functional language kno)-.1 F
+(ery helpful)-.15 E F1 2.5(2.4.2.2. Hask)111 391.2 R(ell)-.1 E F0(Hask)
+111 406.8 Q .912(ell is another modern functional language kno)-.1 F
.913(wn for being v)-.25 F .913(ery complicated, ho)-.15 F(we)-.25 E
--.15(ve)-.25 G 3.413(ri).15 G(n-)-3.413 E(credibly po)111 355.2 Q
+-.15(ve)-.25 G 3.413(ri).15 G(n-)-3.413 E(credibly po)111 418.8 Q
(werful. Its syntax feels v)-.25 E
-(ery mathematical, and incredibly terse.)-.15 E(https://www)111 379.2 Q
-(.hask)-.65 E(ell.or)-.1 E(g/)-.18 E .225(Perhaps Zipp)111 403.2 R 2.725
+(ery mathematical, and incredibly terse.)-.15 E(https://www)111 442.8 Q
+(.hask)-.65 E(ell.or)-.1 E(g/)-.18 E .225(Perhaps Zipp)111 466.8 R 2.725
(yc)-.1 G .225(ould learn from Hask)-2.725 F .225(ell, as it pro)-.1 F
.224(vides functional and procedural elements, mak-)-.15 F
-(ing it a well rounded language)111 415.2 Q F1 2.5(2.4.2.3. Har)111
-439.2 R(e)-.18 E F0 .701(Hare w)111 454.8 R .701(as designed to be a 10\
+(ing it a well rounded language)111 478.8 Q F1 2.5(2.4.2.3. Har)111
+502.8 R(e)-.18 E F0 .701(Hare w)111 518.4 R .701(as designed to be a 10\
0 year language, and thus stability is its main goal, it is not set to)
--.1 F(ha)111 466.8 Q .49 -.15(ve a s)-.2 H .19(yntax change an).15 F
+-.1 F(ha)111 530.4 Q .49 -.15(ve a s)-.2 H .19(yntax change an).15 F
2.69(yt)-.15 G .189
(ime soon, and it has strong emphasis on memory safety)-2.69 F 2.689(.I)
-.65 G 2.689<748c>-2.689 G .189(ts into the)-2.689 F
(same part of the tech stack as C, and thus it can be used for some v)
-111 478.8 Q(ery lo)-.15 E 2.5(wl)-.25 G -2.15 -.25(ev e)-2.5 H 2.5(lw)
-.25 G(ork.)-2.6 E(https://harelang.or)111 502.8 Q(g/)-.18 E 3.173(It)111
-526.8 S .673(hink Zipp)-3.173 F 3.173(ys)-.1 G .673(hould ha)-3.173 F
+111 542.4 Q(ery lo)-.15 E 2.5(wl)-.25 G -2.15 -.25(ev e)-2.5 H 2.5(lw)
+.25 G(ork.)-2.6 E(https://harelang.or)111 566.4 Q(g/)-.18 E 3.173(It)111
+590.4 S .673(hink Zipp)-3.173 F 3.173(ys)-.1 G .673(hould ha)-3.173 F
.973 -.15(ve a s)-.2 H .673(trong emphasis on stability).15 F 3.174(,m)
-.65 G .674(uch lik)-3.174 F 3.174(eH)-.1 G .674(are, to man)-3.174 F
-3.174(yt)-.15 G .674(imes ha)-3.174 F .974 -.15(ve I)-.2 H(se)111 538.8
+3.174(yt)-.15 G .674(imes ha)-3.174 F .974 -.15(ve I)-.2 H(se)111 602.4
Q(gf)-.15 E .547(aulted due to a tin)-.1 F 3.046(ym)-.15 G(istak)-3.046
E .546(e. Zipp)-.1 F 3.046(ys)-.1 G .546
(hould also look to Hare small size, you can b)-3.046 F .546(uy a cop)
--.2 F(y)-.1 E(of Hare on a)111 550.8 Q F1(SINGLE 3 1/2')111 574.8 Q 2.5
-('F)-.63 G(L.LPY)-2.5 E F0(This is something I too should try to achie)
-111 602.4 Q -.15(ve)-.25 G(.).15 E F1 2.5(2.4.3. What)111 638.4 R
+-.2 F(y)-.1 E(of Hare on a)111 614.4 Q F1(SINGLE 3 1/2')111 638.4 Q 2.5
+('F)-.63 G(LOLPY)-2.5 E F0(This is something I too should try to achie)
+111 666 Q -.15(ve)-.25 G(.).15 E F1 2.5(2.4.3. What)111 702 R
(should be tak)2.5 E(en away fr)-.1 E(om these languages?)-.18 E F0
-2.721(Iw)111 654 S .221(as already leaning to)-2.821 F -.1(wa)-.25 G
+2.721(Iw)111 717.6 S .221(as already leaning to)-2.821 F -.1(wa)-.25 G
.221(rds functional programming when I started this project ho).1 F(we)
-.25 E -.15(ve)-.25 G 2.722(rn).15 G .722 -.25(ow I)-2.722 H(belie)111
-666 Q .994 -.15(ve i)-.25 H(t').15 E 3.194(st)-.55 G .694
+729.6 Q .994 -.15(ve i)-.25 H(t').15 E 3.194(st)-.55 G .694
(he only option for producing safe applications. Zipp)-3.194 F 3.193(yw)
--.1 G .693(ill be a functional language)-3.193 F
-(with a strong emphasis on recursion.)111 678 Q 2.861(Ia)111 702 S .361
-(lso belie)-2.861 F .661 -.15(ve t)-.25 H .361(hat I should tak).15 F
-2.861(es)-.1 G .361
-(ize of the interpreter into account, as this is important for k)-2.861
-F(eep-)-.1 E(ing the project manageable and consistent.)111 714 Q 0 Cg
-EP
+-.1 G .693(ill be a functional language)-3.193 F 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-4-)300.17 48 Q .916(And \214nally I think that\
- syntax should be inspired by Lisp, although Lisp itself can be a messy)
-111 84 R .197
-(language, with the right changes I am con\214dent that I can mak)111 96
-R 2.698(eaa)-.1 G(ttracti)-2.698 E .498 -.15(ve l)-.25 H .198
-(anguage for the 21st).15 F(century)111 108 Q(.)-.65 E/F1 10
-/Times-Bold@0 SF 2.5(2.5. Clients)111 144 R F0 .057
-(In a project of this nature, the Client is e)111 159.6 R -.15(ve)-.25 G
+/F0 10/Times-Roman@0 SF(-4-)300.17 48 Q
+(with a strong emphasis on recursion.)111 84 Q 2.861(Ia)111 108 S .361
+(lso belie)-2.861 F .661 -.15(ve t)-.25 H .361(hat I should tak).15 F
+2.861(es)-.1 G .361
+(ize of the interpreter into account, as this is important for k)-2.861
+F(eep-)-.1 E(ing the project manageable and consistent.)111 120 Q .916(\
+And \214nally I think that syntax should be inspired by Lisp, although \
+Lisp itself can be a messy)111 144 R .197
+(language, with the right changes I am con\214dent that I can mak)111
+156 R 2.698(eaa)-.1 G(ttracti)-2.698 E .498 -.15(ve l)-.25 H .198
+(anguage for the 21st).15 F(century)111 168 Q(.)-.65 E/F1 10
+/Times-Bold@0 SF 2.5(2.5. Clients)111 204 R F0 .057
+(In a project of this nature, the Client is e)111 219.6 R -.15(ve)-.25 G
.057(ry programmer ali).15 F -.15(ve)-.25 G 2.557(;w).15 G .056
(hich is a pretty lar)-2.557 F .056(ge scope.)-.18 F -.8(To)5.056 G
-(narro)111 171.6 Q 2.948(wt)-.25 G .448(his do)-2.948 F .449
+(narro)111 231.6 Q 2.948(wt)-.25 G .448(his do)-2.948 F .449
(wn as much as possible, I will intervie)-.25 F 2.949(was)-.25 G .449
(mall handful of people throughout the)-2.949 F(project, of dif)111
-183.6 Q(ferent skill le)-.25 E -.15(ve)-.25 G(ls.).15 E F1 2.5
-(2.5.1. Client)111 219.6 R(1, Amy C)2.5 E F0 1.032(My \214rst client is\
+243.6 Q(ferent skill le)-.25 E -.15(ve)-.25 G(ls.).15 E F1 2.5
+(2.5.1. Client)111 279.6 R(1, Amy C)2.5 E F0 1.032(My \214rst client is\
a friend of mine, Amy C, she is a con\214dent programmer who has compl\
-eted)111 235.2 R(man)111 247.2 Q 2.864(yc)-.15 G .365
+eted)111 295.2 R(man)111 307.2 Q 2.864(yc)-.15 G .365
(omplicated projects. I am choosing her as a client as she can gi)-2.864
F .665 -.15(ve m)-.25 H 2.865(et).15 G .365(echnical feed back)-2.865 F
-(on my project and its function/utility)111 259.2 Q(.)-.65 E F1 2.5
-(2.5.2. Client)111 283.2 R(2, a technical user)2.5 E 2.5(,b)-.92 G
-(ut not a pr)-2.7 E(ogrammer)-.18 E F0(some stuf)111 298.8 Q 2.5(fa)-.25
-G(bout this person.)-2.5 E F1 2.5(2.5.3. Client)111 322.8 R(3, a normie)
-2.5 E F0(some stuf)111 338.4 Q 2.5(fa)-.25 G(bout ho)-2.5 E 2.5(wt)-.25
-G(he normie \214nds the completed project.)-2.5 E F1 2.5(2.5.4. Client)
-111 362.4 R(4, myself)2.5 E F0(I')111 378 Q .587 -.15(ve w)-.5 H .287
-(anted to tak).05 F 2.787(eo)-.1 G .287(ut a project lik)-2.787 F 2.786
-(et)-.1 G .286
+(on my project and its function/utility)111 319.2 Q(.)-.65 E F1 2.5
+(2.5.2. Client)111 343.2 R(2, Rayn M)2.5 E F0 .161
+(Another friend of mine, Rayn M, is a technical computer user)111 358.8
+R 2.66(,h)-.4 G -.25(ow)-2.66 G -2.15 -.25(ev e).25 H 2.66(rh).25 G 2.66
+(ed)-2.66 G .16(oes not kno)-2.66 F 2.66(wh)-.25 G .66 -.25(ow t)-2.66 H
+(o).25 E .589(program at a high le)111 370.8 R -.15(ve)-.25 G .589
+(l. He will be a good client as he can sho).15 F 3.09(wm)-.25 G 3.09(eh)
+-3.09 G 1.09 -.25(ow m)-3.09 H 3.09(yl).25 G .59(anguage looks to)-3.09
+F 1.234(some one who doesn')111 382.8 R 3.734(tu)-.18 G 1.234
+(nderstand the inside w)-3.734 F 1.233
+(orkings, helping me design the structure of the)-.1 F(code.)111 394.8 Q
+F1 2.5(2.5.3. Client)111 418.8 R(3, a normie)2.5 E F0(some stuf)111
+434.4 Q 2.5(fa)-.25 G(bout ho)-2.5 E 2.5(wt)-.25 G
+(he normie \214nds the completed project.)-2.5 E F1 2.5(2.5.4. Client)
+111 458.4 R(4, myself)2.5 E F0(I')111 474 Q .586 -.15(ve w)-.5 H .286
+(anted to tak).05 F 2.786(eo)-.1 G .286(ut a project lik)-2.786 F 2.786
+(et)-.1 G .287
(his for a long long time, and this is the perfect opportunity)-2.786 F
-1.067(to do so, I will be assessing myself along the w)111 390 R 1.067
-(ay of this, b)-.1 F 1.068(uilding the project to my personal)-.2 F
-(speci\214cation.)111 402 Q F1 2.5(2.6. Questionnair)111 438 R(es)-.18 E
+1.067(to do so, I will be assessing myself along the w)111 486 R 1.067
+(ay of this, b)-.1 F 1.067(uilding the project to my personal)-.2 F
+(speci\214cation.)111 498 Q F1 2.5(2.6. Questionnair)111 534 R(es)-.18 E
F0 .565(It is important to get feedback from end users, so I will tak)
-111 453.6 R 3.064(em)-.1 G .564(ultiple questionnaires throughout)-3.064
+111 549.6 R 3.065(em)-.1 G .565(ultiple questionnaires throughout)-3.065
F .399(the project. I will then use them to slightly edit the requireme\
-nts of my project this should mak)111 465.6 R(e)-.1 E
-(the \214nal outcome more helpful and what people w)111 477.6 Q(ant.)-.1
-E(In the section bello)111 501.6 Q 2.5(wy)-.25 G
+nts of my project this should mak)111 561.6 R(e)-.1 E
+(the \214nal outcome more helpful and what people w)111 573.6 Q(ant.)-.1
+E(In the section bello)111 597.6 Q 2.5(wy)-.25 G
(ou will \214nd questionnaires from the analyses stage of my project.)
--2.5 E F1 2.5(2.6.1. Questionnair)111 525.6 R 2.5(e1f)-.18 G(or Amy C)
--2.75 E/F2 10/Times-BoldItalic@0 SF([30th April 2024])111.87 549.6 Q
+-2.5 E F1 2.5(2.6.1. Questionnair)111 621.6 R 2.5(e1f)-.18 G(or Amy C)
+-2.75 E/F2 10/Times-BoldItalic@0 SF([30th April 2024])111.87 645.6 Q
(answ)3.81 E(ered by Amy)-.1 E 2.5(,s)-.37 G(ee pull request she left)
--2.5 E F1 2.5(2.6.1.1. What)111 573.6 R(do y)2.5 E
+-2.5 E F1 2.5(2.6.1.1. What)111 669.6 R(do y)2.5 E
(ou \214nd the most important in a language? \(eg: speed, r)-.25 E
-(eadability\))-.18 E F0(Speed, readability)111 589.2 Q 2.5(,d)-.65 G(eb)
+(eadability\))-.18 E F0(Speed, readability)111 685.2 Q 2.5(,d)-.65 G(eb)
-2.5 E(ugging ease and disk space ef)-.2 E(\214cienc)-.25 E -.65(y.)-.15
-G F1 3.168(2.6.1.2. What)111 613.2 R .668(tools ar)3.168 F 3.168(ei)-.18
-G .668(mportant f)-3.168 F .668(or a language to ha)-.25 F -.1(ve)-.25 G
-3.167(?\().1 G .667(eg: pkg-manager)-3.167 F 3.167(,I)-.92 G .667
-(DE integra-)-3.167 F(tion\))111 625.2 Q F0 .224(IDE inte)111 640.8 R
-.224(gration \(things lik)-.15 F 2.724(et)-.1 G .224
-(ab complete and deb)-2.724 F .224(ugging tools\), a package manager)-.2
-F 2.725(,a)-.4 G .225(nd the abil-)-2.725 F
-(ity to interact with the user through the command line easily)111 652.8
-Q(.)-.65 E F1 3.364(2.6.1.3. What)111 676.8 R(featur)3.363 E .863
-(es do y)-.18 F .863(ou lik)-.25 F 3.363(ef)-.1 G -.18(ro)-3.363 G 3.363
-(mo).18 G .863(ther languages \(eg: C')-3.363 F 3.363(sa)-.37 G(dv)
--3.363 E .863(anced memory man-)-.1 F(agement, hask)111 688.8 Q(ell')-.1
-E 2.5(st)-.37 G(erse syntax\))-2.5 E F0 .621(The ability to pass the me\
-mory reference of an object or function and a collection of b)111 704.4
-R .621(uilt-in or)-.2 F(standard functions lik)111 716.4 Q 2.5(e")-.1 G
-(print", "split", or "sort".)-2.5 E 0 Cg EP
+G F1 3.167(2.6.1.2. What)111 709.2 R .667(tools ar)3.167 F 3.167(ei)-.18
+G .668(mportant f)-3.167 F .668(or a language to ha)-.25 F -.1(ve)-.25 G
+3.168(?\().1 G .668(eg: pkg-manager)-3.168 F 3.168(,I)-.92 G .668
+(DE integra-)-3.168 F(tion\))111 721.2 Q 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-5-)300.17 48 Q/F1 10/Times-Bold@0 SF 2.5
-(2.6.1.4. What)111 84 R(do y)2.5 E(ou want to pr)-.25 E
+/F0 10/Times-Roman@0 SF(-5-)300.17 48 Q .225(IDE inte)111 84 R .225
+(gration \(things lik)-.15 F 2.725(et)-.1 G .224(ab complete and deb)
+-2.725 F .224(ugging tools\), a package manager)-.2 F 2.724(,a)-.4 G
+.224(nd the abil-)-2.724 F
+(ity to interact with the user through the command line easily)111 96 Q
+(.)-.65 E/F1 10/Times-Bold@0 SF 3.363(2.6.1.3. What)111 120 R(featur)
+3.363 E .863(es do y)-.18 F .863(ou lik)-.25 F 3.363(ef)-.1 G -.18(ro)
+-3.363 G 3.363(mo).18 G .863(ther languages \(eg: C')-3.363 F 3.363(sa)
+-.37 G(dv)-3.363 E .863(anced memory man-)-.1 F(agement, hask)111 132 Q
+(ell')-.1 E 2.5(st)-.37 G(erse syntax\))-2.5 E F0 .621(The ability to p\
+ass the memory reference of an object or function and a collection of b)
+111 147.6 R .62(uilt-in or)-.2 F(standard functions lik)111 159.6 Q 2.5
+(e")-.1 G(print", "split", or "sort".)-2.5 E F1 2.5(2.6.1.4. What)111
+183.6 R(do y)2.5 E(ou want to pr)-.25 E
(ogram in this language \(eg: websites, lo)-.18 E 2.5(wl)-.1 G -2.3 -.15
(ev e)-2.5 H 2.5(ls).15 G(ystems\))-2.5 E F0
-(Lightweight command line tools and web back ends.)111 99.6 Q F1 2.5
-(2.6.1.5. Do)111 123.6 R -.25(yo)2.5 G 2.5(ui).25 G
+(Lightweight command line tools and web back ends.)111 199.2 Q F1 2.5
+(2.6.1.5. Do)111 223.2 R -.25(yo)2.5 G 2.5(ui).25 G
(ntend to use graphics in the pr)-2.5 E(ograms y)-.18 E(ou write?)-.25 E
-F0(No.)111 139.2 Q F1 2.5(2.6.1.6. W)111 163.2 R(ould y)-.75 E(ou pr)
+F0(No.)111 238.8 Q F1 2.5(2.6.1.6. W)111 262.8 R(ould y)-.75 E(ou pr)
-.25 E(efer a language that f)-.18 E(ocuses on ease of use, or po)-.25 E
-(wer of the code?)-.1 E F0 2.5(Il)111 178.8 S(ik)-2.5 E 2.5(eag)-.1 G
+(wer of the code?)-.1 E F0 2.5(Il)111 278.4 S(ik)-2.5 E 2.5(eag)-.1 G
(ood balance between the tw)-2.5 E(o.)-.1 E F1 2.5(2.6.1.7. What)111
-202.8 R(wer)2.5 E 2.5(ey)-.18 G(our last 3 pr)-2.75 E
+302.4 R(wer)2.5 E 2.5(ey)-.18 G(our last 3 pr)-2.75 E
(ojects? \(could they ha)-.18 E .2 -.1(ve b)-.25 H
-(een written in Zippy?\)).1 E F0 3.854(Aw)111 218.4 S 1.354
-(ebsite, a small command-line tool and a midi k)-3.854 F -.15(ey)-.1 G
-1.353(board \(program runs on a Raspberry Pi).15 F(Pico\).)111 230.4 Q
-F1 3.39(2.6.1.8. Ho)111 254.4 R 3.39(wm)-.1 G .89(any languages w)-3.39
-F .89(ould y)-.1 F .891(ou use on a single pr)-.25 F .891
-(oject? \(could Zippy be used in)-.18 F -.25(yo)111 266.4 S
-(ur codebase?\)).25 E F0 2.5(It)111 282 S
+(een written in Zippy?\)).1 E F0 3.853(Aw)111 318 S 1.353
+(ebsite, a small command-line tool and a midi k)-3.853 F -.15(ey)-.1 G
+1.354(board \(program runs on a Raspberry Pi).15 F(Pico\).)111 330 Q F1
+3.391(2.6.1.8. Ho)111 354 R 3.391(wm)-.1 G .891(any languages w)-3.391 F
+.891(ould y)-.1 F .891(ou use on a single pr)-.25 F .89
+(oject? \(could Zippy be used in)-.18 F -.25(yo)111 366 S
+(ur codebase?\)).25 E F0 2.5(It)111 381.6 S
(ry to use as little languages in a project as possible, so lik)-2.5 E
(ely not in an e)-.1 E(xisting project.)-.15 E F1 2.5(2.6.1.9. Do)111
-306 R -.25(yo)2.5 G 2.5(uc).25 G(ar)-2.5 E 2.5(ef)-.18 G(or lo)-2.75 E
+405.6 R -.25(yo)2.5 G 2.5(uc).25 G(ar)-2.5 E 2.5(ef)-.18 G(or lo)-2.75 E
2.5(wl)-.1 G -2.3 -.15(ev e)-2.5 H 2.5(lc).15 G(ontr)-2.5 E(ol, or w)
-.18 E(ould y)-.1 E(ou pr)-.25 E(efer high le)-.18 E -.1(ve)-.15 G 2.5
-(la).1 G(bstractions?)-2.5 E F0 3.08(It)111 321.6 S .58(hink lo)-3.08 F
-(w-le)-.25 E -.15(ve)-.25 G 3.08(lc).15 G .58(ontrol is v)-3.08 F .579
-(ery important, b)-.15 F .579(ut high-le)-.2 F -.15(ve)-.25 G 3.079(la)
-.15 G .579(bstractions are con)-3.079 F -.15(ve)-.4 G .579
-(nient, so a good).15 F(balance between the tw)111 333.6 Q 2.5(oi)-.1 G
-2.5(sb)-2.5 G(est.)-2.5 E F1 4.18(2.6.1.10. W)111 357.6 R 1.68(ould y)
+(la).1 G(bstractions?)-2.5 E F0 3.079(It)111 421.2 S .579(hink lo)-3.079
+F(w-le)-.25 E -.15(ve)-.25 G 3.079(lc).15 G .579(ontrol is v)-3.079 F
+.579(ery important, b)-.15 F .579(ut high-le)-.2 F -.15(ve)-.25 G 3.079
+(la).15 G .579(bstractions are con)-3.079 F -.15(ve)-.4 G .58
+(nient, so a good).15 F(balance between the tw)111 433.2 Q 2.5(oi)-.1 G
+2.5(sb)-2.5 G(est.)-2.5 E F1 4.181(2.6.1.10. W)111 457.2 R 1.681(ould y)
-.75 F 1.681(ou be happy to de)-.25 F -.1(ve)-.15 G 1.681
-(lop libraries f).1 F 1.681(or things that ar)-.25 F 1.681(en't alr)-.18
-F 1.681(eady imple-)-.18 F(mented \(eg: an SQL library\))111 369.6 Q F0
-(Potentially if it is simple enough to implement ne)111 385.2 Q 2.5(wt)
--.25 G(hings.)-2.5 E F1 2.5(2.6.2. Notes)111 421.2 R(fr)2.5 E
-(om questionnair)-.18 E 2.5(e1)-.18 G F0 .155(Some of the k)111 436.8 R
+(lop libraries f).1 F 1.681(or things that ar)-.25 F 1.68(en't alr)-.18
+F 1.68(eady imple-)-.18 F(mented \(eg: an SQL library\))111 469.2 Q F0
+(Potentially if it is simple enough to implement ne)111 484.8 Q 2.5(wt)
+-.25 G(hings.)-2.5 E F1 2.5(2.6.2. Notes)111 520.8 R(fr)2.5 E
+(om questionnair)-.18 E 2.5(e1)-.18 G F0 .155(Some of the k)111 536.4 R
.455 -.15(ey t)-.1 H .155(hings that I'm taking a).15 F -.1(wa)-.15 G
2.655(yf).1 G .155
(rom this \214rst questionnaire, are my client/users ini-)-2.655 F .719
-(tial needs and use cases. I think it')111 448.8 R 3.219(sc)-.55 G .719
+(tial needs and use cases. I think it')111 548.4 R 3.219(sc)-.55 G .719
(lear my language can be of assistance to my client, Zipp)-3.219 F(y)-.1
E .698(will be a good language for web back ends and small command line\
- tools, which my client e)111 460.8 R(x-)-.15 E(pressed interested in.)
-111 472.8 Q 2.563<498c>111 496.8 S .063(nd the f)-2.563 F .063
+ tools, which my client e)111 560.4 R(x-)-.15 E(pressed interested in.)
+111 572.4 Q 2.564<498c>111 596.4 S .064(nd the f)-2.564 F .064
(act my client is w)-.1 F .064(orried by e)-.1 F -.15(xe)-.15 G .064
-(cutable size interesting, ho).15 F(we)-.25 E -.15(ve)-.25 G 2.564(rId)
-.15 G .064(oubt it will be an is-)-2.564 F
-(sue; a ballooning code-base is unlik)111 508.8 Q
-(ely as only one person is writing the project.)-.1 E 2.56(Ia)111 532.8
+(cutable size interesting, ho).15 F(we)-.25 E -.15(ve)-.25 G 2.564(rI)
+.15 G .063(doubt it will be an is-)-.001 F
+(sue; a ballooning code-base is unlik)111 608.4 Q
+(ely as only one person is writing the project.)-.1 E 2.56(Ia)111 632.4
S 2.56(ma)-2.56 G .06(lso taking on the f)-2.56 F .06
(act that my client w)-.1 F .06
(ants good command line tools, so a pkg-manager and)-.1 F -.2(bu)111
-544.8 S(ndler should be a priority).2 E 2.5(,p)-.65 G(erhaps the)-2.5 E
+644.4 S(ndler should be a priority).2 E 2.5(,p)-.65 G(erhaps the)-2.5 E
2.5(yc)-.15 G(ould be written in Zipp)-2.5 E 2.5(ya)-.1 G
-(fter the interpreter is done.)-2.5 E F1 2.5(2.7. The)111 580.8 R
+(fter the interpreter is done.)-2.5 E F1 2.5(2.7. The)111 680.4 R
(\214rst elements of the pr)2.5 E(oject)-.18 E F0(At this stage I can s\
-ay that I'm con\214dent in my project and its scope. I ha)111 596.4 Q .3
--.15(ve a g)-.2 H(oal in mind for it.).15 E F1(The k)111 620.4 Q
+ay that I'm con\214dent in my project and its scope. I ha)111 696 Q .3
+-.15(ve a g)-.2 H(oal in mind for it.).15 E F1(The k)111 720 Q
(ey things to tak)-.1 E 2.5(ea)-.1 G(way fr)-2.5 E(om this section ar)
--.18 E(e:)-.18 E(----)111 644.4 Q F0(Mak)2.5 E 2.5(eah)-.1 G(igh le)-2.5
-E -.15(ve)-.25 G 2.5(ll).15 G
-(anguage with a useable set of features, to replace C in man)-2.5 E 2.5
-(ys)-.15 G(ituations.)-2.5 E F1(----)111 668.4 Q F0 -.25(Ke)2.5 G
-(ep the language readable and easy).25 E 2.5(,w)-.65 G(ith po)-2.5 E
-(werful tools a)-.25 E -.25(va)-.2 G(ilable.).25 E F1(----)111 692.4 Q
-F0(Ensure the language is well supported with tools lik)2.5 E 2.5(eap)
--.1 G(kg-manager)-2.5 E(.)-.55 E F1 2.5(2.8. Moddeling)111 728.4 R 0 Cg
-EP
+-.18 E(e:)-.18 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-6-)300.17 48 Q .044(In lar)111 84 R .044(ger p\
-rojects, when a programmer needs a data structure that the language the)
--.18 F 2.545(ya)-.15 G .045(re writing in)-2.545 F(doesn')111 96 Q 2.5
-(tp)-.18 G(ro)-2.5 E(vide, the)-.15 E 2.5(yw)-.15 G(ill need to mak)-2.5
-E 2.5(et)-.1 G(heir o)-2.5 E(wn.)-.25 E(Bello)111 120 Q 2.5(wa)-.25 G
-(re a fe)-2.5 E 2.5(we)-.25 G
-(xamples of these data structures that C doesn')-2.65 E 2.5(ta)-.18 G
-(lready pro)-2.5 E(vide.)-.15 E/F1 10/Times-Bold@0 SF 2.5(2.8.1. Link)
-111 144 R(ed lists)-.1 E F0 .966(this is an alternati)111 159.6 R 1.266
--.15(ve i)-.25 H .966
+/F0 10/Times-Roman@0 SF(-6-)300.17 48 Q/F1 10/Times-Bold@0 SF(----)111
+84 Q F0(Mak)2.5 E 2.5(eah)-.1 G(igh le)-2.5 E -.15(ve)-.25 G 2.5(ll).15
+G(anguage with a useable set of features, to replace C in man)-2.5 E 2.5
+(ys)-.15 G(ituations.)-2.5 E F1(----)111 108 Q F0 -.25(Ke)2.5 G
+(ep the language readable and easy).25 E 2.5(,w)-.65 G(ith po)-2.5 E
+(werful tools a)-.25 E -.25(va)-.2 G(ilable.).25 E F1(----)111 132 Q F0
+(Ensure the language is well supported with tools lik)2.5 E 2.5(eap)-.1
+G(kg-manager)-2.5 E(.)-.55 E F1 2.5(2.8. Moddeling)111 168 R F0 .045
+(In lar)111 183.6 R .044(ger projects, when a programmer needs a data s\
+tructure that the language the)-.18 F 2.544(ya)-.15 G .044
+(re writing in)-2.544 F(doesn')111 195.6 Q 2.5(tp)-.18 G(ro)-2.5 E
+(vide, the)-.15 E 2.5(yw)-.15 G(ill need to mak)-2.5 E 2.5(et)-.1 G
+(heir o)-2.5 E(wn.)-.25 E(Bello)111 219.6 Q 2.5(wa)-.25 G(re a fe)-2.5 E
+2.5(we)-.25 G(xamples of these data structures that C doesn')-2.65 E 2.5
+(ta)-.18 G(lready pro)-2.5 E(vide.)-.15 E F1 2.5(2.8.1. Link)111 243.6 R
+(ed lists)-.1 E F0 .965(this is an alternati)111 259.2 R 1.265 -.15
+(ve i)-.25 H .966
(mplementation of a list, where you store some data, and the memory ad-)
-.15 F .568(dress to the ne)111 171.6 R .568(xt node. Then you can mo)
--.15 F .868 -.15(ve t)-.15 H .569
+.15 F .569(dress to the ne)111 271.2 R .569(xt node. Then you can mo)
+-.15 F .868 -.15(ve t)-.15 H .568
(hrough the list by reading the data then reading the).15 F
-(data of the ne)111 183.6 Q(xt node, and then repeating until the 'ne)
--.15 E(xt' part of the node is empty)-.15 E(.)-.65 E 2.5(Ad)111 207.6 S
+(data of the ne)111 283.2 Q(xt node, and then repeating until the 'ne)
+-.15 E(xt' part of the node is empty)-.15 E(.)-.65 E 2.5(Ad)111 307.2 S
(iagram sho)-2.5 E(wing this can be seen here:)-.25 E 14 14 109 109 -44
-44 251.5 275.6 PBEGIN
+44 251.5 375.2 PBEGIN
%%BeginDocument: linkedlist.ps
%!PS-Adobe-3.0
%%Creator: GIMP PostScript file plug-in V 1.17 by Peter Kirchgessner
@@ -1487,78 +1491,78 @@ end
%%EndDocument
end PEND 1.106
(In C this is easy to implement as you can \214nd a memory address v)111
-303.2 R 1.105(ery easily with '&' to \214nd)-.15 F .168
-(where a bit of data is stored. I will need to use a ')111 315.2 R .168
-(struct', which is a bit lik)-.55 F 2.669(eac)-.1 G .169(lass in C \(ho)
--2.669 F(we)-.25 E -.15(ve)-.25 G(r).15 E(you can')111 327.2 Q 2.5(ta)
+402.8 R 1.106(ery easily with '&' to \214nd)-.15 F .168
+(where a bit of data is stored. I will need to use a ')111 414.8 R .168
+(struct', which is a bit lik)-.55 F 2.668(eac)-.1 G .168(lass in C \(ho)
+-2.668 F(we)-.25 E -.15(ve)-.25 G(r).15 E(you can')111 426.8 Q 2.5(ta)
-.18 G(ttach a function to it\). A simple implementation looks lik)-2.5
-E 2.5(et)-.1 G(his:)-2.5 E(typedef struct ll {)111 351.2 Q -.2(vo)136
-375.2 S(id *data; // the data of the node).2 E(ll *ne)136 399.2 Q
-(xt; // the ne)-.15 E(xt node)-.15 E 2.5(}l)111 423.2 S(l;)-2.5 E .623
-(The pro')111 447.2 R 3.123(so)-.55 G 3.123(fal)-3.123 G(ink)-3.123 E
-.623(ed list are the f)-.1 F .623(act that the)-.1 F 3.122(yc)-.15 G
-.622(an ha)-3.122 F .922 -.15(ve d)-.2 H .622
+E 2.5(et)-.1 G(his:)-2.5 E(typedef struct ll {)111 450.8 Q -.2(vo)136
+474.8 S(id *data; // the data of the node).2 E(ll *ne)136 498.8 Q
+(xt; // the ne)-.15 E(xt node)-.15 E 2.5(}l)111 522.8 S(l;)-2.5 E .622
+(The pro')111 546.8 R 3.122(so)-.55 G 3.122(fal)-3.122 G(ink)-3.122 E
+.622(ed list are the f)-.1 F .622(act that the)-.1 F 3.123(yc)-.15 G
+.623(an ha)-3.123 F .923 -.15(ve d)-.2 H .623
(ata appended to the start or end easily).15 F
-(by changing the root node, or the ne)111 459.2 Q(xt node.)-.15 E(Link)
-111 483.2 Q 1.117(ed lists ha)-.1 F 1.417 -.15(ve a f)-.2 H 1.617 -.25
+(by changing the root node, or the ne)111 558.8 Q(xt node.)-.15 E(Link)
+111 582.8 Q 1.118(ed lists ha)-.1 F 1.417 -.15(ve a f)-.2 H 1.617 -.25
(ew d).15 H -.25(ow).25 G 1.117(nsides, for e).25 F 1.117
(xample you can')-.15 F 3.617(tm)-.18 G 1.417 -.15(ove t)-3.617 H 1.117
-(hrough them backw).15 F 1.118(ards, and)-.1 F
-(unless you store it on its o)111 495.2 Q
+(hrough them backw).15 F 1.117(ards, and)-.1 F
+(unless you store it on its o)111 594.8 Q
(wn, you cant \214nd the length of it in a f)-.25 E(ast w)-.1 E(ay)-.1 E
-(.)-.65 E .476(In my project I w)111 519.2 R .476(ould lik)-.1 F 2.976
-(et)-.1 G 2.976(ou)-2.976 G .476(se link)-2.976 F .475
+(.)-.65 E .475(In my project I w)111 618.8 R .475(ould lik)-.1 F 2.975
+(et)-.1 G 2.975(ou)-2.975 G .475(se link)-2.975 F .476
(ed list in the AST \(see later sections for info\), and to store)-.1 F
-(lists in the language.)111 531.2 Q F1 2.5(2.8.2. Dictionaries)111 555.2
-R F0 3.511(Ad)111 570.8 S 1.011(ictionary is a simple data structure th\
-at just stores, a bit of data, and a number or string to)-3.511 F
-(identify it.)111 582.8 Q 2.5(Ad)5 G(ictionary lik)-2.5 E 2.5(eal)-.1 G
+(lists in the language.)111 630.8 Q F1 2.5(2.8.2. Dictionaries)111 654.8
+R F0 3.512(Ad)111 670.4 S 1.011(ictionary is a simple data structure th\
+at just stores, a bit of data, and a number or string to)-3.512 F
+(identify it.)111 682.4 Q 2.5(Ad)5 G(ictionary lik)-2.5 E 2.5(eal)-.1 G
(ink)-2.5 E(ed list can be implemented with a struct in c lik)-.1 E 2.5
-(es)-.1 G(o:)-2.5 E(typedef struct dict {)111 606.8 Q -.2(vo)136 630.8 S
-(id *data; // the data of the dict).2 E(int id; // the id of the dict)
-136 654.8 Q 2.5(}d)111 678.8 S(ict;)-2.5 E .462
-(In my project I think I could use a link)111 702.8 R .461
-(ed list represent a zipp)-.1 F 2.961(yv)-.1 G .461
-(ariable and an ID that i can use)-3.211 F
-(to identify it, this could mak)111 714.8 Q 2.5(ee)-.1 G -.15(xe)-2.65 G
-(cution f).15 E(aster as i can compare ID')-.1 E 2.5(sr)-.55 G
-(ather than string v)-2.5 E(alues)-.25 E 0 Cg EP
+(es)-.1 G(o:)-2.5 E(typedef struct dict {)111 706.4 Q -.2(vo)136 730.4 S
+(id *data; // the data of the dict).2 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-7-)300.17 48 Q/F1 10/Times-Bold@0 SF 2.5
-(2.9. Pr)111 84 R(ototyping hard featur)-.18 E(es)-.18 E 2.5
-(2.9.1. Abstract)111 108 R(Syntax T)2.5 E -.18(re)-.74 G
-(es \(AST\) theory).18 E F0 .69(In a programming language man)111 123.6
-R 3.19(ya)-.15 G .691(bstract data types will be used to allo)-3.19 F
-3.191(wt)-.25 G .691(he code to e)-3.191 F -.15(xe)-.15 G(cute,).15 E
-(ho)111 135.6 Q(we)-.25 E -.15(ve)-.25 G 3.698(rIt).15 G 1.197(hink the\
- hardest part of this is an abstract syntax tree. This is a data struct\
-ure that)-3.698 F .376
-(holds the code in an ordered form that can be analysed and e)111 147.6
-R -.15(xe)-.15 G .377(cuted in a simple w).15 F(ay)-.1 E 2.877(.I)-.65 G
-2.877(ti)-2.877 G 2.877(sat)-2.877 G(ree)-2.877 E .247
-(structure, with the top node being a root and all lo)111 159.6 R .247
-(wer nodes being things needed to calculate the)-.25 F .824
-(root. It can be used not only for code b)111 171.6 R .825
-(ut also for mathematical e)-.2 F .825(xpressions. I think the easiest)
--.15 F -.1(wa)111 183.6 S 2.5(yt).1 G 2.5(os)-2.5 G(ho)-2.5 E 2.5(wi)
+/F0 10/Times-Roman@0 SF(-7-)300.17 48 Q(int id; // the id of the dict)
+136 84 Q 2.5(}d)111 108 S(ict;)-2.5 E .461
+(In my project I think I could use a link)111 132 R .461
+(ed list represent a zipp)-.1 F 2.962(yv)-.1 G .462
+(ariable and an ID that i can use)-3.212 F
+(to identify it, this could mak)111 144 Q 2.5(ee)-.1 G -.15(xe)-2.65 G
+(cution f).15 E(aster as i can compare ID')-.1 E 2.5(sr)-.55 G
+(ather than string v)-2.5 E(alues)-.25 E/F1 10/Times-Bold@0 SF 2.5
+(2.9. Pr)111 180 R(ototyping hard featur)-.18 E(es)-.18 E 2.5
+(2.9.1. Abstract)111 204 R(Syntax T)2.5 E -.18(re)-.74 G
+(es \(AST\) theory).18 E F0 .691(In a programming language man)111 219.6
+R 3.191(ya)-.15 G .691(bstract data types will be used to allo)-3.191 F
+3.19(wt)-.25 G .69(he code to e)-3.19 F -.15(xe)-.15 G(cute,).15 E(ho)
+111 231.6 Q(we)-.25 E -.15(ve)-.25 G 3.697(rIt).15 G 1.197(hink the har\
+dest part of this is an abstract syntax tree. This is a data structure \
+that)-3.697 F .377
+(holds the code in an ordered form that can be analysed and e)111 243.6
+R -.15(xe)-.15 G .376(cuted in a simple w).15 F(ay)-.1 E 2.876(.I)-.65 G
+2.876(ti)-2.876 G 2.876(sat)-2.876 G(ree)-2.876 E .247
+(structure, with the top node being a root and all lo)111 255.6 R .247
+(wer nodes being things needed to calculate the)-.25 F .825
+(root. It can be used not only for code b)111 267.6 R .825
+(ut also for mathematical e)-.2 F .824(xpressions. I think the easiest)
+-.15 F -.1(wa)111 279.6 S 2.5(yt).1 G 2.5(os)-2.5 G(ho)-2.5 E 2.5(wi)
-.25 G 2.5(ti)-2.5 G 2.5(sv)-2.5 G(ia a mathematical e)-2.5 E(xample)
--.15 E -.8(Ta)111 207.6 S .2 -.1(ke t).8 H(he follo).1 E 2.5(we)-.25 G
+-.15 E -.8(Ta)111 303.6 S .2 -.1(ke t).8 H(he follo).1 E 2.5(we)-.25 G
(xpression for e)-2.65 E(xample:)-.15 E
-(\(1 + \(10 * \(3 - \(2 * 4\)\)\)\))111 231.6 Q 1.6 -.8(We k)111 255.6 T
-(no).8 E 2.5(wt)-.25 G(hat this is equal to -49)-2.5 E(Ho)111 279.6 Q
-(we)-.25 E -.15(ve)-.25 G 2.917(rf).15 G .417(or a computer this is f)
--2.917 F .416
+(\(1 + \(10 * \(3 - \(2 * 4\)\)\)\))111 327.6 Q 1.6 -.8(We k)111 351.6 T
+(no).8 E 2.5(wt)-.25 G(hat this is equal to -49)-2.5 E(Ho)111 375.6 Q
+(we)-.25 E -.15(ve)-.25 G 2.916(rf).15 G .416(or a computer this is f)
+-2.916 F .416
(ar harder to understand. This is because it has no understanding)-.1 F
-(of order of operation)111 291.6 Q 1.6 -.8(To s)111 315.6 T(olv).8 E 2.5
-(et)-.15 G(his we use an AST \(abstract syntax tree\))-2.5 E .187
-(When you solv)111 339.6 R 2.687(et)-.15 G .187(hat e)-2.687 F .187
+(of order of operation)111 387.6 Q 1.6 -.8(To s)111 411.6 T(olv).8 E 2.5
+(et)-.15 G(his we use an AST \(abstract syntax tree\))-2.5 E .188
+(When you solv)111 435.6 R 2.688(et)-.15 G .187(hat e)-2.688 F .187
(xpression you kno)-.15 F 2.687(wt)-.25 G 2.687(os)-2.687 G .187
(tart with \(2 * 4\), then 3 - the answer to that and so)-2.687 F(on)111
-351.6 Q 1.6 -.8(We c)111 375.6 T(an represent the steps as a tree lik).8
-E 2.5(es)-.1 G(o:)-2.5 E 14 14 50 50 -87 87 281 486.6 PBEGIN
+447.6 Q 1.6 -.8(We c)111 471.6 T(an represent the steps as a tree lik).8
+E 2.5(es)-.1 G(o:)-2.5 E 14 14 50 50 -87 87 281 582.6 PBEGIN
%%BeginDocument: ast.ps
%!PS-Adobe-3.0
%%Creator: GIMP PostScript file plug-in V 1.17 by Peter Kirchgessner
@@ -2680,399 +2684,394 @@ end
%%EOF
%%EndDocument
end PEND/F2 10/Times-Italic@0 SF([Evalutates to 2 * \(2 + 2\)])111.29
-510.6 Q F0 .347(As you can see, you need to e)111 534.6 R -.25(va)-.25 G
-.347(luate the e).25 F .347(xpression in the most brack)-.15 F .346
-(ets \214rst, then the ne)-.1 F .346(xt, and)-.15 F(so on, w)111 546.6 Q
-(orking you w)-.1 E(ay up)-.1 E -1.1(Yo)111 570.6 S 2.646(uc)1.1 G .146
-(an e)-2.646 F -.25(va)-.25 G .147(luate code in a similar w).25 F(ay)
+606.6 Q F0 .346(As you can see, you need to e)111 630.6 R -.25(va)-.25 G
+.347(luate the e).25 F .347(xpression in the most brack)-.15 F .347
+(ets \214rst, then the ne)-.1 F .347(xt, and)-.15 F(so on, w)111 642.6 Q
+(orking you w)-.1 E(ay up)-.1 E -1.1(Yo)111 666.6 S 2.647(uc)1.1 G .147
+(an e)-2.647 F -.25(va)-.25 G .147(luate code in a similar w).25 F(ay)
-.1 E 2.647(,t)-.65 G .147
(reating each operation \(such as +-*/\) as functions, doing)-2.647 F
-.002(the most deeply nested function \214rst, then w)111 582.6 R .002
+.002(the most deeply nested function \214rst, then w)111 678.6 R .002
(orking up. Each e)-.1 F .002(xpression can be represented in this)-.15
-F(tree, then to sho)111 594.6 Q 2.5(waw)-.25 G
+F(tree, then to sho)111 690.6 Q 2.5(waw)-.25 G
(hole program you can create a list of trees)-2.5 E F1 2.5
-(2.9.2. Implementing)111 630.6 R(AST')2.5 E(s)-.37 E F0 .32
-(As a prototype i will mak)111 646.2 R 2.821(eap)-.1 G .321
-(rogram that can tak)-2.821 F 2.821(em)-.1 G .321(athematical e)-2.821 F
-.321(xpressions and e)-.15 F -.25(va)-.25 G .321(luate them,).25 F
-(and allo)111 658.2 Q(wing for functions \(in the form f\(x\)\).)-.25 E
-(It will do this via AST')5 E(s)-.55 E .718(This prototype tak)111 682.2
-R .718(es 173 lines of code, it tak)-.1 F .718
-(es a string as a cmd line ar)-.1 F .717(gument then con)-.18 F -.15(ve)
--.4 G .717(rts it).15 F .177
-(into an abstract syntax tree, and \214nally it e)111 694.2 R -.15(xe)
--.15 G .178(cutes it. This is just a simple prototype and thus it is).15
-F .171(small in scope. It can only do simple operators \(+-*/\) and req\
-uires literal v)111 706.2 R .17(alues to be surrounded)-.25 F
-(by [] so it kno)111 718.2 Q(ws its not another e)-.25 E(xpression to e)
--.15 E -.25(va)-.25 G(luate.).25 E 0 Cg EP
+(2.9.2. Implementing)111 726.6 R(AST')2.5 E(s)-.37 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-8-)300.17 48 Q(https://github)111 84 Q
+/F0 10/Times-Roman@0 SF(-8-)300.17 48 Q .321(As a prototype i will mak)
+111 84 R 2.821(eap)-.1 G .321(rogram that can tak)-2.821 F 2.82(em)-.1 G
+.32(athematical e)-2.82 F .32(xpressions and e)-.15 F -.25(va)-.25 G .32
+(luate them,).25 F(and allo)111 96 Q
+(wing for functions \(in the form f\(x\)\).)-.25 E
+(It will do this via AST')5 E(s)-.55 E .717(This prototype tak)111 120 R
+.718(es 173 lines of code, it tak)-.1 F .718
+(es a string as a cmd line ar)-.1 F .718(gument then con)-.18 F -.15(ve)
+-.4 G .718(rts it).15 F .178
+(into an abstract syntax tree, and \214nally it e)111 132 R -.15(xe)-.15
+G .177(cutes it. This is just a simple prototype and thus it is).15 F
+.171(small in scope. It can only do simple operators \(+-*/\) and requi\
+res literal v)111 144 R .171(alues to be surrounded)-.25 F
+(by [] so it kno)111 156 Q(ws its not another e)-.25 E(xpression to e)
+-.15 E -.25(va)-.25 G(luate.).25 E(https://github)111 180 Q
(.com/standenbo)-.4 E
(y/school/tree/master/comp/lucas-standen-NEA/code/proto/ast)-.1 E
-(typedef struct ast_node ast_node;)111 120 Q(typedef enum op {)111 144 Q
-(ADD = 0,)131 156 Q(SUB = 1,)131 168 Q(MUL = 2,)131 180 Q(DIV = 3,)131
-192 Q 2.5(}o)111 216 S(p;)-2.5 E(typedef struct ast_node {)111 240 Q
-(op operation;)131 252 Q(int realLeft;)131 264 Q(int realRight;)131 276
-Q(ast_node *right;)131 288 Q(ast_node *left;)131 300 Q 2.5(}a)111 324 S
-(st_node;)-2.5 E(Abo)111 372 Q .335 -.15(ve i)-.15 H 2.535(st).15 G .035
+(typedef struct ast_node ast_node;)111 216 Q(typedef enum op {)111 240 Q
+(ADD = 0,)131 252 Q(SUB = 1,)131 264 Q(MUL = 2,)131 276 Q(DIV = 3,)131
+288 Q 2.5(}o)111 312 S(p;)-2.5 E(typedef struct ast_node {)111 336 Q
+(op operation;)131 348 Q(int realLeft;)131 360 Q(int realRight;)131 372
+Q(ast_node *right;)131 384 Q(ast_node *left;)131 396 Q 2.5(}a)111 420 S
+(st_node;)-2.5 E(Abo)111 468 Q .335 -.15(ve i)-.15 H 2.535(st).15 G .035
(he code for the AST)-2.535 F 2.535(,i)-.74 G 2.535(ts)-2.535 G .035
(tores an operation \(which is just an inte)-2.535 F .035
-(ger\), and it stores a real)-.15 F .676(left and real right v)111 384 R
+(ger\), and it stores a real)-.15 F .675(left and real right v)111 480 R
.675(alue, along side tw)-.25 F 3.175(oo)-.1 G .675
-(ther nodes. The real v)-3.175 F .675(alues are inte)-.25 F .675
-(gers, this w)-.15 F .675(ould be)-.1 F .943
-(the 2 numbers in reference in the e)111 396 R .944
-(xpression. The 2 nodes are a recursi)-.15 F 1.244 -.15(ve d)-.25 H .944
-(ata structure, much).15 F(lik)111 408 Q 3.489(ep)-.1 G .988(utting an \
+(ther nodes. The real v)-3.175 F .676(alues are inte)-.25 F .676
+(gers, this w)-.15 F .676(ould be)-.1 F .944
+(the 2 numbers in reference in the e)111 492 R .944
+(xpression. The 2 nodes are a recursi)-.15 F 1.243 -.15(ve d)-.25 H .943
+(ata structure, much).15 F(lik)111 504 Q 3.488(ep)-.1 G .988(utting an \
object of a class inside the de\214nition of that class itself. The)
--3.489 F 3.488(ya)-.15 G .988(re used to store)-3.488 F -.25(va)111 420
-S .08(lues that may still be e).25 F .08(xpressions, for e)-.15 F .081
+-3.488 F 3.489(ya)-.15 G .989(re used to store)-3.489 F -.25(va)111 516
+S .081(lues that may still be e).25 F .081(xpressions, for e)-.15 F .08
(xample \(+ [1] \(+ [1] [1]\)\) the second part of this e)-.15 F(xpres-)
--.15 E .533(sion w)111 432 R .533(ould be in the "right" v)-.1 F .533
+-.15 E .532(sion w)111 528 R .532(ould be in the "right" v)-.1 F .533
(ariable. When code is e)-.25 F -.15(xe)-.15 G .533
(cuted I can check if "left", or "right" are).15 F .749(null and if the)
-111 444 R 3.249(ya)-.15 G .749(re i kno)-3.249 F 3.249(wt)-.25 G .749
+111 540 R 3.249(ya)-.15 G .749(re i kno)-3.249 F 3.249(wt)-.25 G .749
(hat i am at the lo)-3.249 F .749(west e)-.25 F .749
(xpression that is only literal v)-.15 F 3.249(alues. Then)-.25 F(I)
-3.249 E(can e)111 456 Q -.15(xe)-.15 G(cute that node and w).15 E
-(ork my w)-.1 E(ay up the tree.)-.1 E(The e)111 492 Q -.15(xe)-.15 G
-(cution code can be seen here.).15 E(https://github)111 516 Q
+3.249 E(can e)111 552 Q -.15(xe)-.15 G(cute that node and w).15 E
+(ork my w)-.1 E(ay up the tree.)-.1 E(The e)111 588 Q -.15(xe)-.15 G
+(cution code can be seen here.).15 E(https://github)111 612 Q
(.com/standenbo)-.4 E
(y/school/tree/master/comp/lucas-standen-NEA/code/proto/ast)-.1 E(int e)
-111 540 Q -.15(xe)-.15 G(c\(ast_node *e).15 E(xp\){)-.15 E(if \(e)131
-552 Q(xp->left != NULL\))-.15 E -.15(ex)151 564 S(p->realLeft = e).15 E
--.15(xe)-.15 G(c\(e).15 E(xp->left\);)-.15 E(if \(e)131 576 Q
-(xp->right != NULL\))-.15 E -.15(ex)151 588 S(p->realRight = e).15 E
--.15(xe)-.15 G(c\(e).15 E(xp->right\);)-.15 E(if \(e)131 612 Q
-(xp->operation == ADD\))-.15 E(return e)151 624 Q(xp->realLeft+ e)-.15 E
-(xp->realRight;)-.15 E(if \(e)131 636 Q(xp->operation == SUB\))-.15 E
-(return e)151 648 Q(xp->realLeft - e)-.15 E(xp->realRight;)-.15 E
-(if \(e)131 660 Q(xp->operation == MUL\))-.15 E(return e)151 672 Q
-(xp->realLeft * e)-.15 E(xp->realRight;)-.15 E(if \(e)131 684 Q
-(xp->operation == DIV\))-.15 E(return e)151 696 Q(xp->realLeft/ e)-.15 E
-(xp->realRight;)-.15 E(return 0;)136 720 Q 0 Cg EP
+111 636 Q -.15(xe)-.15 G(c\(ast_node *e).15 E(xp\){)-.15 E(if \(e)131
+648 Q(xp->left != NULL\))-.15 E -.15(ex)151 660 S(p->realLeft = e).15 E
+-.15(xe)-.15 G(c\(e).15 E(xp->left\);)-.15 E(if \(e)131 672 Q
+(xp->right != NULL\))-.15 E -.15(ex)151 684 S(p->realRight = e).15 E
+-.15(xe)-.15 G(c\(e).15 E(xp->right\);)-.15 E(if \(e)131 708 Q
+(xp->operation == ADD\))-.15 E(return e)151 720 Q(xp->realLeft+ e)-.15 E
+(xp->realRight;)-.15 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-9-)300.17 48 Q(})111 84 Q .13(This code will e)
-111 108 R -.15(xe)-.15 G .13(cute the operation, unless there is a deep\
-er node, if there is a deeper node, then).15 F(it e)111 120 Q -.15(xe)
--.15 G
+/F0 10/Times-Roman@0 SF(-9-)300.17 48 Q(if \(e)131 84 Q
+(xp->operation == SUB\))-.15 E(return e)151 96 Q(xp->realLeft - e)-.15 E
+(xp->realRight;)-.15 E(if \(e)131 108 Q(xp->operation == MUL\))-.15 E
+(return e)151 120 Q(xp->realLeft * e)-.15 E(xp->realRight;)-.15 E
+(if \(e)131 132 Q(xp->operation == DIV\))-.15 E(return e)151 144 Q
+(xp->realLeft/ e)-.15 E(xp->realRight;)-.15 E(return 0;)136 168 Q(})111
+192 Q .13(This code will e)111 216 R -.15(xe)-.15 G .13(cute the operat\
+ion, unless there is a deeper node, if there is a deeper node, then).15
+F(it e)111 228 Q -.15(xe)-.15 G
(cutes it, and places the result in the right or left spot respecti).15
-E -.15(ve)-.25 G(ly).15 E(Here is an e)111 144 Q
+E -.15(ve)-.25 G(ly).15 E(Here is an e)111 252 Q
(xample input and output:)-.15 E
-(./ast "\(+ \(- [3] [1]\) \(- [3] [1]\)\)")113.5 168 Q(4)113.5 192 Q
-(Note the [] used to tell the program where the literal v)111 216 Q
-(alues are.)-.25 E(Ov)111 240 Q .447(erall this w)-.15 F .448
+(./ast "\(+ \(- [3] [1]\) \(- [3] [1]\)\)")113.5 276 Q(4)113.5 300 Q
+(Note the [] used to tell the program where the literal v)111 324 Q
+(alues are.)-.25 E(Ov)111 348 Q .448(erall this w)-.15 F .448
(as a relati)-.1 F -.15(ve)-.25 G .448(ly successful prototype, ho).15 F
(we)-.25 E -.15(ve)-.25 G 2.948(ri).15 G 2.948(ti)-2.948 G(sn')-2.948 E
2.948(tf)-.18 G .448(ully functional as a language)-2.948 F
-(it has \214t the design.)111 252 Q 1.014
-(The rest of the code is the process of con)111 276 R -.15(ve)-.4 G
-1.014(rting the string input to literal v).15 F 1.014
-(alues and inserting)-.25 F(them into the AST)111 288 Q/F1 10
-/Times-Bold@0 SF 2.5(2.9.3. F)111 324 R(eedback)-.25 E F0 .656(From my \
+(it has \214t the design.)111 360 Q 1.014
+(The rest of the code is the process of con)111 384 R -.15(ve)-.4 G
+1.014(rting the string input to literal v).15 F 1.015
+(alues and inserting)-.25 F(them into the AST)111 396 Q/F1 10
+/Times-Bold@0 SF 2.5(2.9.3. F)111 432 R(eedback)-.25 E F0 .656(From my \
\214rst Client \(Amy C\), she said that putting the numbers inside squa\
-re brack)111 339.6 R .657(ets w)-.1 F .657(as in-)-.1 F(con)111 351.6 Q
--.15(ve)-.4 G .408(nient and anno).15 F .408(ying and it w)-.1 F .407
+re brack)111 447.6 R .656(ets w)-.1 F .656(as in-)-.1 F(con)111 459.6 Q
+-.15(ve)-.4 G .407(nient and anno).15 F .407(ying and it w)-.1 F .407
(ould be better if the numbers were separated by spaces instead)-.1 F
-(of separate square brack)111 363.6 Q(et surrounded literals.)-.1 E .549
-(As this is a prototype I w)111 387.6 R(on')-.1 E 3.049<748c>-.18 G
+(of separate square brack)111 471.6 Q(et surrounded literals.)-.1 E .549
+(As this is a prototype I w)111 495.6 R(on')-.1 E 3.049<748c>-.18 G
3.049(xt)-3.049 G .549(his issue, ho)-3.049 F(we)-.25 E -.15(ve)-.25 G
3.049(ri).15 G 3.049(nt)-3.049 G .549
(he actual language this is a needed fea-)-3.049 F
-(ture that I will be implementing.)111 399.6 Q F1 2.5(2.10. Objecti)111
-435.6 R -.1(ve)-.1 G(s).1 E 2.5(2.10.1. An)111 459.6 R(inter)2.5 E(pr)
--.1 E(eter f)-.18 E(or the Zippy language)-.25 E 2.5(2.10.1.1. A)111
-483.6 R(lisp lik)2.5 E 2.5(es)-.1 G(yntax)-2.5 E F0
-(This is to ensure the language can be parsed quickly)111 499.2 Q 2.5
-(,a)-.65 G(nd is easy to write.)-2.5 E F1 2.5(2.10.1.2. A)111 523.2 R
-(po)2.5 E(werful abstract syntax tr)-.1 E(ee)-.18 E F0 .16
-(That the programmer can use to deb)111 538.8 R .159
-(ug their code, and to allo)-.2 F 2.659(wf)-.25 G .159(or easy e)-2.659
-F(xtensibility)-.15 E 2.659(,t)-.65 G .159(he full tree)-2.659 F .062
-(should be a link)111 550.8 R .062(ed list of AST')-.1 F 2.562(se)-.55 G
-.063(ach on being its o)-2.562 F .063(wn e)-.25 F .063
-(xpression, a function will mak)-.15 F 2.563(eal)-.1 G .063(ink be-)
--2.563 F(tween 2 nodes in the link)111 562.8 Q(ed list of AST')-.1 E(s.)
--.55 E F1 2.5(2.10.1.3. Immutable)111 586.8 R(by default)2.5 E F0 .277
-(The core to creating a safe language is immutability)111 602.4 R 2.777
+(ture that I will be implementing.)111 507.6 Q F1 2.5(2.10. Objecti)111
+543.6 R -.1(ve)-.1 G(s).1 E 2.5(2.10.1. An)111 567.6 R(inter)2.5 E(pr)
+-.1 E(eter f)-.18 E(or the Zippy language)-.25 E 2.5(2.10.2. Link)111
+591.6 R(ed list of AST')-.1 E(s)-.37 E F0 .033
+(All of a loaded program should be represented as a link)111 607.2 R
+.033(ed list of indi)-.1 F .033(vidual AST')-.25 F .034(s, The de)-.55 F
+-.15(ve)-.25 G(loper).15 E .528(should be able to access the AST for ea\
+sy hacking. Functions can be represented as a pointer to)111 619.2 R
+(another part of the list.)111 631.2 Q F1 2.5(2.10.2.1. A)111 655.2 R
+(lisp lik)2.5 E 2.5(es)-.1 G(yntax)-2.5 E F0
+(This is to ensure the language can be parsed quickly)111 670.8 Q 2.5
+(,a)-.65 G(nd is easy to write.)-2.5 E F1 2.5(2.10.2.2. Immutable)111
+694.8 R(by default)2.5 E F0 .277
+(The core to creating a safe language is immutability)111 710.4 R 2.777
(,f)-.65 G .277(orcing this mak)-2.777 F .277
-(es it easy to write safe pro-)-.1 F(grams. Ha)111 614.4 Q(ving a let k)
+(es it easy to write safe pro-)-.1 F(grams. Ha)111 722.4 Q(ving a let k)
-.2 E -.15(ey)-.1 G -.1(wo).15 G(rd to assign v).1 E
-(ariables immutably and a set one to assign them mutably)-.25 E F1 2.5
-(2.10.1.4. Functional)111 638.4 R(language)2.5 E F0 1.366(This language\
- should lean into the functional programming paradigm, taking inspirati\
-on from)111 654 R(other functional languages such as lisp, and gleam.)
-111 666 Q F1 2.5(2.10.1.4.1. Recursion)111 690 R F0(Zipp)111 705.6 Q
-2.622(ym)-.1 G .122(ust support recursi)-2.622 F .422 -.15(ve a)-.25 H
-.121(lgorithms being implemented into it, this will mak).15 F 2.621(et)
--.1 G .121(he AST)-2.621 F 2.621(,h)-.74 G -2.25 -.2(av e)-2.621 H
-(nodes linking back to parent nodes in a link)111 717.6 Q(ed list.)-.1 E
-0 Cg EP
+(ariables immutably and a set one to assign them mutably)-.25 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-10-)297.67 48 Q/F1 10/Times-Bold@0 SF 2.5
-(2.10.1.4.2. Higher)111 84 R(order functions)2.5 E F0(Zipp)111 99.6 Q
-2.692(ym)-.1 G .192(ust support the usage of higher order functions, th\
-is will mean the AST needs to ha)-2.692 F .493 -.15(ve a)-.2 H(n).15 E
-.559(unlimited depth as otherwise the limit w)111 111.6 R .559
-(ould be quickly reached, it can')-.1 F 3.058(tb)-.18 G 3.058(eh)-3.058
-G .558(ard-coded, it must)-3.058 F(be dynamic.)111 123.6 Q F1 2.5
-(2.10.1.5. P)111 147.6 R(erf)-.2 E(ormance is k)-.25 E(ey)-.1 E F0 .583
-(The interpreter must be f)111 163.2 R .584(ast and memory ef)-.1 F .584
-(\214cient, the language is designed to w)-.25 F .584(ork as an alter)
--.1 F(-)-.2 E(nati)111 175.2 Q .345 -.15(ve t)-.25 H 2.545(oC).15 G
-2.545(,o)-2.545 G .045(ne of the f)-2.545 F .045
-(astest languages of all time, the interpreter must be f)-.1 F .044
-(ast, ho)-.1 F(we)-.25 E -.15(ve)-.25 G 2.544(rm).15 G(emory)-2.544 E
-(footprint is not as much of a requirement.)111 187.2 Q F1 2.5
-(2.10.2. Standard)111 223.2 R(library f)2.5 E(or Zippy)-.25 E 2.5
-(2.10.2.1. io)111 247.2 R F0(The language must ha)111 262.8 Q .3 -.15
+(2.10.2.3. Functional)111 84 R(language)2.5 E F0 1.366(This language sh\
+ould lean into the functional programming paradigm, taking inspiration \
+from)111 99.6 R(other functional languages such as lisp, and gleam.)111
+111.6 Q F1 2.5(2.10.2.3.1. Recursion)111 135.6 R F0(Zipp)111 151.2 Q
+2.621(ym)-.1 G .121(ust support recursi)-2.621 F .421 -.15(ve a)-.25 H
+.121(lgorithms being implemented into it, this will mak).15 F 2.622(et)
+-.1 G .122(he AST)-2.622 F 2.622(,h)-.74 G -2.25 -.2(av e)-2.622 H
+(nodes linking back to parent nodes in a link)111 163.2 Q(ed list.)-.1 E
+F1 2.5(2.10.2.3.2. Higher)111 187.2 R(order functions)2.5 E F0(Zipp)111
+202.8 Q 2.693(ym)-.1 G .192(ust support the usage of higher order funct\
+ions, this will mean the AST needs to ha)-2.693 F .492 -.15(ve a)-.2 H
+(n).15 E .558(unlimited depth as otherwise the limit w)111 214.8 R .559
+(ould be quickly reached, it can')-.1 F 3.059(tb)-.18 G 3.059(eh)-3.059
+G .559(ard-coded, it must)-3.059 F(be dynamic.)111 226.8 Q F1 2.5
+(2.10.2.4. P)111 250.8 R(erf)-.2 E(ormance is k)-.25 E(ey)-.1 E F0 .584
+(The interpreter must be f)111 266.4 R .584(ast and memory ef)-.1 F .584
+(\214cient, the language is designed to w)-.25 F .583(ork as an alter)
+-.1 F(-)-.2 E(nati)111 278.4 Q .344 -.15(ve t)-.25 H 2.544(oC).15 G
+2.544(,o)-2.544 G .044(ne of the f)-2.544 F .045
+(astest languages of all time, the interpreter must be f)-.1 F .045
+(ast, ho)-.1 F(we)-.25 E -.15(ve)-.25 G 2.545(rm).15 G(emory)-2.545 E
+(footprint is not as much of a requirement.)111 290.4 Q F1 2.5
+(2.10.3. Standard)111 326.4 R(library f)2.5 E(or Zippy)-.25 E 2.5
+(2.10.3.1. io)111 350.4 R F0(The language must ha)111 366 Q .3 -.15
(ve a s)-.2 H(imple to use I/O library to mak).15 E 2.5(eo)-.1 G
-(utputs easy)-2.5 E(.)-.65 E F1 2.5(2.10.2.2. string)111 286.8 R F0
-1.168(The language should ha)111 302.4 R 1.468 -.15(ve a s)-.2 H 1.168
+(utputs easy)-2.5 E(.)-.65 E F1 2.5(2.10.3.2. string)111 390 R F0 1.168
+(The language should ha)111 405.6 R 1.468 -.15(ve a s)-.2 H 1.168
(ting library that pro).15 F 1.168(vides a string type, and man)-.15 F
3.668(yc)-.15 G(omple)-3.668 E 3.668(xa)-.15 G(lgo-)-3.668 E(rithms tha\
t can be applied to them \(concatenation, insertion, appending, splitti\
-ng, stripping\).)111 314.4 Q F1 2.5(2.10.2.3. sorts)111 338.4 R F0 .457
-(The language should ha)111 354 R .757 -.15(ve a s)-.2 H .456
-(orting library that pro).15 F .456
-(vides algorithms used for sorting \(lik)-.15 F 2.956(em)-.1 G(er)-2.956
-E(ge)-.18 E(sort\).)111 366 Q F1 2.5(2.10.2.4. graphs)111 390 R F0 .331
-(the language must ha)111 405.6 R .632 -.15(ve a g)-.2 H .332
+ng, stripping\).)111 417.6 Q F1 2.5(2.10.3.3. sorts)111 441.6 R F0 .456
+(The language should ha)111 457.2 R .756 -.15(ve a s)-.2 H .456
+(orting library that pro).15 F .457
+(vides algorithms used for sorting \(lik)-.15 F 2.957(em)-.1 G(er)-2.957
+E(ge)-.18 E(sort\).)111 469.2 Q F1 2.5(2.10.3.4. graphs)111 493.2 R F0
+.332(the language must ha)111 508.8 R .632 -.15(ve a g)-.2 H .332
(raph library).15 F 2.832(,t)-.65 G .332(hat allo)-2.832 F .332
-(ws for easy creation and w)-.25 F .332(orking with graphs, it)-.1 F
-(should pro)111 417.6 Q(vide man)-.15 E 2.5(ya)-.15 G
+(ws for easy creation and w)-.25 F .331(orking with graphs, it)-.1 F
+(should pro)111 520.8 Q(vide man)-.15 E 2.5(ya)-.15 G
(lgorithms to help tra)-2.5 E -.15(ve)-.2 G(rse these graphs).15 E F1
-2.5(2.10.3. T)111 453.6 R(ooling f)-.92 E(or the Zippy language)-.25 E
-2.5(2.10.3.1. zpypkg)111 477.6 R F0(Zipp)111 493.2 Q 3.562(ym)-.1 G
-1.062(ust pro)-3.562 F 1.062(vide a package manager)-.15 F 3.562(,t)-.4
-G 1.061(hat allo)-3.562 F 1.061
-(ws code to be shared between multiple users,)-.25 F(easily)111 505.2 Q
+2.5(2.10.4. T)111 556.8 R(ooling f)-.92 E(or the Zippy language)-.25 E
+2.5(2.10.4.1. zpypkg)111 580.8 R F0(Zipp)111 596.4 Q 3.561(ym)-.1 G
+1.061(ust pro)-3.561 F 1.061(vide a package manager)-.15 F 3.561(,t)-.4
+G 1.061(hat allo)-3.561 F 1.062
+(ws code to be shared between multiple users,)-.25 F(easily)111 608.4 Q
5(.I)-.65 G 2.5(ts)-5 G(hould sync projects via git and allo)-2.5 E 2.5
(wt)-.25 G(hem to be stored on an)-2.5 E 2.5(yg)-.15 G
-(it host the user lik)-2.5 E(es.)-.1 E F1 2.5(2.10.3.2. Syntax)111 529.2
-R(check)2.5 E F0(Zipp)111 544.8 Q 2.774(ys)-.1 G .274(hould ha)-2.774 F
-.574 -.15(ve a b)-.2 H .274(uilt in syntax check)-.05 F(er)-.1 E 2.774
-(,t)-.4 G .275(hat can be run independently of the interpreter)-2.774 F
-2.775(,t)-.4 G(his)-2.775 E .944(means that a lot of the checking that \
-interpreted languages do, can be done once by the de)111 556.8 R -.15
-(ve)-.25 G(l-).15 E(oper)111 568.8 Q 3.246(,b)-.4 G .746
-(efore shipping the app, as opposed to e)-3.246 F -.15(ve)-.25 G .746
+(it host the user lik)-2.5 E(es.)-.1 E F1 2.5(2.10.4.2. Syntax)111 632.4
+R(check)2.5 E F0(Zipp)111 648 Q 2.775(ys)-.1 G .275(hould ha)-2.775 F
+.575 -.15(ve a b)-.2 H .275(uilt in syntax check)-.05 F(er)-.1 E 2.774
+(,t)-.4 G .274(hat can be run independently of the interpreter)-2.774 F
+2.774(,t)-.4 G(his)-2.774 E .944(means that a lot of the checking that \
+interpreted languages do, can be done once by the de)111 660 R -.15(ve)
+-.25 G(l-).15 E(oper)111 672 Q 3.247(,b)-.4 G .746
+(efore shipping the app, as opposed to e)-3.247 F -.15(ve)-.25 G .746
(ry time the program is run, which brings do).15 F(wn)-.25 E
-(performance.)111 580.8 Q F1 2.5(2.10.3.3. V)111 604.8 R
-(im integration.)-.37 E F0(Zipp)111 620.4 Q 3.248(ys)-.1 G .748
-(hould ha)-3.248 F 1.048 -.15(ve i)-.2 H(nte).15 E .748
-(gration with the V)-.15 F .748
-(im editor for syntax highlighting, this can be done via)-.6 F
-(generating an AST then colouring function calls a speci\214c colour)111
-632.4 Q 2.5(,a)-.4 G(nd v)-2.5 E(ariables another)-.25 E 2.5(,e)-.4 G
-(tc, etc.)-2.5 E F1 2.5(2.10.4. Integration)111 656.4 R
-(with C, via a C API)2.5 E 2.5(2.10.4.1. C)111 680.4 R(API)2.5 E F0 -1.1
-(Yo)111 696 S 2.675(us)1.1 G .175(hould be able to e)-2.675 F -.15(xe)
--.15 G .175(cute a string of zipp).15 F 2.675(yc)-.1 G .176
-(ode in C using a library that is link)-2.675 F .176(ed with inter)-.1 F
-(-)-.2 E(preter)111 708 Q 2.5(.T)-.55 G(his could allo)-2.5 E 2.5(wZ)
--.25 G(ipp)-2.5 E 2.5(yt)-.1 G 2.5(ob)-2.5 G 2.5(eu)-2.5 G
-(sed as a con\214guration language lik)-2.5 E 2.5(eL)-.1 G(ua.)-2.5 E 0
-Cg EP
+(performance.)111 684 Q F1 2.5(2.10.4.3. V)111 708 R(im integration.)
+-.37 E F0(Zipp)111 723.6 Q 3.248(ys)-.1 G .748(hould ha)-3.248 F 1.048
+-.15(ve i)-.2 H(nte).15 E .748(gration with the V)-.15 F .748
+(im editor for syntax highlighting, this can be done via)-.6 F 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-11-)297.67 48 Q/F1 10/Times-Bold@0 SF 2.5
-(2.11. Desirable)111 84 R(featur)2.5 E(es)-.18 E F0(If time allo)111
-99.6 Q(ws I')-.25 E 2.5(dl)-.5 G(ik)-2.5 E 2.5(et)-.1 G 2.5(oa)-2.5 G
-(dd some of the follo)-2.5 E(wing features to \215esh out the language:)
--.25 E F1 2.5(2.11.1. Raylib)111 123.6 R(support)2.5 E F0 .322
-(Raylib is a po)111 139.2 R .321(werful g)-.25 F .321
-(ame engine for C, ho)-.05 F(we)-.25 E -.15(ve)-.25 G 2.821(ri).15 G
-2.821(th)-2.821 G .321(as been ported to most languages under the)-2.821
-F .595(sun due to ho)111 151.2 R 3.095(ws)-.25 G .596
-(imple it is. If I ha)-3.095 F .896 -.15(ve t)-.2 H .596
-(ime, porting raylib to zipp).15 F 3.096(yw)-.1 G .596(ould mak)-3.196 F
-3.096(et)-.1 G .596(he language f)-3.096 F(ar)-.1 E
-(more useable, as it can be use for graphics programming.)111 163.2 Q
-(https://www)111 187.2 Q(.raylib)-.65 E(.com/)-.4 E F1 2.5(2.11.2. LSP)
-111 223.2 R F0 2.925(AL)111 238.8 S .425(SP \(language serv)-2.925 F
-.424(er protocall\), is used in code IDE')-.15 F 2.924(st)-.55 G 2.924
-(oa)-2.924 G .424(uto complete code for you, I')-2.924 F 2.924(dl)-.5 G
-(ik)-2.924 E(e)-.1 E .236(one for zipp)111 250.8 R 1.536 -.65(y. A)-.1 H
+/F0 10/Times-Roman@0 SF(-11-)297.67 48 Q
+(generating an AST then colouring function calls a speci\214c colour)111
+84 Q 2.5(,a)-.4 G(nd v)-2.5 E(ariables another)-.25 E 2.5(,e)-.4 G
+(tc, etc.)-2.5 E/F1 10/Times-Bold@0 SF 2.5(2.10.5. Integration)111 108 R
+(with C, via a C API)2.5 E 2.5(2.10.5.1. C)111 132 R(API)2.5 E F0 -1.1
+(Yo)111 147.6 S 2.676(us)1.1 G .176(hould be able to e)-2.676 F -.15(xe)
+-.15 G .176(cute a string of zipp).15 F 2.676(yc)-.1 G .175
+(ode in C using a library that is link)-2.676 F .175(ed with inter)-.1 F
+(-)-.2 E(preter)111 159.6 Q 2.5(.T)-.55 G(his could allo)-2.5 E 2.5(wZ)
+-.25 G(ipp)-2.5 E 2.5(yt)-.1 G 2.5(ob)-2.5 G 2.5(eu)-2.5 G
+(sed as a con\214guration language lik)-2.5 E 2.5(eL)-.1 G(ua.)-2.5 E F1
+2.5(2.11. Desirable)111 195.6 R(featur)2.5 E(es)-.18 E F0(If time allo)
+111 211.2 Q(ws I')-.25 E 2.5(dl)-.5 G(ik)-2.5 E 2.5(et)-.1 G 2.5(oa)-2.5
+G(dd some of the follo)-2.5 E
+(wing features to \215esh out the language:)-.25 E F1 2.5
+(2.11.1. Raylib)111 235.2 R(support)2.5 E F0 .321(Raylib is a po)111
+250.8 R .321(werful g)-.25 F .321(ame engine for C, ho)-.05 F(we)-.25 E
+-.15(ve)-.25 G 2.821(ri).15 G 2.821(th)-2.821 G .321
+(as been ported to most languages under the)-2.821 F .596(sun due to ho)
+111 262.8 R 3.096(ws)-.25 G .596(imple it is. If I ha)-3.096 F .896 -.15
+(ve t)-.2 H .596(ime, porting raylib to zipp).15 F 3.096(yw)-.1 G .595
+(ould mak)-3.196 F 3.095(et)-.1 G .595(he language f)-3.095 F(ar)-.1 E
+(more useable, as it can be use for graphics programming.)111 274.8 Q
+(https://www)111 298.8 Q(.raylib)-.65 E(.com/)-.4 E F1 2.5(2.11.2. LSP)
+111 334.8 R F0 3.054(AL)111 350.4 S .554(SP \(language serv)-3.054 F
+.555(er protocol\), is used in code IDE')-.15 F 3.055(st)-.55 G 3.055
+(oa)-3.055 G .555(uto complete code for you, I')-3.055 F 3.055(dl)-.5 G
+(ik)-3.055 E(e)-.1 E .237(one for zipp)111 362.4 R 1.536 -.65(y. A)-.1 H
.236(lthough I am unsure as to ho).65 F 2.736(wt)-.25 G 2.736(ot)-2.736
-G .236(ackle this. I belie)-2.736 F .536 -.15(ve a p)-.25 H .237
-(rogram called treesitter).15 F(can be helpful for this.)111 262.8 Q F1
-2.5(2.11.3. Netw)111 286.8 R(orking sock)-.1 E(ets)-.1 E F0 .102
-(If possible I')111 302.4 R 2.602(da)-.5 G .102(lso lik)-2.602 F 2.601
-(et)-.1 G 2.601(op)-2.601 G(ro)-2.601 E .101
-(vide bindings for unix netw)-.15 F .101(ork sock)-.1 F .101(ets, ho)-.1
-F(we)-.25 E -.15(ve)-.25 G 2.601(rt).15 G .101(his w)-2.601 F .101
-(ould be v)-.1 F(ery)-.15 E(dif)111 314.4 Q .371(\214cult, as I w)-.25 F
-.372(ould need to allo)-.1 F 2.872(wz)-.25 G(ipp)-2.872 E 2.872(ys)-.1 G
-.372(tucts to be directly con)-2.872 F -.15(ve)-.4 G .372
+G .236(ackle this. I belie)-2.736 F .536 -.15(ve a p)-.25 H .236
+(rogram called treesitter).15 F(can be helpful for this.)111 374.4 Q F1
+2.5(2.11.3. Netw)111 398.4 R(orking sock)-.1 E(ets)-.1 E F0 .101
+(If possible I')111 414 R 2.601(da)-.5 G .101(lso lik)-2.601 F 2.601(et)
+-.1 G 2.601(op)-2.601 G(ro)-2.601 E .101(vide bindings for unix netw)
+-.15 F .101(ork sock)-.1 F .101(ets, ho)-.1 F(we)-.25 E -.15(ve)-.25 G
+2.602(rt).15 G .102(his w)-2.602 F .102(ould be v)-.1 F(ery)-.15 E(dif)
+111 426 Q .372(\214cult, as I w)-.25 F .372(ould need to allo)-.1 F
+2.872(wz)-.25 G(ipp)-2.872 E 2.872(ys)-.1 G .372
+(tucts to be directly con)-2.872 F -.15(ve)-.4 G .371
(rted to C stucts, when e).15 F -.15(xe)-.15 G(cut-).15 E
-(ing ELF symbols \(P)111 326.4 Q(arts of an e)-.15 E -.15(xe)-.15 G
-(cuable \214le\).).15 E F1 2.5(3. Design)111 362.4 R 2.5(3.1. Language)
-111 386.4 R(speci\214cation)2.5 E F0(Lik)111 402 Q 2.6(ea)-.1 G .4 -.15
-(ny o)-2.6 H .1(ther programing language zipp).15 F 2.6(yn)-.1 G .1
-(eeds to ha)-2.6 F .4 -.15(ve a d)-.2 H .1
-(e\214ned syntax, as metioned in the ob-).15 F(jecti)111 414 Q -.15(ve)
+(ing ELF symbols \(P)111 438 Q(arts of an e)-.15 E -.15(xe)-.15 G
+(cuable \214le\).).15 E F1 2.5(3. Design)111 474 R 2.5(3.1. Language)111
+498 R(speci\214cation)2.5 E F0(Lik)111 513.6 Q 2.81(ea)-.1 G .61 -.15
+(ny o)-2.81 H .31(ther programming language zipp).15 F 2.81(yn)-.1 G .31
+(eeds to ha)-2.81 F .61 -.15(ve a d)-.2 H .31
+(e\214ned syntax, as mentioned in the).15 F(objecti)111 525.6 Q -.15(ve)
-.25 G 2.5(ss).15 G(ection of Analysis, I w)-2.5 E
(ant the language to follo)-.1 E 2.5(wal)-.25 G(isp lik)-2.5 E 2.5(es)
--.1 G(yntax.)-2.5 E 3.455(Ia)111 438 S .955(lso belie)-3.455 F 1.255
+-.1 G(yntax.)-2.5 E 3.456(Ia)111 549.6 S .956(lso belie)-3.456 F 1.256
-.15(ve h)-.25 H .955(igher order functions should be tak).15 F .955
-(en as standard and man)-.1 F 3.456(yc)-.15 G .956(ore functions will)
--3.456 F(use them.)111 450 Q F1 2.5(3.1.1. Data)111 486 R(types)2.5 E
-2.5(3.1.1.1. Basic)111 510 R(types)2.5 E F0(i32 - signed inte)111 525.6
-Q(ger of size 32 bits)-.15 E(u32 - unsigned inte)111 549.6 Q
-(ger of size 32 bits)-.15 E(i64 - signed inte)111 573.6 Q
-(ger of size 64 bits)-.15 E(u64 - unsigned inte)111 597.6 Q
-(ger of size 64 bits)-.15 E(char - single ascii code)111 621.6 Q F1 2.5
-(3.1.1.2. Adv)111 657.6 R(aced types)-.1 E F0
-(function - a function that can be used)111 673.2 Q
-(struct - initilizer for an object)111 697.2 Q
-(obj - instace of a struct)111 721.2 Q 0 Cg EP
+(en as standard and man)-.1 F 3.455(yc)-.15 G .955(ore functions will)
+-3.455 F(use them.)111 561.6 Q F1 2.5(3.1.1. Data)111 597.6 R(types)2.5
+E 2.5(3.1.1.1. Basic)111 621.6 R(types)2.5 E F0(i32 - signed inte)111
+637.2 Q(ger of size 32 bits)-.15 E(u32 - unsigned inte)111 661.2 Q
+(ger of size 32 bits)-.15 E(i64 - signed inte)111 685.2 Q
+(ger of size 64 bits)-.15 E(u64 - unsigned inte)111 709.2 Q
+(ger of size 64 bits)-.15 E 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-12-)297.67 48 Q 1.204(generic - should be a)111
-84 R -.2(vo)-.2 G 1.204(ided, remo).2 F -.15(ve)-.15 G 3.704(sc).15 G
-1.203(hecks for data types when inputing v)-3.704 F 1.203
-(alues to functions)-.25 F(will cause man)111 96 Q 2.5(yr)-.15 G
+/F0 10/Times-Roman@0 SF(-12-)297.67 48 Q(char - single ascii code)111 84
+Q/F1 10/Times-Bold@0 SF 2.5(3.1.1.2. Adv)111 120 R(anced types)-.1 E F0
+(function - a function that can be used)111 135.6 Q
+(struct - initializer for an object)111 159.6 Q
+(obj - instance of a struct)111 183.6 Q 1.005(generic - should be a)111
+207.6 R -.2(vo)-.2 G 1.005(ided, remo).2 F -.15(ve)-.15 G 3.505(sc).15 G
+1.005(hecks for data types when inputting v)-3.505 F 1.005
+(alues to functions)-.25 F(will cause man)111 219.6 Q 2.5(yr)-.15 G
(untime errors, ho)-2.5 E(we)-.25 E -.15(ve)-.25 G 2.5(rw).15 G
-(hen absolutely needed it is useful)-2.5 E .007
-(err - error type, can be gi)111 120 R -.15(ve)-.25 G 2.507(nt).15 G
+(hen absolutely needed it is useful.)-2.5 E .008
+(err - error type, can be gi)111 243.6 R -.15(ve)-.25 G 2.507(nt).15 G
2.507(ot)-2.507 G .007(erminate function to bring do)-2.507 F .007
-(wn the program, or ha)-.25 F .308 -.15(ve i)-.2 H .008(nfo dra).15 F
-(wn)-.15 E(on the error)111 132 Q/F1 10/Times-Bold@0 SF 2.5
-(3.1.1.3. Arrays)111 168 R F0(Arrays can be sho)111 183.6 Q 2.5(wl)-.25
-G(ik)-2.5 E 2.5(es)-.1 G(o:)-2.5 E(x:type[])111 207.6 Q -.4(Wi)111 231.6
-S(th x being the v).4 E(airable name, type being the type of v)-.25 E
+(wn the program, or ha)-.25 F .307 -.15(ve i)-.2 H .007(nfo dra).15 F
+(wn)-.15 E(on the error)111 255.6 Q(.)-.55 E F1 2.5(3.1.1.3. Arrays)111
+291.6 R F0(Arrays can be sho)111 307.2 Q 2.5(wl)-.25 G(ik)-2.5 E 2.5(es)
+-.1 G(o:)-2.5 E(x:type[])111 331.2 Q -.4(Wi)111 355.2 S
+(th x being the v).4 E(ariable name, type being the type of v)-.25 E
(ariable, and [] sho)-.25 E(wing its an array)-.25 E
-(All arrays are dynamic, represented by a link)111 255.6 Q
-(ed list on the back end.)-.1 E F1 2.5(3.1.1.3.1. Strings)111 279.6 R F0
-(Strings, lik)111 295.2 Q 2.5(ei)-.1 G 2.5(nCa)-2.5 G
-(re arrays of chars)-2.5 E F1 2.5(3.1.2. Built)111 331.2 R(in functions)
-2.5 E 2.5(3.1.2.1. defun)111 355.2 R F0
-(\(defun a:type b:type returntype)111 370.8 Q(...)136 394.8 Q(...)136
-418.8 Q(\))111 442.8 Q .398(Returns a function that tak)111 466.8 R
+(All arrays are dynamic, represented by a link)111 379.2 Q
+(ed list on the back end.)-.1 E F1 2.5(3.1.1.3.1. Strings)111 403.2 R F0
+(Strings, lik)111 418.8 Q 2.5(ei)-.1 G 2.5(nCa)-2.5 G
+(re arrays of chars)-2.5 E F1 2.5(3.1.2. Built)111 454.8 R(in functions)
+2.5 E 2.5(3.1.2.1. defun)111 478.8 R F0
+(\(defun a:type b:type returntype)111 494.4 Q(...)136 518.4 Q(...)136
+542.4 Q(\))111 566.4 Q .397(Returns a function that tak)111 590.4 R
2.897(eAa)-.1 G .397(nd B as an ar)-2.897 F .397(gument \(\214x)-.18 F
-.397(ed types\), and returns a v)-.15 F .397(alue of return-)-.25 F
-(type.)111 478.8 Q F1 2.5(3.1.2.1.1. Err)111 502.8 R(ors)-.18 E F0
-(Can systax error)111 518.4 Q(.)-.55 E F1 2.5(3.1.2.2. let)111 554.4 R
-F0(\(let x:type v)111 570 Q(alue\))-.25 E F1 2.5(3.1.2.2.1. Err)111 594
-R(ors)-.18 E F0(Can systax error)111 609.6 Q(.)-.55 E
-(Creates constant x of type type to v)111 633.6 Q(alue.)-.25 E F1 2.5
-(3.1.2.3. set)111 669.6 R F0(\(set x:type v)111 685.2 Q(alue\))-.25 E
-(Creates/recreates the v)111 709.2 Q(airable v)-.25 E(alue of x to v)
--.25 E(alue.)-.25 E 0 Cg EP
+.397(ed types\), and returns a v)-.15 F .398(alue of return-)-.25 F
+(type.)111 602.4 Q F1 2.5(3.1.2.1.1. Err)111 626.4 R(ors)-.18 E F0
+(Can syntax error)111 642 Q(.)-.55 E F1 2.5(3.1.2.2. let)111 678 R F0
+(\(let x:type v)111 693.6 Q(alue\))-.25 E F1 2.5(3.1.2.2.1. Err)111
+717.6 R(ors)-.18 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-13-)297.67 48 Q/F1 10/Times-Bold@0 SF 2.5
-(3.1.2.3.1. Err)111 84 R(ors)-.18 E F0(Can systax error)111 99.6 Q(.)
--.55 E F1 2.5(3.1.2.4. if/elif/else)111 135.6 R F0
-(\(if condition function\))111 151.2 Q(\(elif condition function\))111
-175.2 Q(\(else function\))111 199.2 Q(Ex)111 235.2 Q
-(ecutes the function pro)-.15 E(vided if the conditon is true.)-.15 E
-(Elif w)111 259.2 Q(orks the same, e)-.1 E -.15(xe)-.15 G
-(pt only if the pre).15 E(vious if statement is f)-.25 E(alse.)-.1 E
-(Else e)111 283.2 Q -.15(xe)-.15 G(cutes only if all pre).15 E
-(vious statements were f)-.25 E(alse.)-.1 E F1 2.5(3.1.2.4.1. Err)111
-307.2 R(ors)-.18 E F0(Can systax error)111 322.8 Q(.)-.55 E F1 2.5
-(3.1.2.5. f)111 358.8 R(or)-.25 E F0(\(for i conditon function\))111
-374.4 Q
+/F0 10/Times-Roman@0 SF(-13-)297.67 48 Q(Can syntax error)111 84 Q(.)
+-.55 E(Creates constant x of type type to v)111 108 Q(alue.)-.25 E/F1 10
+/Times-Bold@0 SF 2.5(3.1.2.3. set)111 144 R F0(\(set x:type v)111 159.6
+Q(alue\))-.25 E(Creates/recreates the v)111 183.6 Q(ariable v)-.25 E
+(alue of x to v)-.25 E(alue.)-.25 E F1 2.5(3.1.2.3.1. Err)111 207.6 R
+(ors)-.18 E F0(Can syntax error)111 223.2 Q(.)-.55 E F1 2.5
+(3.1.2.4. if/elif/else)111 259.2 R F0(\(if condition function\))111
+274.8 Q(\(elif condition function\))111 298.8 Q(\(else function\))111
+322.8 Q(Ex)111 358.8 Q(ecutes the function pro)-.15 E
+(vided if the condition is true.)-.15 E(Elif w)111 382.8 Q
+(orks the same, e)-.1 E(xcept only if the pre)-.15 E
+(vious if statement is f)-.25 E(alse.)-.1 E(Else e)111 406.8 Q -.15(xe)
+-.15 G(cutes only if all pre).15 E(vious statements were f)-.25 E(alse.)
+-.1 E F1 2.5(3.1.2.4.1. Err)111 430.8 R(ors)-.18 E F0(Can syntax error)
+111 446.4 Q(.)-.55 E F1 2.5(3.1.2.5. f)111 482.4 R(or)-.25 E F0
+(\(for i \(condition\) function\))111 498 Q
(Runs the function while the condition is true, and increments i e)111
-398.4 Q -.15(ve)-.25 G(ry time the function is called.).15 E F1 2.5
-(3.1.2.5.1. Err)111 422.4 R(ors)-.18 E F0(Can systax error)111 438 Q(.)
--.55 E F1 2.5(3.1.2.6. while)111 486 R F0(\(while condition function\))
-111 501.6 Q(Runs the function if the condition is true, k)111 525.6 Q
+522 Q -.15(ve)-.25 G(ry time the function is called.).15 E F1 2.5
+(3.1.2.5.1. Err)111 546 R(ors)-.18 E F0(Can syntax error)111 561.6 Q(.)
+-.55 E F1 2.5(3.1.2.6. while)111 609.6 R F0
+(\(while condition function\))111 625.2 Q
+(Runs the function if the condition is true, k)111 649.2 Q
(eeps running until it is f)-.1 E(alse.)-.1 E F1 2.5(3.1.2.6.1. Err)111
-549.6 R(ors)-.18 E F0(Can systax error)111 565.2 Q(.)-.55 E F1 2.5
-(3.1.2.7. symbol)111 601.2 R F0
-(\(symbol a:type b:type c:type returntype name:char[] elf:char[]\))111
-616.8 Q .763(Returns a function that tak)111 640.8 R .763(es ar)-.1 F
-.763(guments A, B, C \(of \214x)-.18 F .764
-(ed types\), the name of the function, and)-.15 F
-(the \214le path of the elf.)111 652.8 Q F1 2.5(3.1.2.7.1. Err)111 676.8
-R(ors)-.18 E F0(Can systax error)111 692.4 Q(.)-.55 E(Can thro)111 716.4
-Q 2.5(wo)-.25 G(ther errors, via returning an err type)-2.5 E 0 Cg EP
+673.2 R(ors)-.18 E F0(Can syntax error)111 688.8 Q(.)-.55 E F1 2.5
+(3.1.2.7. symbol)111 724.8 R 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-14-)297.67 48 Q/F1 10/Times-Bold@0 SF 2.5
-(3.1.2.8. struct)111 84 R F0(\(struct)111 99.6 Q(_a:type)136 123.6 Q
-(b:type)136 147.6 Q(c:type)136 171.6 Q(\))111 195.6 Q .558
-(Returns a struct \(a class\) that can ha)111 219.6 R .857 -.15(ve a d)
--.2 H(ef).15 E .557(ault v)-.1 F .557(alue, the def)-.25 F .557(ault v)
--.1 F .557(alue can be set using an un-)-.25 F 1.136
-(derscore infront of the v)111 231.6 R 1.137(ariable name. A def)-.25 F
-1.137(ault v)-.1 F 1.137(airable will be returned if you use the struct)
--.25 F(without speci\214ng a v)111 243.6 Q(alue.)-.25 E
-(Use let to asign it a name:)111 267.6 Q(\(let a:struct \(struct)111
-291.6 Q(...)136 315.6 Q(...)136 339.6 Q(...)136 363.6 Q(\))136 387.6 Q
-(\))111 411.6 Q(Then to instatiate the stuct use the follo)111 435.6 Q
-(wing:)-.25 E(\(let a:obj struct\))111 459.6 Q(The struct ar)111 483.6 Q
+/F0 10/Times-Roman@0 SF(-14-)297.67 48 Q
+(\(symbol a:type b:type c:type returntype name:char[] elf:char[]\))111
+84 Q .764(Returns a function that tak)111 108 R .764(es ar)-.1 F .764
+(guments A, B, C \(of \214x)-.18 F .763
+(ed types\), the name of the function, and)-.15 F
+(the \214le path of the elf.)111 120 Q/F1 10/Times-Bold@0 SF 2.5
+(3.1.2.7.1. Err)111 144 R(ors)-.18 E F0(Can syntax error)111 159.6 Q(.)
+-.55 E(Can thro)111 183.6 Q 2.5(wo)-.25 G
+(ther errors, via returning an err type.)-2.5 E F1 2.5(3.1.2.8. struct)
+111 219.6 R F0(\(struct)111 235.2 Q(_a:type)136 259.2 Q(b:type)136 283.2
+Q(c:type)136 307.2 Q(\))111 331.2 Q .557
+(Returns a struct \(a class\) that can ha)111 355.2 R .857 -.15(ve a d)
+-.2 H(ef).15 E .557(ault v)-.1 F .557(alue, the def)-.25 F .558(ault v)
+-.1 F .558(alue can be set using an un-)-.25 F .923
+(derscore in front of the v)111 367.2 R .923(ariable name. A def)-.25 F
+.923(ault v)-.1 F .923(ariable will be returned if you use the struct)
+-.25 F(without specifying a v)111 379.2 Q(alue.)-.25 E
+(Use let to assign it a name:)111 403.2 Q(\(let a:struct \(struct)111
+427.2 Q(...)136 451.2 Q(...)136 475.2 Q(...)136 499.2 Q(\))136 523.2 Q
+(\))111 547.2 Q(Then to instantiate the struct use the follo)111 571.2 Q
+(wing:)-.25 E(\(let a:obj struct\))111 595.2 Q(The struct ar)111 619.2 Q
(gument needs to ha)-.18 E .3 -.15(ve b)-.2 H(een set prior).15 E(.)-.55
-E 1.6 -.8(To r)111 507.6 T(ead from the struct use this:).8 E
-(\(if \(= a.num b)111 531.6 Q(.num\) .... \))-.4 E(Or if you ha)111
-555.6 Q .3 -.15(ve s)-.2 H(et a def).15 E(ault v)-.1 E
-(alue you can use the follo)-.25 E(wing)-.25 E(\(if \(= a b)111 579.6 Q
-(.num\) .... \))-.4 E F1 2.5(3.1.2.8.1. Err)111 603.6 R(ors)-.18 E F0
-(Can systax error)111 619.2 Q(.)-.55 E F1 2.5(3.1.2.9. Arithmetic)111
-655.2 R(operations)2.5 E F0(Simple operations)111 670.8 Q
-(\(+ a b\) returns a + b)111 694.8 Q(\(- a b\) returns a - b)111 718.8 Q
-0 Cg EP
+E 1.6 -.8(To r)111 643.2 T(ead from the struct use this:).8 E
+(\(if \(= a.num b)111 667.2 Q(.num\) .... \))-.4 E(Or if you ha)111
+691.2 Q .3 -.15(ve s)-.2 H(et a def).15 E(ault v)-.1 E
+(alue you can use the follo)-.25 E(wing:)-.25 E(\(if \(= a b)111 715.2 Q
+(.num\) .... \))-.4 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-15-)297.67 48 Q(\(* a b\) returns a * b)111 84
-Q(\(/ a b\) returns a / b)111 108 Q/F1 10/Times-Bold@0 SF 2.5
-(3.1.2.10. Comparison)111 144 R F0(All return true or f)111 159.6 Q
-(alse)-.1 E(\(= a b\) returns if a = b)111 183.6 Q
-(\(!= a b\) returns if a != b)111 207.6 Q(\(> a b\) returns if a > b)111
-231.6 Q(\(< a b\) returns if a < b)111 255.6 Q
-(\(=> a b\) returns if a => b)111 279.6 Q(\(=< a b\) returns if a =< b)
-111 303.6 Q F1 2.5(3.1.2.10.1. Err)111 327.6 R(ors)-.18 E F0
-(Can systax error)111 343.2 Q(.)-.55 E F1 2.5(3.1.2.11. cast)111 379.2 R
-F0(\(cast a:generic type:char[]\))111 394.8 Q(returns a b)111 418.8 Q
-(ut cast to data type type, which is a string.)-.2 E F1 2.5
-(3.1.2.11.1. Err)111 442.8 R(ors)-.18 E F0(Can systax error)111 458.4 Q
-(.)-.55 E(Can thro)111 482.4 Q 2.5(we)-.25 G(rrors, via err)-2.5 E 2.5
-(,i)-.4 G 2.5(fv)-2.5 G(alue can')-2.75 E 2.5(tb)-.18 G 2.5(ec)-2.5 G
-(asted to gi)-2.5 E -.15(ve)-.25 G 2.5(nt).15 G(ype)-2.5 E F1 2.5
-(3.1.2.12. typeof)111 518.4 R F0(\(typeof a:generic\))111 534 Q
-(returns in a string the type that v)111 558 Q(ariable A is.)-.25 E F1
-2.5(3.1.2.12.1. Err)111 582 R(ors)-.18 E F0(Can systax error)111 597.6 Q
-(.)-.55 E F1 2.5(3.1.2.13. terminate)111 633.6 R F0
-(\(terminate error:error\))111 649.2 Q
-(Kills the program at the current point, frees all related memory)111
-673.2 Q 2.5(,p)-.65 G(rints error info stored in error)-2.5 E(.)-.55 E
-F1 2.5(3.1.2.13.1. Err)111 697.2 R(ors)-.18 E F0(Can systax error)111
-712.8 Q(.)-.55 E 0 Cg EP
+/F0 10/Times-Roman@0 SF(-15-)297.67 48 Q/F1 10/Times-Bold@0 SF 2.5
+(3.1.2.8.1. Err)111 84 R(ors)-.18 E F0(Can syntax error)111 99.6 Q(.)
+-.55 E F1 2.5(3.1.2.9. Arithmetic)111 135.6 R(operations)2.5 E F0
+(Simple operations)111 151.2 Q(\(+ a b\) returns a + b)111 175.2 Q
+(\(- a b\) returns a - b)111 199.2 Q(\(* a b\) returns a * b)111 223.2 Q
+(\(/ a b\) returns a / b)111 247.2 Q F1 2.5(3.1.2.10. Comparison)111
+283.2 R F0(All return true or f)111 298.8 Q(alse)-.1 E
+(\(= a b\) returns if a = b)111 322.8 Q(\(!= a b\) returns if a != b)111
+346.8 Q(\(> a b\) returns if a > b)111 370.8 Q
+(\(< a b\) returns if a < b)111 394.8 Q(\(=> a b\) returns if a => b)111
+418.8 Q(\(=< a b\) returns if a =< b)111 442.8 Q F1 2.5(3.1.2.10.1. Err)
+111 466.8 R(ors)-.18 E F0(Can syntax error)111 482.4 Q(.)-.55 E F1 2.5
+(3.1.2.11. cast)111 518.4 R F0(\(cast a:generic type:char[]\))111 534 Q
+(returns a b)111 558 Q(ut cast to data type type, which is a string.)-.2
+E F1 2.5(3.1.2.11.1. Err)111 582 R(ors)-.18 E F0(Can syntax error)111
+597.6 Q(.)-.55 E(Can thro)111 621.6 Q 2.5(we)-.25 G(rrors, via err)-2.5
+E 2.5(,i)-.4 G 2.5(fv)-2.5 G(alue can')-2.75 E 2.5(tb)-.18 G 2.5(ec)-2.5
+G(ast to a gi)-2.5 E -.15(ve)-.25 G 2.5(nt).15 G(ype.)-2.5 E F1 2.5
+(3.1.2.12. typeof)111 657.6 R F0(\(typeof a:generic\))111 673.2 Q
+(returns in a string the type that v)111 697.2 Q(ariable A is.)-.25 E F1
+2.5(3.1.2.12.1. Err)111 721.2 R(ors)-.18 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-16-)297.67 48 Q/F1 10/Times-Bold@0 SF 2.5
-(3.1.2.14. r)111 84 R(etur)-.18 E(n)-.15 E F0(\(return a:type\))111 99.6
-Q(Must be used in defun, returns "a" from the function, "a" must be of \
-the functions return type.)111 123.6 Q F1 2.5(3.1.2.14.1. Err)111 147.6
-R(ors)-.18 E F0(Can systax error)111 163.2 Q(.)-.55 E(Can thro)111 187.2
-Q 2.5(we)-.25 G(rros via err)-2.5 E(.)-.55 E F1 2.5(4. T)111 223.2 R
-(echnical Solution)-.92 E 2.5(5. T)111 247.2 R(esting)-.92 E 2.5(6. Ev)
-111 271.2 R(aluation)-.1 E 0 Cg EP
+/F0 10/Times-Roman@0 SF(-16-)297.67 48 Q(Can syntax error)111 84 Q(.)
+-.55 E/F1 10/Times-Bold@0 SF 2.5(3.1.2.13. terminate)111 120 R F0
+(\(terminate error:error\))111 135.6 Q
+(Kills the program at the current point, frees all related memory)111
+159.6 Q 2.5(,p)-.65 G(rints error info stored in error)-2.5 E(.)-.55 E
+F1 2.5(3.1.2.13.1. Err)111 183.6 R(ors)-.18 E F0(Can syntax error)111
+199.2 Q(.)-.55 E F1 2.5(3.1.2.14. r)111 235.2 R(etur)-.18 E(n)-.15 E F0
+(\(return a:type\))111 250.8 Q(Must be used in defun, returns "a" from \
+the function, "a" must be of the functions return type.)111 274.8 Q F1
+2.5(3.1.2.14.1. Err)111 298.8 R(ors)-.18 E F0(Can syntax error)111 314.4
+Q(.)-.55 E(Can thro)111 338.4 Q 2.5(we)-.25 G(rrors via err)-2.5 E(.)
+-.55 E F1 2.5(3.1.3. Questionar)111 362.4 R 2.5(e2f)-.18 G(or Rayn M)
+-2.75 E 2.5(4. T)111 398.4 R(echnical Solution)-.92 E 2.5(5. T)111 422.4
+R(esting)-.92 E 2.5(6. Ev)111 446.4 R(aluation)-.1 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/comp/lucas-standen-NEA/writeup/questions-for-amy.ps b/comp/lucas-standen-NEA/writeup/questions-for-amy.ps
index cbf4af8..dfbb86a 100644
--- a/comp/lucas-standen-NEA/writeup/questions-for-amy.ps
+++ b/comp/lucas-standen-NEA/writeup/questions-for-amy.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.23.0
-%%CreationDate: Thu May 9 13:10:36 2024
+%%CreationDate: Mon May 13 12:58:05 2024
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Roman
%%DocumentSuppliedResources: procset grops 1.23 0
diff --git a/comp/lucas-standen-NEA/writeup/questions-for-rayn.ms b/comp/lucas-standen-NEA/writeup/questions-for-rayn.ms
new file mode 100644
index 0000000..99f4cab
--- /dev/null
+++ b/comp/lucas-standen-NEA/writeup/questions-for-rayn.ms
@@ -0,0 +1,13 @@
+.NH 1
+What do you think about the language definition?
+.LP
+<ANS 1>
+.NH 1
+Is there anything that you didn't understand?
+.LP
+<ANS 2>
+.NH 1
+Is there anything you would add/change?
+.LP
+<ANS 3>
+
diff --git a/comp/lucas-standen-NEA/writeup/questions-for-rayn.ps b/comp/lucas-standen-NEA/writeup/questions-for-rayn.ps
new file mode 100644
index 0000000..3d5efe0
--- /dev/null
+++ b/comp/lucas-standen-NEA/writeup/questions-for-rayn.ps
@@ -0,0 +1,274 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.23.0
+%%CreationDate: Mon May 13 12:58:05 2024
+%%DocumentNeededResources: font Times-Bold
+%%+ font Times-Roman
+%%DocumentSuppliedResources: procset grops 1.23 0
+%%Pages: 1
+%%PageOrder: Ascend
+%%DocumentMedia: Default 612 792 0 () ()
+%%Orientation: Portrait
+%%EndComments
+%%BeginDefaults
+%%PageMedia: Default
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset grops 1.23 0
+%!PS-Adobe-3.0 Resource-ProcSet
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+% The ASCII code of the space character.
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+% name size font SF -
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+% name a c d font MF -
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll % b
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+% Enable manual feed.
+% MANUAL -
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+% Guess the page length.
+% This assumes that the imageable area is vertically centered on the page.
+% PLG - length
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+% BP -
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+DEFS/BPhook known{DEFS begin BPhook end}if
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}def
+% centerx centery radius startangle endangle DA -
+/DA{
+newpath arcn stroke
+}bind def
+% x y SN - x' y'
+% round a position to nearest (pixel + (.25,.25))
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+% endx endy startx starty DL -
+% we round the endpoints of the line, so that parallel horizontal
+% and vertical lines will appear even
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+% centerx centery radius DC -
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+% width height centerx centery DE -
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+% these are for splines
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+% fill the last path
+% r g b Fr -
+/Fr{
+setrgbcolor fill
+}bind def
+% c m y k Fk -
+/setcmykcolor where{
+pop
+/Fk{
+setcmykcolor fill
+}bind def
+}if
+% g Fg -
+/Fg{
+setgray fill
+}bind def
+% fill with the "current color"
+/FL/fill load def
+/LW/setlinewidth load def
+/Cr/setrgbcolor load def
+/setcmykcolor where{
+pop
+/Ck/setcmykcolor load def
+}if
+/Cg/setgray load def
+% new_font_name encoding_vector old_font_name RE -
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne
+2 index/UniqueID ne
+and
+{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+% hpos vpos EBEGIN -
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+% llx lly newwid wid newht ht newllx newlly PBEGIN -
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+% set the graphics state to default values
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+%
+% Any included setpagedevice should be ignored.
+% See: http://www.w-beer.de/doc/ps/.
+%
+/setpagedevice{}def
+mark
+}bind def
+/PEND{
+cleartomark
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%%BeginFeature: *PageSize Default
+<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
+%%EndFeature
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Roman
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Roman@0 ENC0/Times-Roman RE/Times-Bold@0 ENC0/Times-Bold RE
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Bold@0 SF 2.5(1. What)72 84 R(do y)2.5 E
+(ou think about the language de\214nition?)-.25 E/F1 10/Times-Roman@0 SF
+(<ANS 1>)72 99.6 Q F0 2.5(2. Is)72 123.6 R(ther)2.5 E 2.5(ea)-.18 G
+(nything that y)-2.5 E(ou didn't understand?)-.25 E F1(<ANS 2>)72 139.2
+Q F0 2.5(3. Is)72 163.2 R(ther)2.5 E 2.5(ea)-.18 G(nything y)-2.5 E
+(ou w)-.25 E(ould add/change?)-.1 E F1(<ANS 3>)72 178.8 Q 0 Cg EP
+%%Trailer
+end
+%%EOF