-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
36 lines (32 loc) · 1.08 KB
/
TODO
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
Pre-requisites for self-hosting
-------------------------------
* name?
* s-expressions
* lambda
* conditionals
* bool/nums/strings/chars
* assignment
* recursion
* io (print, read)
* comparison
* arithmetic
* lexical scoping
Eventually...
-------------
* modules
* type checking (Hindley-Milner)
* type inference
* debugger
* loops
* TaCOs!!!
* more io
Idea for how to get started, not really sure
--------------------------------------------
#. Build parser (in golang?) that reads a file (stdin maybe) of our Lisp-like language.
Have it make a linked-list of tokens. Or read in file and ensure syntactical correctness.
#. Use this token list to build abstract syntax tree to create executional code. This is
where we can ensure semantical correctness.
#. Translate the Lisp-like into (golang?) native code.
#. Compile native code. First iteration of language complete.
This is what jumps out to me right away, but this is from directy experience making a
language translator and I think I'm missing the step someone.