mirror of
https://github.com/grin-compiler/grin.git
synced 2024-09-11 15:37:54 +03:00
add papers and notes
This commit is contained in:
parent
1af7cb2b43
commit
08ed77cc5c
20
Design.md
Normal file
20
Design.md
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# Compiler goals
|
||||||
|
|
||||||
|
- keep mapping between source code and machine code
|
||||||
|
- debugging
|
||||||
|
- step by step execution
|
||||||
|
- breakpoints
|
||||||
|
- observe values/thunks/nodes at runtime
|
||||||
|
- collect statistics at runtime
|
||||||
|
- nice UI (reusing exisiting tools; js libs, etc)
|
||||||
|
|
||||||
|
# Other
|
||||||
|
|
||||||
|
- parallel compilation
|
||||||
|
- local and global optimizer
|
||||||
|
|
||||||
|
# Technology
|
||||||
|
|
||||||
|
- simple AST + shape functor + recursion-schemes
|
||||||
|
- simple name handling
|
||||||
|
- JIT backend as a library (e.g. monad transformer?)
|
25
TODO.md
Normal file
25
TODO.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Todo ideas
|
||||||
|
|
||||||
|
- distinguish Val constuctors (LambdaPattern ConstansPattern SimpleValue Value)
|
||||||
|
- rename Val types to a more descriptive names; see above
|
||||||
|
- GRIN AST gen EDSL
|
||||||
|
- opt-parse-applicative for command line arguments for cli (grin)
|
||||||
|
- better name representation instead of strings
|
||||||
|
- generate unique names when branching (unique name A + branching direction = unique name B)
|
||||||
|
- efficient substitution
|
||||||
|
- bind normalisation
|
||||||
|
- type safer and easy to use AST
|
||||||
|
- add fetch item / indexed fetch (choose a good name)
|
||||||
|
- add simple frontend language with grin conversion
|
||||||
|
- generate apply
|
||||||
|
|
||||||
|
# JIT requirements
|
||||||
|
|
||||||
|
simplifaction transformations required by the codegen
|
||||||
|
|
||||||
|
- [ ] vectorisation
|
||||||
|
- [ ] case simplification
|
||||||
|
- [x] split fetch operation
|
||||||
|
- [ ] right hoist fetch operation
|
||||||
|
- [ ] register introduction
|
||||||
|
|
BIN
papers/The GRIN Project.pdf
Normal file
BIN
papers/The GRIN Project.pdf
Normal file
Binary file not shown.
BIN
papers/boquist.pdf
Normal file
BIN
papers/boquist.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user