blob: d61cca37c57a202824934371361d27822e81029d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
\relax
\providecommand\babel@aux[2]{}
\@nameuse{bbl@beforestart}
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\providecommand \oddpage@label [2]{}
\babel@aux{english}{}
\@writefile{toc}{\contentsline {section}{\numberline {1}A brief head note and introduction}{4}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {2}Analysis}{4}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}The current problem}{4}{subsection.2.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}A solution}{4}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}What is a programming language}{5}{subsection.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}A very simple explanation}{5}{subsubsection.2.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.2}Why are there so many}{5}{subsubsection.2.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Researching and getting a scope of the project}{5}{subsection.2.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}Examples of older similar projects}{5}{subsubsection.2.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.2}Examples of newer similar projects}{6}{subsubsection.2.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.3}What should be taken away from these languages}{6}{subsubsection.2.4.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Clients}{7}{subsection.2.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.1}Client 1: Amy C}{7}{subsubsection.2.5.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.2}Client 2: Rayn M}{7}{subsubsection.2.5.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.3}Client 3: Myself}{7}{subsubsection.2.5.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Questionnaires}{7}{subsection.2.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.6.1}Amy C, initial ideas}{7}{subsubsection.2.6.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.6.2}Notes from questionnaire 1}{8}{subsubsection.2.6.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}The first elements of the project}{8}{subsection.2.7}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3}Modelling}{9}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Linked lists}{9}{subsection.3.1}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{\numberline {1}Linked list example}{9}{lstlisting.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Dictionaries}{10}{subsection.3.2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{\numberline {2}Dictionary example}{10}{lstlisting.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Prototyping harder features}{10}{subsection.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Abstract syntax trees (AST's) theory}{10}{subsubsection.3.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Abstract syntax trees (AST's) practical}{11}{subsubsection.3.3.2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code/proto/AST/ast.c}{11}{lstlisting.-1}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code/proto/AST/astg.c}{14}{lstlisting.-2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code/proto/AST/astg.h}{15}{lstlisting.-3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Feedback}{16}{subsection.3.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Mixing linked lists and AST's}{16}{subsection.3.5}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4}Objectives}{16}{section.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Core objectives}{16}{subsection.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Extra objectives}{17}{subsection.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5}Design}{17}{section.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Language specification}{17}{subsection.5.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Keywords}{17}{subsection.5.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Other code elements}{18}{subsection.5.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Memory management}{19}{subsection.5.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}The steps in compiling a zippy program}{19}{subsection.5.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.5.1}Converting zippy to C}{19}{subsubsection.5.5.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}Actually using zippy}{19}{subsection.5.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.7}Modelling the compilation process}{21}{subsection.5.7}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.8}Modelling data structures I will use}{22}{subsection.5.8}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.8.1}AstNode}{22}{subsubsection.5.8.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.8.2}Array list}{22}{subsubsection.5.8.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {5.9}Why so few?}{22}{subsection.5.9}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {6}Implementation}{23}{section.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Main C code}{23}{subsection.6.1}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/zpy.c}{23}{lstlisting.-4}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/fileread.c}{24}{lstlisting.-5}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/tokenizer.c}{25}{lstlisting.-6}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/appendsnprintf.c}{27}{lstlisting.-7}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/comp.c}{28}{lstlisting.-8}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/util.c}{35}{lstlisting.-9}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Header files}{35}{subsection.6.2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/fileread.h}{35}{lstlisting.-10}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/tokenizer.h}{36}{lstlisting.-11}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/comp.h}{36}{lstlisting.-12}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/appendsnprintf.h}{36}{lstlisting.-13}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/util.h}{36}{lstlisting.-14}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}The C linking process}{36}{subsection.6.3}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/Makefile}{36}{lstlisting.-15}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Zpypkg}{37}{subsection.6.4}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/zpypkg/zpypkg.sh}{37}{lstlisting.-16}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}Zpylib}{39}{subsection.6.5}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/stdlib/zpylib.c}{39}{lstlisting.-17}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/stdlib/String/String.c}{40}{lstlisting.-18}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {6.6}Other libraries}{43}{subsection.6.6}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {7}Testing}{43}{section.7}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Introduction}{43}{subsection.7.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Fibonacci}{43}{subsection.7.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}Code}{43}{subsubsection.7.2.1}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{../code2/examples/fib\textunderscore example.zpy}{43}{lstlisting.-19}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.2}Demo}{44}{subsubsection.7.2.2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{./examples/fib.example}{44}{lstlisting.-20}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{./examples/fib.py}{44}{lstlisting.-21}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.3}Performance}{44}{subsubsection.7.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}String splitting}{45}{subsection.7.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.3.1}Code}{45}{subsubsection.7.3.1}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{./examples/str\textunderscore example.zpy}{45}{lstlisting.-22}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.3.2}Output}{45}{subsubsection.7.3.2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{./examples/string.example}{45}{lstlisting.-23}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.3.3}Explaining}{46}{subsubsection.7.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}zpypkg example}{46}{subsection.7.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.4.1}Using zpypkg}{46}{subsubsection.7.4.1}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{./examples/zpypkg.example}{46}{lstlisting.-24}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}Space invaders}{46}{subsection.7.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.1}Background}{46}{subsubsection.7.5.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.2}Code}{46}{subsubsection.7.5.2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{./examples/spaceinvaders.zpy}{46}{lstlisting.-25}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.3}Seeing it go}{49}{subsubsection.7.5.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {8}Evaluation}{50}{section.8}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Core objectives}{50}{subsection.8.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Extra objectives}{51}{subsection.8.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}Comparing the goals to the product}{51}{subsection.8.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.1}A compiler for the Zippy language}{51}{subsubsection.8.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.2}AST's used to compile source code}{51}{subsubsection.8.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.3}A lisp like syntax}{51}{subsubsection.8.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.4}Functional paradigm language}{51}{subsubsection.8.3.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.5}Recursion}{52}{subsubsection.8.3.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.6}Higher order functions}{52}{subsubsection.8.3.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.7}A high performance language}{52}{subsubsection.8.3.7}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.8}A package manager}{52}{subsubsection.8.3.8}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.9}Ability to call C functions}{52}{subsubsection.8.3.9}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}Thoughts on the core objectives}{53}{subsection.8.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {8.5}Extra objectives}{53}{subsection.8.5}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{53}{section.9}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Final thoughts}{53}{subsection.9.1}\protected@file@percent }
\gdef \@abspage@last{53}
|