summaryrefslogtreecommitdiff
path: root/comp/lucas-standen-NEA/writeup/coverpage.ps
diff options
context:
space:
mode:
Diffstat (limited to 'comp/lucas-standen-NEA/writeup/coverpage.ps')
-rw-r--r--comp/lucas-standen-NEA/writeup/coverpage.ps429
1 files changed, 213 insertions, 216 deletions
diff --git a/comp/lucas-standen-NEA/writeup/coverpage.ps b/comp/lucas-standen-NEA/writeup/coverpage.ps
index 6e032c1..a5f55b6 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: Tue May 21 15:38:13 2024
+%%CreationDate: Thu Jun 6 13:22:18 2024
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Italic
%%+ font Times-Roman
@@ -12,7 +12,7 @@
%%+ file linkedlist.ps
%%+ procset grops 1.23 0
%%LanguageLevel: 2
-%%Pages: 20
+%%Pages: 19
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
@@ -52490,284 +52490,281 @@ BP
(ger of size 64 bits)-.15 E(char - single ascii code)111 156 Q
(\215oat - standard C \215oat)111 180 Q/F1 10/Times-Bold@0 SF 2.5
(3.1.1.2. Adv)111 216 R(anced types)-.1 E F0
-(function - a function that can be used)111 231.6 Q
-(struct - initializer for an object)111 255.6 Q
-(obj - instance of a struct)111 279.6 Q 1.005(generic - should be a)111
-303.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 315.6 Q 2.5(yr)-.15 G
+(function - a function that can be used)111 231.6 Q 1.005
+(generic - should be a)111 255.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 267.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 .008
-(err - error type, can be gi)111 339.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 .307 -.15(ve i)-.2 H .007(nfo dra).15 F
-(wn)-.15 E(on the error)111 351.6 Q(.)-.55 E F1 2.5(3.1.1.3. Arrays)111
-387.6 R F0(Arrays can be sho)111 403.2 Q 2.5(wl)-.25 G(ik)-2.5 E 2.5(es)
--.1 G(o:)-2.5 E(x:type[])111 427.2 Q -.4(Wi)111 451.2 S
+(hen absolutely needed it is useful.)-2.5 E F1 2.5(3.1.1.3. Arrays)111
+303.6 R F0(Arrays can be sho)111 319.2 Q 2.5(wl)-.25 G(ik)-2.5 E 2.5(es)
+-.1 G(o:)-2.5 E(x:type[])111 343.2 Q -.4(Wi)111 367.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 475.2 Q
-(ed list on the back end.)-.1 E F1 2.5(3.1.1.3.1. Strings)111 499.2 R F0
-(Strings, lik)111 514.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 550.8 R(in functions)
-2.5 E 2.5(3.1.2.1. defun)111 574.8 R F0
-(\(defun a:type b:type returntype)111 590.4 Q(...)131 602.4 Q(...)131
-614.4 Q(\))111 638.4 Q .397(Returns a function that tak)111 662.4 R
+(All arrays are dynamic, represented by a link)111 391.2 Q
+(ed list on the back end.)-.1 E F1 2.5(3.1.1.3.1. Strings)111 415.2 R F0
+(Strings, lik)111 430.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 466.8 R(in functions)
+2.5 E 2.5(3.1.2.1. defun)111 490.8 R F0
+(\(defun a:type b:type returntype)111 506.4 Q(...)131 518.4 Q(...)131
+530.4 Q(\))111 554.4 Q .398(Returns a function that tak)111 578.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 .398(alue of return-)-.25 F
-(type.)111 674.4 Q F1 2.5(3.1.2.1.1. Err)111 698.4 R(ors)-.18 E F0
-(Can syntax error)111 714 Q(.)-.55 E 0 Cg EP
+.397(ed types\), and returns a v)-.15 F .397(alue of return-)-.25 F
+(type.)111 590.4 Q F1 2.5(3.1.2.2. let)111 626.4 R F0(\(let x:type v)111
+642 Q(alue\))-.25 E(Creates constant x of type type to v)111 666 Q
+(alue.)-.25 E F1 2.5(3.1.2.3. set)111 702 R F0(\(set x:type v)111 717.6
+Q(alue\))-.25 E 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.2. let)111 84 R F0(\(let x:type v)111 99.6 Q(alue\))-.25 E F1 2.5
-(3.1.2.2.1. Err)111 123.6 R(ors)-.18 E F0(Can syntax error)111 139.2 Q
-(.)-.55 E(Creates constant x of type type to v)111 163.2 Q(alue.)-.25 E
-F1 2.5(3.1.2.3. set)111 199.2 R F0(\(set x:type v)111 214.8 Q(alue\))
--.25 E(Creates/recreates the v)111 238.8 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 262.8 R
-(ors)-.18 E F0(Can syntax error)111 278.4 Q(.)-.55 E F1 2.5
-(3.1.2.4. if/elif/else)111 314.4 R F0(\(if condition function\))111 330
-Q(\(elif condition function\))111 354 Q(\(else function\))111 378 Q(Ex)
-111 414 Q(ecutes the function pro)-.15 E
-(vided if the condition is true.)-.15 E(Elif w)111 438 Q
+/F0 10/Times-Roman@0 SF(-14-)297.67 48 Q(Creates/recreates the v)111 84
+Q(ariable v)-.25 E(alue of x to v)-.25 E(alue.)-.25 E/F1 10/Times-Bold@0
+SF 2.5(3.1.2.4. if/elif/else)111 120 R F0(\(if condition function\))111
+135.6 Q(\(elif condition function\))111 159.6 Q(\(else function\))111
+183.6 Q(Ex)111 219.6 Q(ecutes the function pro)-.15 E
+(vided if the condition is true.)-.15 E(Elif w)111 243.6 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 462 Q -.15(xe)
+(vious if statement is f)-.25 E(alse.)-.1 E(Else e)111 267.6 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 486 R(ors)-.18 E F0(Can syntax error)111
-501.6 Q(.)-.55 E F1 2.5(3.1.2.5. f)111 537.6 R(or)-.25 E F0
-(\(for i \(condition\) function\))111 553.2 Q
+-.1 E F1 2.5(3.1.2.5. f)111 303.6 R(or)-.25 E F0
+(\(for i \(condition\) function\))111 319.2 Q
(Runs the function while the condition is true, and increments i e)111
-577.2 Q -.15(ve)-.25 G(ry time the function is called.).15 E F1 2.5
-(3.1.2.5.1. Err)111 601.2 R(ors)-.18 E F0(Can syntax error)111 616.8 Q
-(.)-.55 E F1 2.5(3.1.2.6. while)111 664.8 R F0
-(\(while condition function\))111 680.4 Q
-(Runs the function if the condition is true, k)111 704.4 Q
-(eeps running until it is f)-.1 E(alse.)-.1 E F1 2.5(3.1.2.6.1. Err)111
-728.4 R(ors)-.18 E 0 Cg EP
+343.2 Q -.15(ve)-.25 G(ry time the function is called.).15 E F1 2.5
+(3.1.2.6. while)111 379.2 R F0(\(while condition function\))111 394.8 Q
+(Runs the function if the condition is true, k)111 418.8 Q
+(eeps running until it is f)-.1 E(alse.)-.1 E F1 2.5(3.1.2.7. symbol)111
+454.8 R F0
+(\(symbol a:type b:type c:type returntype name:char[] elf:char[]\))111
+470.4 Q .763(Returns a function that tak)111 494.4 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 506.4 Q F1(3.1.2.7.1.)111 530.4 Q 2.5
+(3.1.2.8. Arithmetic)111 566.4 R(operations)2.5 E F0(Simple operations)
+111 582 Q(\(+ a b\) returns a + b)111 606 Q(\(- a b\) returns a - b)111
+630 Q(\(* a b\) returns a * b)111 654 Q(\(/ a b\) returns a / b)111 678
+Q F1 2.5(3.1.2.9. Comparison)111 714 R F0(All return true or f)111 729.6
+Q(alse)-.1 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-15-)297.67 48 Q(Can syntax error)111 84 Q(.)
--.55 E/F1 10/Times-Bold@0 SF 2.5(3.1.2.7. symbol)111 120 R F0
-(\(symbol a:type b:type c:type returntype name:char[] elf:char[]\))111
-135.6 Q .764(Returns a function that tak)111 159.6 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 171.6 Q F1 2.5(3.1.2.7.1. Err)111 195.6
-R(ors)-.18 E F0(Can syntax error)111 211.2 Q(.)-.55 E(Can thro)111 235.2
-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 271.2 R F0(\(struct)111 286.8 Q(_a:type)131 298.8 Q
-(b:type)131 310.8 Q(c:type)131 322.8 Q(\))111 346.8 Q .557
-(Returns a struct \(a class\) that can ha)111 370.8 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 382.8 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 394.8 Q(alue.)-.25 E
-(Use let to assign it a name:)111 418.8 Q(\(let a:struct \(struct)111
-442.8 Q(...)131 454.8 Q(...)131 466.8 Q(...)131 478.8 Q(\))131 490.8 Q
-(\))111 514.8 Q(Then to instantiate the struct use the follo)111 538.8 Q
-(wing:)-.25 E(\(let a:obj struct\))111 562.8 Q(The struct ar)111 586.8 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 610.8 T(ead from the struct use this:).8 E
-(\(if \(= a.num b)111 634.8 Q(.num\) .... \))-.4 E(Or if you ha)111
-658.8 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 682.8 Q
-(.num\) .... \))-.4 E F1 2.5(3.1.2.8.1. Err)111 706.8 R(ors)-.18 E F0
-(Can syntax error)111 722.4 Q(.)-.55 E 0 Cg EP
+/F0 10/Times-Roman@0 SF(-15-)297.67 48 Q(\(= a b\) returns if a = b)111
+84 Q(\(!= a b\) returns if a != b)111 108 Q(\(> a b\) returns if a > b)
+111 132 Q(\(< a b\) returns if a < b)111 156 Q
+(\(=> a b\) returns if a => b)111 180 Q(\(=< a b\) returns if a =< b)111
+204 Q/F1 10/Times-Bold@0 SF 2.5(3.1.2.10. cast)111 240 R F0
+(\(cast a:generic type:char[]\))111 255.6 Q(returns a b)111 279.6 Q
+(ut cast to data type type, which is a string.)-.2 E F1 2.5
+(3.1.2.11. typeof)111 315.6 R F0(\(typeof a:generic\))111 331.2 Q
+(returns in a string the type that v)111 355.2 Q(ariable A is.)-.25 E F1
+2.5(3.1.2.12. terminate)111 391.2 R F0(\(terminate error:error\))111
+406.8 Q
+(Kills the program at the current point, frees all related memory)111
+430.8 Q 2.5(,p)-.65 G(rints error info stored in error)-2.5 E(.)-.55 E
+F1 2.5(3.1.2.13. r)111 466.8 R(etur)-.18 E(n)-.15 E F0
+(\(return a:type\))111 482.4 Q(Must be used in defun, returns "a" from \
+the function, "a" must be of the functions return type.)111 506.4 Q F1
+2.5(3.1.3. List)111 542.4 R(of k)2.5 E(eyw)-.1 E(ords)-.1 E F0(defun)111
+558 Q(for)111 582 Q(while)111 606 Q(if)111 630 Q(elif)111 654 Q(else)111
+678 Q -.15(ex)111 702 S(it).15 E(return)111 726 Q 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.9. Arithmetic)111 84 R(operations)2.5 E F0(Simple operations)111
-99.6 Q(\(+ a b\) returns a + b)111 123.6 Q(\(- a b\) returns a - b)111
-147.6 Q(\(* a b\) returns a * b)111 171.6 Q(\(/ a b\) returns a / b)111
-195.6 Q F1 2.5(3.1.2.10. Comparison)111 231.6 R F0(All return true or f)
-111 247.2 Q(alse)-.1 E(\(= a b\) returns if a = b)111 271.2 Q
-(\(!= a b\) returns if a != b)111 295.2 Q(\(> a b\) returns if a > b)111
-319.2 Q(\(< a b\) returns if a < b)111 343.2 Q
-(\(=> a b\) returns if a => b)111 367.2 Q(\(=< a b\) returns if a =< b)
-111 391.2 Q F1 2.5(3.1.2.10.1. Err)111 415.2 R(ors)-.18 E F0
-(Can syntax error)111 430.8 Q(.)-.55 E F1 2.5(3.1.2.11. cast)111 466.8 R
-F0(\(cast a:generic type:char[]\))111 482.4 Q(returns a b)111 506.4 Q
-(ut cast to data type type, which is a string.)-.2 E F1 2.5
-(3.1.2.11.1. Err)111 530.4 R(ors)-.18 E F0(Can syntax error)111 546 Q(.)
--.55 E(Can thro)111 570 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 606 R F0(\(typeof a:generic\))111 621.6 Q
-(returns in a string the type that v)111 645.6 Q(ariable A is.)-.25 E F1
-2.5(3.1.2.12.1. Err)111 669.6 R(ors)-.18 E F0(Can syntax error)111 685.2
-Q(.)-.55 E F1 2.5(3.1.2.13. terminate)111 721.2 R 0 Cg EP
+/F0 10/Times-Roman@0 SF(-16-)297.67 48 Q(symbol)111 84 Q(set)111 108 Q
+(let)111 132 Q/F1 10/Times-Bold@0 SF 2.5(3.2. Memory)111 168 R
+(management)2.5 E F0 .54(Memory will be allocated when a v)111 183.6 R
+.54(ariable is initialized, and freed when the program stops.)-.25 F
+(Al-)5.54 E(though this isn')111 195.6 Q 2.5(tt)-.18 G(he f)-2.5 E
+(astest method, it is simple and has less runtime o)-.1 E -.15(ve)-.15 G
+(rhead.).15 E F1 2.5(3.3. Questionnair)111 231.6 R 2.5(e2f)-.18 G
+(or Rayn M)-2.75 E 2.5(3.3.1. Ho)111 255.6 R 2.5(wd)-.1 G 2.5(oy)-2.5 G
+(ou \214nd this lay)-2.75 E(out of the language?)-.25 E/F2 10
+/Times-Italic@0 SF .745(\(5-6 points\))111.08 271.2 R F0 3.245(-Il)3.305
+G(ik)-3.245 E 3.245(et)-.1 G .745
+(he immutable nature of the language - I lik)-3.245 F 3.245(et)-.1 G
+.745(he simplicity - I lik)-3.245 F 3.245(et)-.1 G .745(he lo)-3.245 F
+(w)-.25 E(le)111 283.2 Q -.15(ve)-.25 G 3.284(lp).15 G .783
+(erformance this will ha)-3.284 F 1.083 -.15(ve - I d)-.2 H(islik).15 E
+3.283(et)-.1 G .783(he w)-3.283 F .783(ord terminate - I lik)-.1 F 3.283
+(et)-.1 G .783(he procedural approach,)-3.283 F(with the function rob)
+111 295.2 Q(ustness - I dislik)-.2 E 2.5(et)-.1 G(he brack)-2.5 E(ets!)
+-.1 E F1 2.5(3.3.2. Response)111 319.2 R F0 .103
+(Although he does dislik)111 334.8 R 2.603(es)-.1 G .103
+(ome of my features I belie)-2.603 F .403 -.15(ve t)-.25 H .103
+(hem to be core parts of the language so I).15 F .863(will k)111 346.8 R
+.863(eep them. I will also k)-.1 F .863
+(eep his points in mind though, I don')-.1 F 3.363(tw)-.18 G .863
+(ant to discourage learning)-3.463 F
+(the language due to its abstract syntax.)111 358.8 Q(Ho)111 382.8 Q(we)
+-.25 E -.15(ve)-.25 G 2.5(ra).15 G 2.5(sp)-2.5 G
+(er his request I will change the terminate k)-2.5 E -.15(ey)-.1 G -.1
+(wo).15 G(rd to the more normal e).1 E(xit.)-.15 E(An updated k)111
+406.8 Q -.15(ey)-.1 G -.1(wo).15 G(rd list is as \215o).1 E(ws:)-.25 E
+(defun)111 430.8 Q(for)111 454.8 Q(while)111 478.8 Q(if)111 502.8 Q
+(elif)111 526.8 Q(else)111 550.8 Q -.15(ex)111 574.8 S(it).15 E(return)
+111 598.8 Q(symbol)111 622.8 Q(set)111 646.8 Q(let)111 670.8 Q F1 2.5
+(3.4. What)111 706.8 R(language do y)2.5 E(ou use to mak)-.25 E 2.5(eap)
+-.1 G -.18(ro)-2.5 G(gramming language).18 E F0 .34
+(As mentioned before Zipp)111 722.4 R 2.84(yw)-.1 G .34
+(ill be written in C, with some parts being written in Zipp)-2.84 F 2.84
+(yi)-.1 G 2.84(tself. I)-2.84 F 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-17-)297.67 48 Q(\(terminate error:error\))111
-84 Q(Kills the program at the current point, frees all related memory)
-111 108 Q 2.5(,p)-.65 G(rints error info stored in error)-2.5 E(.)-.55 E
-/F1 10/Times-Bold@0 SF 2.5(3.1.2.13.1. Err)111 132 R(ors)-.18 E F0
-(Can syntax error)111 147.6 Q(.)-.55 E F1 2.5(3.1.2.14. r)111 183.6 R
-(etur)-.18 E(n)-.15 E F0(\(return a:type\))111 199.2 Q(Must be used in \
-defun, returns "a" from the function, "a" must be of the functions retu\
-rn type.)111 223.2 Q F1 2.5(3.1.2.14.1. Err)111 247.2 R(ors)-.18 E F0
-(Can syntax error)111 262.8 Q(.)-.55 E(Can thro)111 286.8 Q 2.5(we)-.25
-G(rrors via err)-2.5 E(.)-.55 E F1 2.5(3.2. Questionnair)111 310.8 R 2.5
-(e2f)-.18 G(or Rayn M)-2.75 E 2.5(3.3. What)111 346.8 R(language do y)
-2.5 E(ou use to mak)-.25 E 2.5(eap)-.1 G -.18(ro)-2.5 G
-(gramming language).18 E F0 .34(As mentioned before Zipp)111 362.4 R
-2.84(yw)-.1 G .34
-(ill be written in C, with some parts being written in Zipp)-2.84 F 2.84
-(yi)-.1 G 2.84(tself. I)-2.84 F(will try and k)111 374.4 Q
+/F0 10/Times-Roman@0 SF(-17-)297.67 48 Q(will try and k)111 84 Q
(eep most dependencies/libraries to a minimal to mak)-.1 E 2.5(et)-.1 G
-(he project easier to manage.)-2.5 E F1 2.5(3.3.1. What)111 410.4 R
-(is C?)2.5 E F0 3.027(Cw)111 426 S .527
+(he project easier to manage.)-2.5 E/F1 10/Times-Bold@0 SF 2.5
+(3.4.1. What)111 120 R(is C?)2.5 E F0 3.027(Cw)111 135.6 S .527
(as made by Dennis Ritchie, in 1972 at A)-3.127 F(T&T')-1.11 E 3.026(sb)
-.55 G .526(ell labs. It w)-3.026 F .526(as designed to mak)-.1 F 3.026
-(ep)-.1 G(rogram-)-3.026 E .067(ming lo)111 438 R 2.567(wl)-.25 G -2.15
--.25(ev e)-2.567 H 2.567(ls).25 G .067(ystems f)-2.567 F .067
+(ep)-.1 G(rogram-)-3.026 E .067(ming lo)111 147.6 R 2.567(wl)-.25 G
+-2.15 -.25(ev e)-2.567 H 2.567(ls).25 G .067(ystems f)-2.567 F .067
(ar easier than it had been before. It w)-.1 F .068
-(as used to create the unix operating)-.1 F .65(system which w)111 450 R
-.65(ould go on to inspire most modern operating systems in some w)-.1 F
-(ay)-.1 E 3.15(.\()-.65 G .65(macos still)-3.15 F
-(has code from the original release of C+unix\).)111 462 Q .377
+(as used to create the unix operating)-.1 F .65(system which w)111 159.6
+R .65(ould go on to inspire most modern operating systems in some w)-.1
+F(ay)-.1 E 3.15(.\()-.65 G .65(macos still)-3.15 F
+(has code from the original release of C+unix\).)111 171.6 Q .377
(The language quickly caught on outside of bell labs after more a)111
-486 R -.25(va)-.2 G .378(ilable releases of unix arri).25 F -.15(ve)-.25
-G(d).15 E .102(such as bsd 4.4, sun os and GNU. It w)111 498 R .102
-(as found to be able to do all the things that you could do in)-.1 F
-(ASM ho)111 510 Q(we)-.25 E -.15(ve)-.25 G 2.5(rw).15 G(ith f)-2.5 E
-(ar less a headache.)-.1 E F1 2.5(3.3.2. Wh)111 546 R 2.5(yi)-.15 G 2.5
-(sC)-2.5 G(?)-2.5 E F0 .469(As mentioned C can do an)111 561.6 R .469
+195.6 R -.25(va)-.2 G .378(ilable releases of unix arri).25 F -.15(ve)
+-.25 G(d).15 E .102(such as bsd 4.4, sun os and GNU. It w)111 207.6 R
+.102(as found to be able to do all the things that you could do in)-.1 F
+(ASM ho)111 219.6 Q(we)-.25 E -.15(ve)-.25 G 2.5(rw).15 G(ith f)-2.5 E
+(ar less a headache.)-.1 E F1 2.5(3.4.2. Wh)111 255.6 R 2.5(yi)-.15 G
+2.5(sC)-2.5 G(?)-2.5 E F0 .469(As mentioned C can do an)111 271.2 R .469
(ything that ASM can do, meaning it is lightning f)-.15 F .469
-(ast and can tak)-.1 F 2.969(ea)-.1 G(d-)-2.969 E -.25(va)111 573.6 S
+(ast and can tak)-.1 F 2.969(ea)-.1 G(d-)-2.969 E -.25(va)111 283.2 S
.345(ntage of direct memory access. This allo).25 F .345(ws you to mak)
-.25 F 2.845(ev)-.1 G .345(ery f)-2.995 F .345(ast lightweight e)-.1 F
--.15(xe)-.15 G .345(cutables that).15 F .239(can ri)111 585.6 R -.25(va)
+-.15(xe)-.15 G .345(cutables that).15 F .239(can ri)111 295.2 R -.25(va)
-.25 G 2.739(lt).25 G .239(he performance of handwritten ASM \(often be\
ating it if you enable compiler optimisa-)-2.739 F .159
-(tions\). It is this that mak)111 597.6 R .159
+(tions\). It is this that mak)111 307.2 R .159
(es C the perfect language for an)-.1 F 2.659(ya)-.15 G .158
-(nd all programming languages, where)-2.659 F(speed is k)111 609.6 Q
+(nd all programming languages, where)-2.659 F(speed is k)111 319.2 Q
-.15(ey)-.1 G 2.5(,a)-.5 G(nd allfeatures need to be a)-2.5 E -.25(va)
--.2 G(ilable are present.).25 E F1 2.5(3.3.3. Ho)111 645.6 R 2.5(wi)-.1
-G 2.5(sC)-2.5 G(?)-2.5 E F0 3.214(Ci)111 661.2 S 3.214(sc)-3.214 G .714
+-.2 G(ilable are present.).25 E F1 2.5(3.4.3. Ho)111 355.2 R 2.5(wi)-.1
+G 2.5(sC)-2.5 G(?)-2.5 E F0 3.214(Ci)111 370.8 S 3.214(sc)-3.214 G .714
(ompiled to ASM, the main compilers a)-3.214 F -.25(va)-.2 G .715
(ilable are clang, gcc and MSVC, I will be using).25 F
-(gcc as it is generally standard in linux en)111 673.2 Q(vironments.)-.4
-E(Man)111 697.2 Q 2.709(yb)-.15 G .209(uild systems are a)-2.909 F -.25
+(gcc as it is generally standard in linux en)111 382.8 Q(vironments.)-.4
+E(Man)111 406.8 Q 2.709(yb)-.15 G .209(uild systems are a)-2.909 F -.25
(va)-.2 G .209(ilable for C, the main ones being cmak).25 F 2.709(ea)-.1
-G .209(nd gnu mak)-2.709 F .208(e. Both of them)-.1 F(ha)111 709.2 Q
+G .209(nd gnu mak)-2.709 F .208(e. Both of them)-.1 F(ha)111 418.8 Q
.851 -.15(ve t)-.2 H .551
(he goal of putting the compiling process in one command. Cmak).15 F
3.052(ei)-.1 G 3.052(sc)-3.052 G .552(ross platform \(sorta)-3.052 F
-(windo)111 721.2 Q(ws doesn')-.25 E 2.5(tw)-.18 G(ork well b)-2.6 E
-(ut it does w)-.2 E(ork\).)-.1 E 0 Cg EP
+(windo)111 430.8 Q(ws doesn')-.25 E 2.5(tw)-.18 G(ork well b)-2.6 E
+(ut it does w)-.2 E(ork\).)-.1 E F1 2.5(3.4.4. Libraries)111 466.8 R F0
+(The libraries I will use are the follo)111 482.4 Q(wing:)-.25 E 2.5(Cs)
+111 506.4 S(tdlib)-2.5 E 2.5(Cu)111 530.4 S(nistd)-2.5 E 2.5(Ce)111
+554.4 S(rrno)-2.5 E(Unix de)111 578.4 Q(vice \214les)-.25 E(Zipp)111
+602.4 Q 2.5(ys)-.1 G(trings)-2.5 E(Zipp)111 626.4 Q 2.5(yg)-.1 G(raphs)
+-2.5 E(Zipp)111 650.4 Q 2.5(ys)-.1 G(orts)-2.5 E
+(Addition libraries \(may not be implemented\):)111 674.4 Q(Raylib)111
+698.4 Q 2.5(Cs)111 722.4 S(ock)-2.5 E(ets + Zipp)-.1 E 2.5(ys)-.1 G(ock)
+-2.5 E(ets)-.1 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-18-)297.67 48 Q/F1 10/Times-Bold@0 SF 2.5
-(3.3.4. Libraries)111 84 R F0(The libraries I will use are the follo)111
-99.6 Q(wing:)-.25 E 2.5(Cs)111 123.6 S(tdlib)-2.5 E 2.5(Cu)111 147.6 S
-(nistd)-2.5 E 2.5(Ce)111 171.6 S(rrno)-2.5 E(Unix de)111 195.6 Q
-(vice \214les)-.25 E(Zipp)111 219.6 Q 2.5(ys)-.1 G(trings)-2.5 E(Zipp)
-111 243.6 Q 2.5(yg)-.1 G(raphs)-2.5 E(Zipp)111 267.6 Q 2.5(ys)-.1 G
-(orts)-2.5 E(Addition libraries \(may not be implemented\):)111 291.6 Q
-(Raylib)111 315.6 Q 2.5(Cs)111 339.6 S(ock)-2.5 E(ets + Zipp)-.1 E 2.5
-(ys)-.1 G(ock)-2.5 E(ets)-.1 E F1 2.5(3.3.5. Modularization)111 375.6 R
-F0 2.062 -.8(To m)111 391.2 T(ak).8 E 2.962(et)-.1 G .462
-(he project more manageable I will split it into man)-2.962 F 2.961
-(yC\214)-.15 G .461(les, this is to k)-2.961 F .461(eep it from be-)-.1
-F(coming impossible to edit code.)111 403.2 Q
-(The \214le layout looks as follo)111 427.2 Q(ws:)-.25 E(Mak)121 451.2 Q
-(e\214le)-.1 E(ads)121 463.2 Q(Mak)131 475.2 Q(e\214le)-.1 E(ast)131
-487.2 Q(Mak)141 499.2 Q(e\214le)-.1 E(ast.c)141 511.2 Q(ast.h)141 523.2
-Q(types.c)141 535.2 Q(types.h)141 547.2 Q(dict)131 559.2 Q(Mak)143.5
-571.2 Q(e\214le)-.1 E(dict.c)143.5 583.2 Q(dict.h)143.5 595.2 Q
-(dicttest.c)143.5 607.2 Q(ll)131 619.2 Q(Mak)143.5 631.2 Q(e\214le)-.1 E
-(ll.c)143.5 643.2 Q(ll.h)143.5 655.2 Q(lltest.c)143.5 667.2 Q -.15(exe)
-121 679.2 S(cution).15 E(Mak)131 691.2 Q(e\214le)-.1 E -.15(exe)131
-703.2 S(c.c).15 E -.15(exe)131 715.2 S(c.h).15 E(types.c)131 727.2 Q 0
-Cg EP
-%%Page: 19 19
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-19-)297.67 48 Q(types.h)131 84 Q(libs)121 96 Q
-(Mak)131 108 Q(e\214le)-.1 E(graphs)131 120 Q(graphs.zp)141 132 Q(y)-.1
-E(io)131 144 Q(io.zp)141 156 Q(y)-.1 E(stdlib)131 168 Q(Mak)141 180 Q
-(e\214le)-.1 E(stdlib)141 192 Q(.c)-.4 E(stdlib)141 204 Q(.zp)-.4 E(y)
--.1 E(string)131 216 Q(string.zp)141 228 Q(y)-.1 E(proto)131 240 Q(ast)
-141 252 Q(Mak)151 264 Q(e\214le)-.1 E(ast.c)151 276 Q(astg.c)151 288 Q
-(astg.h)151 300 Q(tok)121 312 Q(enizer)-.1 E(Mak)131 324 Q(e\214le)-.1 E
-(parser)131 336 Q(.c)-.55 E(parser)131 348 Q(.h)-.55 E(tok)131 360 Q
-(enizer)-.1 E(.c)-.55 E(tok)131 372 Q(enizer)-.1 E(.h)-.55 E(types.c)131
-384 Q(types.h)131 396 Q(zp)121 408 Q(y)-.1 E(Mak)131 420 Q(e\214le)-.1 E
-(zp)131 432 Q -.65(y.)-.1 G(c).65 E(zp)131 444 Q(ycheck.c)-.1 E(zp)121
-456 Q(ycheck)-.1 E(Mak)131 468 Q(e\214le)-.1 E(errors.c)131 480 Q
-(errors.h)131 492 Q(zp)131 504 Q(ycheck.c)-.1 E(zp)131 516 Q(ycheck.h)
--.1 E(zp)121 528 Q(ypkg)-.1 E(deps.zp)131 540 Q(y)-.1 E(do)131 552 Q
-(wnload.zp)-.25 E(y)-.1 E(zp)131 564 Q(ypkg.zp)-.1 E(y)-.1 E .712
-(As you can see this is split up o)111 588 R -.15(ve)-.15 G 3.212(ra).15
-G .713(round 40 \214les and 16 folders, each \214le should not go o)
--3.212 F -.15(ve)-.15 G(r).15 E(~500 lines of code. This is to k)111 600
-Q(eep e)-.1 E -.15(ve)-.25 G(rything as easy to manage as possible.).15
-E .562(This le)111 624 R -.15(ve)-.25 G 3.062(lo).15 G 3.062(fm)-3.062 G
+(3.4.5. Modularization)111 84 R F0 2.062 -.8(To m)111 99.6 T(ak).8 E
+2.962(et)-.1 G .462(he project more manageable I will split it into man)
+-2.962 F 2.961(yC\214)-.15 G .461(les, this is to k)-2.961 F .461
+(eep it from be-)-.1 F(coming impossible to edit code.)111 111.6 Q
+(The \214le layout looks as follo)111 135.6 Q(ws:)-.25 E(PLA)111 159.6 Q
+(CE HERE)-.4 E .712(As you can see this is split up o)111 183.6 R -.15
+(ve)-.15 G 3.212(ra).15 G .713
+(round 40 \214les and 16 folders, each \214le should not go o)-3.212 F
+-.15(ve)-.15 G(r).15 E(~500 lines of code. This is to k)111 195.6 Q
+(eep e)-.1 E -.15(ve)-.25 G(rything as easy to manage as possible.).15 E
+.562(This le)111 219.6 R -.15(ve)-.25 G 3.062(lo).15 G 3.062(fm)-3.062 G
.562(odularization in needed for the de)-3.062 F -.15(ve)-.25 G .562
(lopment of Zipp).15 F 3.062(ya)-.1 G 3.062(sw)-3.062 G .562
-(ithout it, \214les will be-)-3.062 F(come a mess that can')111 636 Q
+(ithout it, \214les will be-)-3.062 F(come a mess that can')111 231.6 Q
2.5(tb)-.18 G 2.5(ew)-2.5 G(ork)-2.6 E(ed with.)-.1 E .041(All .c \214l\
es will be compiled into .o \214les, then the .o \214les can be link)111
-660 R .042(ed with the \214nal zp)-.1 F -.65(y.)-.1 G 2.542(ct).65 G
-2.542(og)-2.542 G(en-)-2.542 E(erate the \214nal e)111 672 Q -.15(xe)
--.15 G(cutable.).15 E/F1 10/Times-Bold@0 SF 2.5(3.3.5.1. Build)111 720 R
-(system)2.5 E 0 Cg EP
-%%Page: 20 20
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(-20-)297.67 48 Q 1.221
-(The entire project is being b)111 84 R 1.221(uild with GNU mak)-.2 F
-3.721<658c>-.1 G 1.22(les, each folder that b)-3.721 F 1.22
-(uilds something will)-.2 F(ha)111 96 Q 1.003 -.15(ve i)-.2 H .703(ts o)
-.15 F .703(wn mak)-.25 F .704(e\214le. This will mean the entire projec\
-t can be compiled with a single mak)-.1 F 3.204(ei)-.1 G(n)-3.204 E
-(the root folder of the project.)111 108 Q(Example of mak)111 132 Q(e:)
--.1 E(mak)111 156 Q 2.5(e-)-.1 G(j2)-2.5 E(This will b)111 180 Q
+255.6 R .042(ed with the \214nal zp)-.1 F -.65(y.)-.1 G 2.542(ct).65 G
+2.542(og)-2.542 G(en-)-2.542 E(erate the \214nal e)111 267.6 Q -.15(xe)
+-.15 G(cutable.).15 E F1 2.5(3.4.5.1. Build)111 315.6 R(system)2.5 E F0
+1.221(The entire project is being b)111 331.2 R 1.221(uild with GNU mak)
+-.2 F 3.721<658c>-.1 G 1.22(les, each folder that b)-3.721 F 1.22
+(uilds something will)-.2 F(ha)111 343.2 Q 1.003 -.15(ve i)-.2 H .703
+(ts o).15 F .703(wn mak)-.25 F .704(e\214le. This will mean the entire \
+project can be compiled with a single mak)-.1 F 3.204(ei)-.1 G(n)-3.204
+E(the root folder of the project.)111 355.2 Q(Example of mak)111 379.2 Q
+(e:)-.1 E(mak)111 403.2 Q 2.5(e-)-.1 G(j2)-2.5 E(This will b)111 427.2 Q
(uild all \214les speci\214ed by 'Mak)-.2 E(e\214le' with 2 threads.)-.1
-E .34(The project should be b)111 204 R .34
+E .34(The project should be b)111 451.2 R .34
(uild with gcc, and ld. It should be b)-.2 F .34(uild with the -O3 b)-.2
-F .34(uild \215ag to ensure)-.2 F(the program runs as f)111 216 Q
+F .34(uild \215ag to ensure)-.2 F(the program runs as f)111 463.2 Q
(ast as possible. -O3 forces the compiler to b)-.1 E
(uild with optimizations.)-.2 E(When the project is \214nished, I will \
-try compiling with clang and tcc, to compare performance.)111 240 Q/F1
-10/Times-Bold@0 SF 2.5(3.4. T)111 276 R(ime table)-.18 E F0 .174
-(The \214rst step is to tackle the interpreter)111 291.6 R 2.674(,s)-.4
+try compiling with clang and tcc, to compare performance.)111 487.2 Q F1
+2.5(3.5. T)111 523.2 R(ime table)-.18 E F0 .174
+(The \214rst step is to tackle the interpreter)111 538.8 R 2.674(,s)-.4
G 2.674(ot)-2.674 G .174(he zp)-2.674 F -.65(y.)-.1 G 2.674<638c>.65 G
.174(le needs to be \214nished. The tok)-2.674 F(enizer)-.1 E 2.674(,e)
-.4 G -.15(xe)-2.824 G(-).15 E .598(cution, and libs folders need to be\
- \214nished, after this point you should be able to e)111 303.6 R -.15
-(xe)-.15 G .597(cute Zipp).15 F(y)-.1 E(code ho)111 315.6 Q(we)-.25 E
+ \214nished, after this point you should be able to e)111 550.8 R -.15
+(xe)-.15 G .597(cute Zipp).15 F(y)-.1 E(code ho)111 562.8 Q(we)-.25 E
-.15(ve)-.25 G 2.5(rn).15 G(ot syntax check it or get error handling.)
--2.5 E .124(The ne)111 339.6 R .124(xt step is zp)-.15 F .125
+-2.5 E .124(The ne)111 586.8 R .124(xt step is zp)-.15 F .125
(ycheck, the syntax and error handler)-.1 F 2.625(,t)-.4 G .125
-(his should be ran before code is shipped)-2.625 F(to the user)111 351.6
+(his should be ran before code is shipped)-2.625 F(to the user)111 598.8
Q 2.5(.I)-.55 G 2.5(tc)-2.5 G(an reuse a lot of code from the tok)-2.5 E
(enizer and e)-.1 E -.15(xe)-.15 G(cution steps.).15 E .716
-(Finally I need to mak)111 375.6 R 3.216(ez)-.1 G -.1(py)-3.216 G .716
+(Finally I need to mak)111 622.8 R 3.216(ez)-.1 G -.1(py)-3.216 G .716
(pkg, this should be easy as most of it can be written in Zipp).1 F
-2.016 -.65(y, a)-.1 H .716(nd a).65 F(fe)111 387.6 Q 2.5(wb)-.25 G
+2.016 -.65(y, a)-.1 H .716(nd a).65 F(fe)111 634.8 Q 2.5(wb)-.25 G
(its can be written in bash. It should be a good test to ho)-2.5 E 2.5
(wZ)-.25 G(ipp)-2.5 E 2.5(yc)-.1 G(an be written.)-2.5 E(If time allo)
-111 411.6 Q(ws it is at this point that I will write a Raylib library a\
-nd a unix/C sock)-.25 E(ets library)-.1 E(.)-.65 E F1 2.5(4. T)111 447.6
-R(echnical Solution)-.92 E 2.5(5. T)111 471.6 R(esting)-.92 E 2.5(6. Ev)
-111 495.6 R(aluation)-.1 E 0 Cg EP
+111 658.8 Q(ws it is at this point that I will write a Raylib library a\
+nd a unix/C sock)-.25 E(ets library)-.1 E(.)-.65 E F1 2.5(3.6. Flo)111
+694.8 R 2.5(wt)-.1 G(hr)-2.5 E(ough the system)-.18 E F0 1.403
+(The alogrithum to run code is quite comple)111 710.4 R 3.903(xh)-.15 G
+-.25(ow)-3.903 G -2.15 -.25(ev e).25 H 3.903(ri).25 G 3.903(tc)-3.903 G
+1.403(an be boiled do)-3.903 F 1.403(wn to a fe)-.25 F 3.903(ws)-.25 G
+(imple)-3.903 E(steps:)111 722.4 Q 0 Cg EP
+%%Page: 19 19
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-19-)297.67 48 Q/F1 10/Times-Bold@0 SF -.18(re)
+111 84 S .263(ad the text \214le \(strip line br).18 F .263
+(eaks and tabs\) cr)-.18 F .263(eate an empty link)-.18 F .263
+(ed list get the \214rst expr)-.1 F(es-)-.18 E .026(sion fr)111 96 R
+.026(om the text \214le \(with be encapsulated with)-.18 F F0(\(\)"")
+2.526 E F1 .026(get the function call and its ar)2.526 F .027(gs into a)
+-.1 F(tok)111 108 Q .232(en if the ar)-.1 F .231
+(guments of the function ar)-.1 F 2.731(et)-.18 G(her)-2.731 E 2.731(eo)
+-.18 G .231(wn function call, then con)-2.831 F -.1(ve)-.4 G .231
+(rt them into a).1 F(tok)111 120 Q .585(en set that tok)-.1 F .585
+(en as the ar)-.1 F .585(gument in the \214rst tok)-.1 F .585
+(en append the r)-.1 F .586(oot tok)-.18 F .586(en to the link)-.1 F(ed)
+-.1 E .717(list r)111 132 R .717
+(epeat until the text \214le string is empty allocate memory f)-.18 F
+.716(or the pr)-.25 F .716(ogram and pr)-.18 F(epar)-.18 E(e)-.18 E .17
+(the exection step at the start of the link)111 144 R .17(ed list tra)
+-.1 F -.1(ve)-.25 G .17(rse to the bottem of the tr).1 F .17
+(ee \(made of to-)-.18 F -.1(ke)111 156 S .28(ns\) execute the lo).1 F
+.28(west tok)-.1 F .279(en r)-.1 F .279(epeat until all tok)-.18 F .279
+(ens including the r)-.1 F .279(oot ha)-.18 F .479 -.1(ve b)-.25 H .279
+(een executed).1 F(mo)111 168 Q .2 -.1(ve t)-.1 H 2.5(ot).1 G
+(he next node of the link)-2.5 E(ed list r)-.1 E(epeat until the link)
+-.18 E(ed list is empty)-.1 E F0 -.4(Wi)111 192 S .482
+(thin each of these steps is man).4 F 2.982(ys)-.15 G .483
+(maller steps. The hardest part will be making the tok)-2.982 F .483
+(ens, as)-.1 F .45(this requires alot of string manipultation. The e)111
+204 R -.15(xe)-.15 G .45(cution will be a recursi).15 F .75 -.15(ve a)
+-.25 H .45(logrithum. All trees).15 F
+(will be represented via structs \(see section on AST')111 216 Q(s\).)
+-.55 E(PUT SOME FLO)111 240 Q 2.5(WC)-.35 G(HAR)-2.5 E(TS HERE)-.6 E F1
+2.5(4. T)111 276 R(echnical Solution)-.92 E 2.5(5. T)111 300 R(esting)
+-.92 E 2.5(6. Ev)111 324 R(aluation)-.1 E 0 Cg EP
%%Trailer
end
%%EOF