Settings

Theme

Show HN: Synesthesia – Optimizing brainfuck compiler implemented as Nim macros

github.com

33 points by jeff_ciesielski · 3 comments

Reader

3 threads
mratsim

I'm playing a lot with VM, interpreters, JIT and recently compilers in Nim.

Here is a JIT brainfuck VM: https://github.com/mratsim/jitterland

Nim macros are extremely useful for assemblers and emulators as contrary to many codebases which needs to use an intermediate code generation step via text files [1][2][3] you can directly use them with type checking and all Nim facilities while keeping an easy to read syntax: https://github.com/numforge/laser/blob/e898f027/laser/photon...

[1]: Xbyak - https://github.com/herumi/xbyak/blob/v5.751/gen/gen_avx512.c...

[2]: NNPack + PeachPy - https://github.com/Maratyszcza/NNPACK/blob/af40ea7d/src/x86_...

[3]: Apache Milagro Crypto - https://github.com/apache/incubator-milagro-crypto/blob/d43a...

def-

Related: http://howistart.org/posts/nim/1/index.html https://github.com/def-/nim-brainfuck

fjfaase

Similar implementation in JavaScript: http://www.iwriteiam.nl/Ha_bf_online.html

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection