Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Would love to see a little behind the scenes for this, maybe a write up / blog post. Pretty neat little experiment.


I agree I should post one, but it usually takes me a lot of time, and I wasn't sure how much interest there would be. I'll start working on one.


I started writing my own language in JavaScript last Summer but gave up after only writing the Lexer because I didn't know how to continue. I would LOVE to read this blog post!


Kaleidoscope - LLVM Tutorial [0] is an excellent resource with code samples in C++ and OCaml.

[0] http://llvm.org/docs/tutorial/index.html


Agreed, it's an excellent resource. One of the best PL tutorials I've ever read.

But if you use the OCaml version with a recent version of OCaml, you'll run into a few issues. I sent in a patch with a few simple updates to the path mailing list earlier this year, but last I checked it wasn't merged.

Patch is here (it's a text file, despite the "bin" extension):

http://permalink.gmane.org/gmane.comp.compilers.llvm.cvs/183...

I also pasted the patch here:

http://pastebin.com/YvzB71nJ


Not all parsers need to be complex. If you're up for the challenge, read a bit on top-down parser and try to write it for your language!


There may be better books but this was fairly pragmatic and I learned a lot: http://www.amazon.com/Programming-Language-Processors-Java-I...


Niklaus Wirth´s book about compiler construction is quite good.

It is available at his ETHZ site nowadays,

http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf


I wrote a tutorial some time back — http://lisperator.net/pltut/ — also targeted at JS. It walks you through parsing, evaluating, continuations and CPS compiling.


Parsing, evaluating, continuations and CPS... it seems similar to this language: https://curiosity-driven.org/continuations#interpreter but the syntax is clearly different. Also, that interpreter is implemented in ~320 lines of JS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: