2.2 KiB
2.2 KiB
Requirements
- llvm-10
- valgrind
- cmake
- ninja
- clang
- clang-tidy
TODOs
TODO Add support for release builds with NODEBUG macro :: https://www.cplusplus.com/reference/cassert/assert/
Parser
First of all you need to read All you need to know about Parser algorithms. Then here is the list or parsers that we have considered
- Rust parser combinator framework
- https://github.com/Geal/nom/
- LR(1) parser generator for Rust
- https://github.com/lalrpop/lalrpop
- A parser combinator library for Rust
- https://github.com/Marwes/combine
- Parsing Expression Grammar (PEG) parser generator for Rust
- https://github.com/kevinmehall/rust-peg
- General purpose parser
- https://pest.rs/
Considerations
Resources
LLVM
- Brief overview of LLVM
- https://www.infoworld.com/article/3247799/what-is-llvm-the-power-behind-swift-rust-clang-and-more.html
- A bit in depth details on LLVM
- https://aosabook.org/en/llvm.html
- Rust binding
- https://crates.io/crates/llvm-sys
- Official LLVM tutorial C++
- https://llvm.org/docs/tutorial/
- Rust LLVM tutorial
- https://github.com/jauhien/iron-kaleidoscope
Data structures
- Pure functional datastructures papaer
- https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
- Dynamic typing: syntax and proof theory
- https://reader.elsevier.com/reader/sd/pii/0167642394000042?token=CEFF5C5D1B03FD680762FC4889A14C0CA2BB28FE390EC51099984536E12AC358F3D28A5C25C274296ACBBC32E5AE23CD
- Representing Type Information in Dynamically Typed Languages
- https://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.4394
- An empirical study on the impact of static typing on software maintainability
- https://www.researchgate.net/publication/259634489_An_empirical_study_on_the_impact_of_static_typing_on_software_maintainability
Other languages
- Julia: A Fresh Approach toNumerical Computing
- https://julialang.org/research/julia-fresh-approach-BEKS.pdf