You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/src/01_calculator/jit_intro.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ JIT compilation is a combination of Ahead-Of-Time (AOT) compilation and interpre
4
4
5
5
### LLVM
6
6
7
-
[LLVM](https://en.wikipedia.org/wiki/LLVM) which stands for **Low-Level-Virtual-Machine**, is a mature compiler backend (code generator) infrastructure powering many languages such as [Clang](https://clang.llvm.org/), [Rust](https://www.rust-lang.org/), [Swift](https://swift.org/), etc. It has its own IR and Virtual Machine Bytecode abstracting away the underlying platform-specific differences.
7
+
[LLVM](https://en.wikipedia.org/wiki/LLVM)(which is *not* an acronym) is a mature compiler backend (code generator) infrastructure powering many languages such as [Clang](https://clang.llvm.org/), [Rust](https://www.rust-lang.org/), [Swift](https://swift.org/), etc. It has its own IR and Virtual Machine Bytecode abstracting away the underlying platform-specific differences.
8
8
9
9
We will use [inkwell](https://github.com/TheDan64/inkwell) which provides a safe Rust wrapper around LLVM. Remember to use the branch according to your installed `llvm-config --version`.
Copy file name to clipboardExpand all lines: book/src/intro.md
+2-4Lines changed: 2 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,10 +36,8 @@ Here is the outline of the contents
36
36
37
37
* [Crash Course on Computing](./crash_course.md) which we briefly set up the definitions and foundations
38
38
* We create our first programming language `Calc` that supports simple integer addition and subtraction. The simplicity allows us to touch a lot of important topics. We will use [PEG](https://en.wikipedia.org/wiki/Parsing_expression_grammar) to define our grammar, [pest](https://bitbegin.github.io/pest-rs/) to generate our `CalcParser` and explain what AST is and interpreting the AST means. Next, we will introduce JIT compilation and use [inkwell](https://github.com/TheDan64/inkwell) to JIT compile our `Calc` language from its AST. To show an alternative compilation approach, we will create a Virtual Machine and a Runtime environment and discuss its features. Finally, we will write a simple REPL for our `Calc` language and test out different execution paths.
39
-
* TODO: We will introduce `Jeslang` (a statically typed language) and gradually work our way up from `Calc` language to create `Jeslang` together
40
-
* TODO: Object system and object oriented programming
41
-
* TODO: Functional language
42
-
* TENTATIVE: Module system and packaging
39
+
* TODO: We will create `Firstlang`, a statically typed language, by gradually working our way up from our `Calc`
40
+
* TODO: Object system and minimal object oriented programming support
0 commit comments