summaryrefslogtreecommitdiff
path: root/comp
diff options
context:
space:
mode:
Diffstat (limited to 'comp')
-rw-r--r--comp/lucas-standen-NEA/writeup/coverpage.ms154
-rw-r--r--comp/lucas-standen-NEA/writeup/coverpage.ps105
-rw-r--r--comp/lucas-standen-NEA/writeup/questions-for-amy.ps2
3 files changed, 145 insertions, 116 deletions
diff --git a/comp/lucas-standen-NEA/writeup/coverpage.ms b/comp/lucas-standen-NEA/writeup/coverpage.ms
index e62d80d..2aced24 100644
--- a/comp/lucas-standen-NEA/writeup/coverpage.ms
+++ b/comp/lucas-standen-NEA/writeup/coverpage.ms
@@ -10,15 +10,17 @@ Analysis
.NH 2
The current problem
.PP
-For general small and simple projects, I write in C. However this leads to hours of debugging due to segfaults, and memory leaks.
-Due to the languages manual memory management the programmer is required to know so much information about the hardware they write for,
-and the second anything goes wrong, it is vague on how to fix things.
+For general small and simple projects, I write in C. However this leads to hours of debugging due to
+segfaults, and memory leaks. Due to the languages manual memory management the programmer is
+required to know so much information about the hardware they write for, and the second anything goes
+wrong, it is vague on how to fix things.
.B "I need a language that stops me from shooting myself in the foot"
-C has been standard for many decades now and its age is showing, it lacks many modern features like OOP, or higher level functional abstractions, that have become common
-in modern years due to there helpfulness. This is not to fault C's achievements either, the language is my personal choice for most projects for a reason,
-it's fast and powerful; any solution I make should not cut that away.
+C has been standard for many decades now and its age is showing, it lacks many modern features like
+OOP, or higher level functional abstractions, that have become common in modern years due to there
+helpfulness. This is not to fault C's achievements either, the language is my personal choice for
+most projects for a reason, it's fast and powerful; any solution I make should not cut that away.
.NH 2
A solution
@@ -26,22 +28,25 @@ A solution
.BI "Zippy LANG"
A next generation language, for general use. Designed for keeping code simple, neat and readable.
-It will be similar to functional languages, known for there strict ability to keep code safe and practical.
-The language should be interpreted like python, perl and lisp, to allow for easy debugging tools.
+It will be similar to functional languages, known for there strict ability to keep code safe and
+practical. The language should be interpreted like python, perl and lisp, to allow for easy
+debugging tools.
The goal of Zippy is to make codding easier, while remaining fast, with a interpreter writen in C.
.NH 2
Clients
.PP
-In a project of this nature, the Client is every programmer alive; which is a pretty large scope. To narrow this down as much as possible, I will interview a small handful
-of people throughout the project, of different skill levels.
+In a project of this nature, the Client is every programmer alive; which is a pretty large scope.
+To narrow this down as much as possible, I will interview a small handful of people throughout the
+project, of different skill levels.
.NH 3
Client 1, Amy C
.PP
-My first client is a friend of mine, Amy C, she is a confident programmer who has completed many complicated projects. I am choosing her as a client as she can give me
-technical feed back on my project and its function/utility.
+My first client is a friend of mine, Amy C, she is a confident programmer who has completed many
+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
.PP
@@ -53,54 +58,61 @@ some stuff about how the normie finds the completed project.
.NH 3
Client 4, myself
.PP
-I've wanted to take out a project like this for a long long time, and this is the perfect opportunity to do so, I will be assessing myself along the way of this,
-building the project to my personal specification.
+I've wanted to take out a project like this for a long long time, and this is the perfect
+opportunity to do so, I will be assessing myself along the way of this, building the project to my
+personal specification.
.NH 2
Examples of similar projects
.PP
-As Zippy will be interpreted, I should compare it to other such languages; trying to compare it to C++/rust/go, isn't helpful as they are so very different in the way they
-function.
+As Zippy will be interpreted, I should compare it to other such languages; trying to compare it to
+C++/rust/go, isn't helpful as they are so very different in the way they function.
-Zippy is by far not the first language, and I'm only one person, so I can't expect to beat others in everything.
+Zippy is by far not the first language, and I'm only one person, so I can't expect to beat others in
+everything.
Below are a few languages that zippy should be compared to throught developemen:
.NH 3
Python
.PP
-Python is a high level OOP language that was designed in 1991. It was made to make programming easy while still being able to use some of C's functions.
-Although it has become standard for many use cases, it is slow and inefficient, and very bloated.
+Python is a high level OOP language that was designed in 1991. It was made to make programming easy
+while still being able to use some of C's functions. Although it has become standard for many use
+cases, it is slow and inefficient, and very bloated.
https://www.python.org/
-Zippy should take pythons high level abstractions, as they make programing very easy and it should try and take notes from its libaries as they are mostly well writen,
-and well documented.
+Zippy should take pythons high level abstractions, as they make programing very easy and it should
+try and take notes from its libaries as they are mostly well writen, and well documented.
.NH 3
Lisp
.PP
-Lisp is the second ever programming language, developed at MiT, it is the first functional language, creating many common features like higher order functions, recursion,
-and garbage collection. It is generally not used anymore as it feels old compared to other functional languages, like ocaml or haskell.
+Lisp is the second ever programming language, developed at MiT, it is the first functional language,
+creating many common features like higher order functions, recursion, and garbage collection. It is
+generally not used anymore as it feels old compared to other functional languages, like ocaml or haskell.
https://lisp-lang.org/
-Zippy should try to take alot from the syntax of lisp, () make it easy to see what parts of code will effect what, and make things easy to parse.
+Zippy should try to take alot from the syntax of lisp, () make it easy to see what parts of code
+will effect what, and make things easy to parse.
.NH 3
Perl
.PP
-Perl is scripting language designed for use in linux, when bash is too slow, or not suited for the job.
-Perl is often described as the glue of the universe (see xkcd https://3d.xkcd.com/224/). Its syntax is quite strange however and it is slow.
-Making it poorly suited towards general use.
+Perl is scripting language designed for use in linux, when bash is too slow, or not suited for the
+job. Perl is often described as the glue of the universe (see xkcd https://3d.xkcd.com/224/).
+Its syntax is quite strange however and it is slow. Making it poorly suited towards general use.
https://www.perl.org/
-Zippy should take from perls minimalisum, it is a small language that is of a similar size to bash or zsh, while feeling closer to python. If zippy can achieve a
-similar small size, while remaining powerful I will be pleased
+Zippy should take from perls minimalisum, it is a small language that is of a similar size to bash
+or zsh, while feeling closer to python. If zippy can achieve a similar small size, while remaining
+powerful I will be happy.
.NH 2
Questionnaires
.PP
-It is important to get feedback from end users, so I will take multiple questionnaires throughout the project. I will then use them to slightly edit the requirements of my
-project this should make the final outcome more helpful and what people want.
+It is important to get feedback from end users, so I will take multiple questionnaires throughout
+the project. I will then use them to slightly edit the requirements of my project this should make
+the final outcome more helpful and what people want.
In the section bellow you will find questionnaires from the analyses stage of my project.
.NH 3
@@ -115,11 +127,14 @@ Speed, readability, debugging ease and disk space efficiency.
.NH 4
What tools are important for a language to have? (eg: pkg-manager, IDE integration)
.PP
-IDE integration (things like tab complete and debugging tools), a package manager, and the ability to interact with the user through the command line easily.
+IDE integration (things like tab complete and debugging tools), a package manager, and the ability
+to interact with the user through the command line easily.
.NH 4
-What features do you like from other languages (eg: C's advanced memory management, haskell's terse syntax)
+What features do you like from other languages (eg: C's advanced memory management, haskell's terse
+syntax)
.PP
-The ability to pass the memory reference of an object or function and a collection of built-in or standard functions like "print", "split", or "sort".
+The ability to pass the memory reference of an object or function and a collection of built-in or
+standard functions like "print", "split", or "sort".
.NH 4
What do you want to program in this language (eg: websites, low level systems)
.PP
@@ -143,24 +158,27 @@ I try to use as little languages in a project as possible, so likely not in an e
.NH 4
Do you care for low level control, or would you prefer high level abstractions?
.PP
-I think low-level control is very important, but high-level abstractions are convenient, so a good balance between the two is best.
+I think low-level control is very important, but high-level abstractions are convenient, so a good
+balance between the two is best.
.NH 4
-Would you be happy to develop libraries for things that aren't already implemented (eg: an SQL library)
+Would you be happy to develop libraries for things that aren't already implemented
+(eg: an SQL library)
.PP
Potentially if it is simple enough to implement new things.
.NH 3
Notes from questionnaire 1
.PP
-Some of the key things that I'm taking away from this first questionnaire, are my client/users initial needs and use cases.
-I think it's clear my language can be of assistance to my client, Zippy will be a good language for web back ends and small command line tools, which my client expressed
+Some of the key things that I'm taking away from this first questionnaire, are my client/users
+initial needs and use cases. I think it's clear my language can be of assistance to my client, Zippy
+will be a good language for web back ends and small command line tools, which my client expressed
interested in.
-I find the fact my client is worried by executable size interesting, however I doubt it will be an issue; a ballooning code-base is unlikely as only one person
-is writing the project.
+I find the fact my client is worried by executable size interesting, however I doubt it will be an
+issue; a ballooning code-base is unlikely as only one person is writing the project.
-I am also taking on the fact that my client wants good command line tools, so a pkg-manager and bundler should be a priority, perhaps they could be written in Zippy after
-the interpreter is done.
+I am also taking on the fact that my client wants good command line tools, so a pkg-manager and
+bundler should be a priority, perhaps they could be written in Zippy after the interpreter is done.
.NH 3
The first elements of the project
@@ -181,17 +199,20 @@ Ensure the language is well supported with tools like a pkg-manager.
.NH 2
Abstract data structures and there implementations
.PP
-In larger projects, when a programmer needs a data structure that the language they are writing in doesn't provide, they will need to make their own.
+In larger projects, when a programmer needs a data structure that the language they are writing in
+doesn't provide, they will need to make their own.
Bellow are a few examples of these data structures that C doesn't already provide.
.NH 3
Linked lists
.PP
-this is an alternative implementation of a list, where you store some data, and the memory address to the next node. Then you can move through the list by reading the data
-then reading the data of the next node, and then repeating until the 'next' part of the node is empty.
+this is an alternative implementation of a list, where you store some data, and the memory address
+to the next node. Then you can move through the list by reading the data then reading the data of
+the next node, and then repeating until the 'next' part of the node is empty.
-In C this is easy to implement as you can find a memory address very easily with '&' to find where a bit of data is stored. I will need to use a 'struct', which is a bit like
-a class in C (however you can't attach a function to it). A simple implementation looks like this:
+In C this is easy to implement as you can find a memory address very easily with '&' to find where
+a bit of data is stored. I will need to use a 'struct', which is a bit like a class in C (however
+you can't attach a function to it). A simple implementation looks like this:
typedef struct ll {
@@ -201,15 +222,19 @@ typedef struct ll {
} ll;
-The pro's of a linked list are the fact that they can have data appended to the start or end easily by changing the root node, or the next node.
+The pro's of a linked list are the fact that they can have data appended to the start or end easily
+by changing the root node, or the next node.
-Linked lists have a few downsides, for example you can't move through them backwards, and unless you store it on its own, you cant find the length of it in a fast way.
+Linked lists have a few downsides, for example you can't move through them backwards, and unless you
+store it on its own, you cant find the length of it in a fast way.
-In my project I would like to use linked list in the AST (see later sections for info), and to store lists in the language.
+In my project I would like to use linked list in the AST (see later sections for info), and to store
+lists in the language.
.NH 3
Dictionaries
.PP
-A dictionary is a simple data structure that just stores, a bit of data, and a number or string to identify it.
+A dictionary is a simple data structure that just stores, a bit of data, and a number or string to
+identify it.
A dictionary like a linked list can be implemented with a struct in c like so:
typedef struct dict {
@@ -220,7 +245,8 @@ typedef struct dict {
} dict;
-In my project I think I could use a linked list represent a zippy variable and an ID that i can use to identify it, this could make execution faster as i can compare ID's
+In my project I think I could use a linked list represent a zippy variable and an ID that i can use
+to identify it, this could make execution faster as i can compare ID's
rather than string values
.NH 2
@@ -228,10 +254,12 @@ Prototyping hard features
.NH 3
Abstract Syntax Trees (AST) theory
.PP
-In a programming language many abstract data types will be used to allow the code to execute, however I think the hardest part of this is an abstract syntax tree.
-This is a data structure that holds the code in an ordered form that can be analysed and executed in a simple way. It is a tree structure, with the top node being a root
-and all lower nodes being things needed to calculate the root. It can be used not only for code but also for mathematical expressions. I think the easiest way to show it
-is via a mathematical example
+In a programming language many abstract data types will be used to allow the code to execute,
+however I think the hardest part of this is an abstract syntax tree. This is a data structure that
+holds the code in an ordered form that can be analysed and executed in a simple way. It is a tree
+structure, with the top node being a root and all lower nodes being things needed to calculate the
+root. It can be used not only for code but also for mathematical expressions. I think the easiest
+way to show it is via a mathematical example
Take the follow expression for example:
@@ -239,7 +267,8 @@ Take the follow expression for example:
We know that this is equal to -49
-However for a computer this is far harder to understand. This is because it has no understanding of order of operation
+However for a computer this is far harder to understand. This is because it has no understanding of
+order of operation
To solve this we use an AST (abstract syntax tree)
@@ -250,15 +279,18 @@ We can represent the steps as a tree like so:
.PSPIC ast.ps
.PP
-As you can see, you need to evaluate the expression in the most brackets first, then the next, and so on, working you way up
+As you can see, you need to evaluate the expression in the most brackets first, then the next, and
+so on, working you way up
-You can evaluate code in a similar way, treating each operation (such as +-*/) as functions, doing the most deeply nested function first, then working up.
-Each expression can be represented in this tree, then to show a whole program you can create a list of trees
+You can evaluate code in a similar way, treating each operation (such as +-*/) as functions, doing
+the most deeply nested function first, then working up. Each expression can be represented in this
+tree, then to show a whole program you can create a list of trees
.NH 3
Implementing AST's
.PP
-As a prototype i will make a program that can take mathematical expressions and evaluate them, and allowing for functions (in the form f(x)).
+As a prototype i will make a program that can take mathematical expressions and evaluate them, and
+allowing for functions (in the form f(x)).
It will do this via AST's
This prototype takes 173 lines of code, it takes a string as a cmd line argument then converts it
diff --git a/comp/lucas-standen-NEA/writeup/coverpage.ps b/comp/lucas-standen-NEA/writeup/coverpage.ps
index 51d31bb..dc31d12 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: Mon May 6 09:30:29 2024
+%%CreationDate: Mon May 6 09:44:52 2024
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Italic
%%+ font Times-Roman
@@ -278,9 +278,8 @@ BP
2.5 E(ent pr)-.18 E(oblem)-.18 E F2 -.15(Fo)136 276.6 S 2.948(rg).15 G
.448(eneral small and simple projects, I write in C. Ho)-2.948 F(we)-.25
E -.15(ve)-.25 G 2.947(rt).15 G .447(his leads to hours of deb)-2.947 F
-(ug-)-.2 E .081(ging due to se)111 288.6 R(gf)-.15 E .081
-(aults, and memory leaks.)-.1 F .082
-(Due to the languages manual memory management the)5.081 F .362
+(ug-)-.2 E .26(ging due to se)111 288.6 R(gf)-.15 E .26(aults, and memo\
+ry leaks. Due to the languages manual memory management the)-.1 F .362
(programmer is required to kno)111 300.6 R 2.862(ws)-.25 G 2.861(om)
-2.862 G .361(uch information about the hardw)-2.861 F .361(are the)-.1
F 2.861(yw)-.15 G .361(rite for)-2.861 F 2.861(,a)-.4 G .361(nd the)
@@ -307,20 +306,20 @@ F 2.861(yw)-.15 G .361(rite for)-2.861 F 2.861(,a)-.4 G .361(nd the)
(eneration language, for general use. Designed for k)-3.378 F .879
(eeping code simple, neat and read-)-.1 F 3.307(able. It)111 496.2 R
.807(will be similar to functional languages, kno)3.307 F .807
-(wn for there strict ability to k)-.25 F .806(eep code safe)-.1 F .067
-(and practical.)111 508.2 R .067(The language should be interpreted lik)
-5.067 F 2.567(ep)-.1 G .068(ython, perl and lisp, to allo)-2.667 F 2.568
-(wf)-.25 G .068(or easy de-)-2.568 F -.2(bu)111 520.2 S(gging tools.).2
-E(The goal of Zipp)111 544.2 Q 2.5(yi)-.1 G 2.5(st)-2.5 G 2.5(om)-2.5 G
+(wn for there strict ability to k)-.25 F .806(eep code safe)-.1 F .223
+(and practical. The language should be interpreted lik)111 508.2 R 2.724
+(ep)-.1 G .224(ython, perl and lisp, to allo)-2.824 F 2.724(wf)-.25 G
+.224(or easy de-)-2.724 F -.2(bu)111 520.2 S(gging tools.).2 E
+(The goal of Zipp)111 544.2 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 F3
2.5(1.3. Clients)111 580.2 R F2 1.194
(In a project of this nature, the Client is e)136 595.8 R -.15(ve)-.25 G
1.194(ry programmer ali).15 F -.15(ve)-.25 G 3.694(;w).15 G 1.193
-(hich is a pretty lar)-3.694 F(ge)-.18 E 1.731(scope. T)111 607.8 R
-4.231(on)-.8 G(arro)-4.231 E 4.232(wt)-.25 G 1.732(his do)-4.232 F 1.732
-(wn as much as possible, I will intervie)-.25 F 4.232(was)-.25 G 1.732
-(mall handful of people)-4.232 F(throughout the project, of dif)111
+(hich is a pretty lar)-3.694 F(ge)-.18 E 4.075(scope. T)111 607.8 R
+4.075(on)-.8 G(arro)-4.075 E 4.075(wt)-.25 G 1.575(his do)-4.075 F 1.576
+(wn as much as possible, I will intervie)-.25 F 4.076(was)-.25 G 1.576
+(mall handful of people)-4.076 F(throughout the project, of dif)111
619.8 Q(ferent skill le)-.25 E -.15(ve)-.25 G(ls.).15 E F3 2.5
(1.3.1. Client)111 655.8 R(1, Amy C)2.5 E F2 .803(My \214rst client is \
a friend of mine, Amy C, she is a con\214dent programmer who has com-)
@@ -360,17 +359,17 @@ F 2.724(te)-.18 G .224(xpect to beat others in)-2.874 F -2.15 -.25(ev e)
F1 2.5(1.4.1. Python)111 334.8 R F0 .273(Python is a high le)136 350.4 R
-.15(ve)-.25 G 2.773(lO).15 G .272(OP language that w)-2.773 F .272
(as designed in 1991. It w)-.1 F .272(as made to mak)-.1 F 2.772(ep)-.1
-G(ro-)-2.772 E .105
+G(ro-)-2.772 E .262
(gramming easy while still being able to use some of C')111 362.4 R
-2.606(sf)-.55 G 2.606(unctions. Although)-2.606 F .106
-(it has become stan-)2.606 F(dard for man)111 374.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 398.4 Q(.p)
--.65 E(ython.or)-.1 E(g/)-.18 E(Zipp)111 422.4 Q 3.951(ys)-.1 G 1.451
-(hould tak)-3.951 F 3.951(ep)-.1 G 1.451(ythons high le)-4.051 F -.15
-(ve)-.25 G 3.951(la).15 G 1.451(bstractions, as the)-3.951 F 3.951(ym)
--.15 G(ak)-3.951 E 3.951(ep)-.1 G 1.45(rograming v)-3.951 F 1.45
-(ery easy and it)-.15 F(should try and tak)111 434.4 Q 2.5(en)-.1 G
+2.762(sf)-.55 G .262(unctions. Although it has become stan-)-2.762 F
+(dard for man)111 374.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 398.4 Q(.p)-.65 E(ython.or)-.1 E(g/)-.18 E(Zipp)111
+422.4 Q 3.951(ys)-.1 G 1.451(hould tak)-3.951 F 3.951(ep)-.1 G 1.451
+(ythons high le)-4.051 F -.15(ve)-.25 G 3.951(la).15 G 1.451
+(bstractions, as the)-3.951 F 3.951(ym)-.15 G(ak)-3.951 E 3.951(ep)-.1 G
+1.45(rograming v)-3.951 F 1.45(ery easy and it)-.15 F
+(should try and tak)111 434.4 Q 2.5(en)-.1 G
(otes from its libaries as the)-2.5 E 2.5(ya)-.15 G
(re mostly well writen, and well documented.)-2.5 E F1 2.5(1.4.2. Lisp)
111 458.4 R F0 .549(Lisp is the second e)136 474 R -.15(ve)-.25 G 3.049
@@ -389,12 +388,12 @@ G(ro-)-2.772 E .105
(fect what, and mak)-.25 E 2.5(et)-.1 G(hings easy to parse.)-2.5 E F1
2.5(1.4.3. P)111 594 R(erl)-.2 E F0 .038(Perl is scripting language des\
igned for use in linux, when bash is too slo)136 609.6 R 1.339 -.65
-(w, o)-.25 H 2.539(rn).65 G .039(ot suited for)-2.539 F .755(the job)111
-621.6 R 5.755(.P)-.4 G .755
-(erl is often described as the glue of the uni)-5.755 F -.15(ve)-.25 G
-.755(rse \(see xkcd https://3d.xkcd.com/224/\).).15 F
+(w, o)-.25 H 2.539(rn).65 G .039(ot suited for)-2.539 F .934(the job)111
+621.6 R 3.434(.P)-.4 G .934
+(erl is often described as the glue of the uni)-3.434 F -.15(ve)-.25 G
+.933(rse \(see xkcd https://3d.xkcd.com/224/\).).15 F
(Its syntax is quite strange ho)111 633.6 Q(we)-.25 E -.15(ve)-.25 G 2.5
-(ra).15 G(nd it is slo)-2.5 E 3.8 -.65(w. M)-.25 H
+(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 657.6 Q(.perl.or)-.65 E(g/)-.18 E(Zipp)111 681.6 Q
2.805(ys)-.1 G .305(hould tak)-2.805 F 2.805(ef)-.1 G .305(rom perls mi\
@@ -402,7 +401,7 @@ nimalisum, it is a small language that is of a similar size to bash)
-2.805 F .407(or zsh, while feeling closer to p)111 693.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
-705.6 Q(werful I will be pleased)-.25 E 0 Cg EP
+705.6 Q(werful I will be happ)-.25 E -.65(y.)-.1 G 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -481,16 +480,15 @@ BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF(-4-)300.17 48 Q 2.994(Some of the k)136 84 R
3.294 -.15(ey t)-.1 H 2.994(hings that I'm taking a).15 F -.1(wa)-.15 G
-5.494(yf).1 G 2.995(rom this \214rst questionnaire, are my)-5.494 F .314
-(client/users initial needs and use cases.)111 96 R 2.814(It)5.314 G
-.314(hink it')-2.814 F 2.814(sc)-.55 G .314
-(lear my language can be of assistance to my)-2.814 F .842(client, Zipp)
-111 108 R 3.342(yw)-.1 G .843(ill be a good language for web back ends \
-and small command line tools, which)-3.342 F(my client e)111 120 Q
-(xpressed interested in.)-.15 E 2.564<498c>111 144 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(rI).15 G .063(doubt it will be an is-)-.001 F
+5.494(yf).1 G 2.995(rom this \214rst questionnaire, are my)-5.494 F .461
+(client/users initial needs and use cases. I think it')111 96 R 2.961
+(sc)-.55 G .461(lear my language can be of assistance to my)-2.961 F
+.842(client, Zipp)111 108 R 3.342(yw)-.1 G .843(ill be a good language \
+for web back ends and small command line tools, which)-3.342 F
+(my client e)111 120 Q(xpressed interested in.)-.15 E 2.564<498c>111 144
+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(rI).15 G .063(doubt it will be an is-)-.001 F
(sue; a ballooning code-base is unlik)111 156 Q
(ely as only one person is writing the project.)-.1 E 2.56(Ia)111 180 S
2.56(ma)-2.56 G .06(lso taking on the f)-2.56 F .06
@@ -574,10 +572,9 @@ s a simple data structure that just stores, a bit of data, and a number\
(Syntax T)2.5 E -.18(re)-.74 G(es \(AST\) theory).18 E F0 .117
(In a programming language man)136 355.2 R 2.617(ya)-.15 G .118
(bstract data types will be used to allo)-2.617 F 2.618(wt)-.25 G .118
-(he code to e)-2.618 F -.15(xe)-.15 G(-).15 E .828(cute, ho)111 367.2 R
-(we)-.25 E -.15(ve)-.25 G 3.328(rIt).15 G .827
-(hink the hardest part of this is an abstract syntax tree.)-3.328 F .827
-(This is a data structure)5.827 F .376
+(he code to e)-2.618 F -.15(xe)-.15 G(-).15 E .967(cute, ho)111 367.2 R
+(we)-.25 E -.15(ve)-.25 G 3.467(rI).15 G .966(think the hardest part of\
+ this is an abstract syntax tree. This is a data structure)-.001 F .376
(that holds the code in an ordered form that can be analysed and e)111
379.2 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(sa)-2.876 G .084
@@ -2168,17 +2165,17 @@ BP
(an e)-2.646 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
-1.035(the most deeply nested function \214rst, then w)111 132 R 1.034
-(orking up.)-.1 F 1.034(Each e)6.034 F 1.034
-(xpression can be represented in)-.15 F(this tree, then to sho)111 144 Q
-2.5(waw)-.25 G(hole program you can create a list of trees)-2.5 E/F1 10
-/Times-Bold@0 SF 2.5(1.7.2. Implementing)111 180 R(AST')2.5 E(s)-.37 E
-F0 .343(As a prototype i will mak)136 195.6 R -5.342 2.843(ea p)-.1 H
-.344(rogram that can tak)-2.843 F 2.844(em)-.1 G .344(athematical e)
--2.844 F .344(xpressions and e)-.15 F -.25(va)-.25 G(luate).25 E
-(them, and allo)111 207.6 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
-231.6 R .718(es 173 lines of code, it tak)-.1 F .718
+.002(the most deeply nested function \214rst, then w)111 132 R .002
+(orking up. Each e)-.1 F .002(xpression can be represented in this)-.15
+F(tree, then to sho)111 144 Q 2.5(waw)-.25 G
+(hole program you can create a list of trees)-2.5 E/F1 10/Times-Bold@0
+SF 2.5(1.7.2. Implementing)111 180 R(AST')2.5 E(s)-.37 E F0 .343
+(As a prototype i will mak)136 195.6 R -5.342 2.843(ea p)-.1 H .344
+(rogram that can tak)-2.843 F 2.844(em)-.1 G .344(athematical e)-2.844 F
+.344(xpressions and e)-.15 F -.25(va)-.25 G(luate).25 E(them, and allo)
+111 207.6 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 231.6
+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 243.6 R -.15(xe)
diff --git a/comp/lucas-standen-NEA/writeup/questions-for-amy.ps b/comp/lucas-standen-NEA/writeup/questions-for-amy.ps
index 4d14f08..32c74d1 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: Mon May 6 09:30:29 2024
+%%CreationDate: Mon May 6 09:44:53 2024
%%DocumentNeededResources: font Times-Bold
%%+ font Times-Roman
%%DocumentSuppliedResources: procset grops 1.23 0