Rich kids are into COBOL
paulkoning at comcast.net
Fri Feb 27 13:44:33 CST 2015
> On Feb 27, 2015, at 1:27 PM, Chuck Guzis <cclist at sydex.com> wrote:
> I suppose that it's unreasonable for a language to support processor instruction set extensions. But APL does a great job of supporting vectors; has a syntax for things such as dot-product, etc. So it can't be that K&R weren't aware of such things.
> It seems to me to be very strange that today we're coding in a language that was developed for a PDP-11 minicomputer.
I thought it was a PDP-7 minicomputer? (Or is that Unix?)
But while C was first run on a DEC minicomputer, it isn’t in any significant way “for” those computers, any more than Fortran or COBOL are for IBM computers. All high level languages are pretty portable, some a bit more so than others. For example, Fortran fits comfortably on CDC 6000 machines (60 bits one’s complement) and IBM 1620 (decimal variable length); C doesn’t. If you really stand on your head, you can sort of make it work; there exists a C for the 6600, for example. But you have to stretch, if not outright violate, a number of the language rules to do so.
I think the limitations and design of C come from the fact that it was designed for OS implementation, not high level application implementation, as APL or various other languages were. Compare C with Bliss and Sympl and ESPOL, not with APL or Snobol. Given that focus, it’s pretty good. Certainly better than Bliss. The other two suffer from being implemented only on single proprietary platforms that have long since disappeared, and Sympl didn’t have much going for it anyway (being based on Jovial is certainly a recipe for disaster). It would have been nice if ESPOL had evolved to be a portable language as C was, but that didn’t happen.
C does have extensions for vectors; I know GCC does, and for all I know those may be standard rather than GCC specials.
I suppose there’s always Ada if you want a clean portable systems programming language...
More information about the cctalk