3 ms·
This seems way ahead of its time, especially with generators. Maybe Fujitsu was able to just do it because they didn't bother with any of the lengthy standardi
by omoikane 2y ago
This seems way ahead of its time, especially with generators. Maybe Fujitsu was able to just do it because they didn't bother with any of the lengthy standardization processes, but that's probably also why all these extensions seemed relatively unknown and had to be rediscovered and reinvented in modern C/C++ decades later.
- ahoka 2y agoC could have been a much nicer language if it wasn’t captured by people who insisted that not even two’s complement can be in the standard.
- dxuh 2y agoI guess those people were parts of the embedded software industry before 2000 (maybe today, I don't know). It's a very good thing that C, the lingua franca of modern computing, actually runs on everything and not just on the stuff we use to browse the internet.
- int_19h 2y agoI don't think it was unreasonable at the time ANSI did the standardization originally. As with Common Lisp, they had to consider the numerous already-existing implementations and code written with them in mind.
- kevin_thibedeau 2y agoThere was a lot more innovation in computer architectures in the 80s and 90s. C89 is designed to permit implementation on unconventional hardware like the Lisp machine. C's flexible targeting is its greatest asset.
- Gibbon1 2y agoYep right when everyone 1. Standardized on two's complement. 2. Little endian. 3. We went from word based memory systems to line based ones. 4. RISC lost out to super scalar designs.
- amszmidt 2y agoCs ability to run on "unconventional" (though there is little unconventional about the Lisp Machine, it is a just a stack based machine) long predates C89 (specifically). ZETA-C, a C compiler specific to the Lisp Machine, was already fully fledged by 1987 or there about. Don't have notes on when ZETA-C came to be, but it was much earlier than that, e.g., some of the headers are dated 1984. One cool thing about ZETA-C was you could embed Lisp code in between C code: extern FILE *stdin, *stdout, *stderr; #lisp ;; We don't want this file to "own" these (zeta-c:zclib>initialize-file-pointer |stdin| 0) (zeta-c:zclib>initialize-file-pointer |stdout| 1) (zeta-c:zclib>initialize-file-pointer |stderr| 2) #endlisp
- saagarjha 2y agoTwo's complement being in the standard is overrated and for the most part doesn't really make much about the language better.
- JdeBP 2y agoIt was not Fujitsu. It was MetaWare, which had a fair degree of experience with compilers. It had a contemporaneous Pascal compiler, which was quite well known, and Pascal already had nested functions.
- int_19h 2y agoCoroutines and generators were already well-understood then (see Icon!), so I think it is indeed mostly about not having to worry about standardization.