GOPHERSPACE.DE - P H O X Y
gophering on hngopher.com
HN Gopher Feed (2017-09-04) - page 1 of 10
 
___________________________________________________________________
Ask HN: Resources for building a programming language?
6 points by kevinSuttle
 
Looking for tips, ideas, and actual detailed instructions for
creating a programming language.
___________________________________________________________________
 
ioddly - 7 minutes ago
What do you want to do? You could write a LISP interpreter in a
high level language in an hour, you could target the
JVM/CLR/whatever and get fairly high performance and GC without too
much work, you could spend months/years writing a quality language
runtime + native compiler, etc.http://www.craftinginterpreters.com/
is coming along really nicely.Reading academic papers can give you
some excellent ideas once you get into the weeds (e.g. garbage
collection, compiler optimization).
 
marianoguerra - 5 minutes ago
https://ruslanspivak.com/lsbasi-part1/you can continue with the
links from there.do you want to target something in
particular?implementing a lisp (scheme) or a forth is a good
starting point.
 
dawkins - 24 minutes ago
Hi, for the parser and compiler this helped me a lot:
https://compilers.iecc.com/crenshaw/If you are building an
interpreter too this was a great inspiration:
http://luaforge.net/docman/83/98/ANoFrillsIntroToLua51VMInst...
 
  cheez - 20 minutes ago
  Your URL is slightly off: https://compilers.iecc.com/crenshaw/
 
    dawkins - 10 minutes ago
    Thanks
 
ketralnis - 14 minutes ago
I'd probably start by using Racket, which has a whole toolkit for
it. Arc is written this way, for instance. Often these are lispy
languages but there is no reason they have to be. A starting point:
http://beautifulracket.com/stacker/ or
https://www.hashcollision.org/brainfudge/That will get you started
rediculously quickly and give you things like GC and JIT for free.
You can always implement it outside of racket once it starts to
take further shape
 
andreasgonewild - 8 minutes ago
Using Forth as a substrate lets you focus on the more interesting
aspects to an even higher degree than Lisp. The last thing you want
is detailed instructions; unless you're just building another
whatever, which never really made sense to me. Build the most
simple and naive thing possible that works the way you want it to,
and go from there. That's how Snabel was born:https://github.com
/andreas-gone-wild/snackis/blob/master/sna...