3 ms·
Reflection APIs and compiler internals actually tend to be quite similar. In the case of Scala in particular, the reflection API was literally produced by scoop
by clhodapp 10y ago
Reflection APIs and compiler internals actually tend to be quite similar. In the case of Scala in particular, the reflection API was literally produced by scooping out part of the compiler into a separate library and trying to polish (or hide) the rough edges. The effort wasn't entirely successful in producing an easy-to-use API, but the in-development successor project, scala.meta, is still very compiler-y (just because, again, compiler internals tend to look a lot like reflection APIs).
Further, it is my belief that your project actually was a compiler, whether you thought of it as that or not!
- lmm 10y agoIt's a compiler but not a Scala compiler. Rather it's a compiler for a smaller language, whether one thinks of and names that language or not. (I actually recommend pushing that line of thought all the way through, and using something like thrift (with Scrooge) for this kind of problem. The thrift compiler is a compiler and the thrift IDL is a defined and specified language rather than an ad-hoc subset of Scala)