Years ago I recall Burroughs staff telling me that the Algol compiler was itself implemented definitively in Algol -- not just as a research tool but operationally, to implement all future releases.
On my protesting what a crazy thing to do, they assured me it wasn't as chicken-and-egg as it sounds. You only had to get one working compiler right at the outset and it can be used to generate a more advanced compiler, and so on. I recall my history teacher telling me that the industrial revolution was founded on the fact that a lathe could be used to turn the screw to make a closer-tolerance lathe ... and so on. In practice it was one of the most useful "development tools" the Burroughs people had, because they could bootstrap up new features, port to new architectures or better implementations of primitives, and gave several examples where this had paid off handsomely. Also from a staffing point-of-view you don't have to employ specialists in the "implementation language" because it's the same as the target language. FORTH, if anyone remembers it, was booted-up by "user extension" from a tiny collection of machine-coded primitives (a sort of one-eyed p-code), which was partly why it was one of the first languages to be ported to new platforms, and indeed was used to implement commercial operating systems. Not very high-quality ones, I recall. But I don't think the Burroughs Algol people did it that way: there was no emulation going on. Nor could they have done it entirely like this: PLUS =: + The truth lay somewhere between. I would guess though it was basically PLUS =: + but with the option to replace any definition with a finer-grained one. Since the generation of a compiler is: source in, machine-code out, there is no circularity in this. Do I take it from Roger's remarks that he has already got J implemented in J? Or that he would use J to implement J if he had to do it afresh? Ian On Wed, Jul 22, 2009 at 4:27 PM, Dan Bron<[email protected]> wrote: > If you were considering reimplementing J, which language would you use? > What other tools would you use (e.g. yacc, antlr, parrot VM, etc)? > > Assume you're more concerned with productivity than performance in the > first instance, but would like the option to tune performance in the > future. > > What's a good language for implementing other languages? > > -Dan > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
