I'm interested in understanding the compiler a bit more. This seems semi-documented in the topics, especially the earlier ones in the forum - but maybe it'd be nice as an introduction to fantom in a single post?
What languages and what features of those languages did you draw inspiration from? Do you have any recommended reading for understanding the fantom compiler better (i e where did you guys learn everything to make this language)?
brianMon 7 Jan 2013
The compiler code design was sort of inspired by the Boo compiler, I liked how it was laid out with a simple top-level routine that called out to a bunch of serial steps that increasingly just polish up the AST until its ready to generate to bytecode. I find myself using this design pattern a lot now - when you have a complicated work flow, it is nice to have a single top-level place that serves as sort of an outline of the entire process.
I would say Fantom is inspired from a bunch of stuff: Java, C#, Python, Ruby, Lisp, Groovy, Self, Clojure, Scala, Eiffel. I think in the end its more about learning lots of stuff and seeing what you like and don't like then applying your own personal tastes.
JonasL Sun 6 Jan 2013
Hi,
I'm interested in understanding the compiler a bit more. This seems semi-documented in the topics, especially the earlier ones in the forum - but maybe it'd be nice as an introduction to fantom in a single post?
What languages and what features of those languages did you draw inspiration from? Do you have any recommended reading for understanding the fantom compiler better (i e where did you guys learn everything to make this language)?
brian Mon 7 Jan 2013
The compiler code design was sort of inspired by the Boo compiler, I liked how it was laid out with a simple top-level routine that called out to a bunch of serial steps that increasingly just polish up the AST until its ready to generate to bytecode. I find myself using this design pattern a lot now - when you have a complicated work flow, it is nice to have a single top-level place that serves as sort of an outline of the entire process.
I would say Fantom is inspired from a bunch of stuff: Java, C#, Python, Ruby, Lisp, Groovy, Self, Clojure, Scala, Eiffel. I think in the end its more about learning lots of stuff and seeing what you like and don't like then applying your own personal tastes.