Skip to content

Commit

Permalink
Tweak format
Browse files Browse the repository at this point in the history
  • Loading branch information
jserv committed Nov 25, 2020
1 parent a813b84 commit 4489442
Showing 1 changed file with 19 additions and 13 deletions.
32 changes: 19 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Interpreter, Compiler, JIT

This repository contains the programs used in Nick Desaulniers' [blog post](https://nickdesaulniers.github.io/blog/2015/05/25/interpreter-compiler-jit/); an interpreter, a compiler, and a Just In Time (JIT) compiler for the brainfuck language. It is meant to show how similar these techniques are, and then improved by several students who learnt system programming to bring X86/ARM backend along with [DynASM](http://luajit.org/dynasm.html) support.

###Portability
## Portability
While all three are written in C, only the interpreter should be portable, even to [Emscripten](https://github.com/kripken/emscripten). The compiler and JIT is highly dependant on the specific Instruction Set Architecture (ISA), and Linux style calling convention.

##Prerequisites
## Prerequisites

Development packages for Ubuntu Linux Ubuntu 14.04 LTS:
```
```shell
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install gcc-4.8-multilib
Expand All @@ -15,30 +17,34 @@ sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install qemu-user
```

##Building
```
## Building

```shell
make
```

##Running
###The Interpreter
```
## Running
### The Interpreter

```shell
./interpreter progs/hello.bf
```

###The Compiler
```
### The Compiler

```shell
make run-compiler
```

###The JIT
```
### The JIT

```shell
make run-jit-x64
make run-jit-arm
make bench-jit-x64
```

##License
## License

_Except_ the code in `progs/` and `dynasm/`, the JIT-Construct source files are distributed
BSD-style license found in the LICENSE file.
Expand Down

0 comments on commit 4489442

Please sign in to comment.