diff options
-rw-r--r-- | comp/lucas-standen-NEA/writeup/coverpage.ms | 99 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/writeup/coverpage.ps | 1169 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/writeup/questions-for-amy.ps | 2 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/writeup/questions-for-rayn.ms | 13 | ||||
-rw-r--r-- | comp/lucas-standen-NEA/writeup/questions-for-rayn.ps | 274 |
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 |