Editor's note: Adapted with permission from Potentials. December 1983, pages 26-30. Copyright 1983 IEEE.
Edit: something's not right there. That's way too early. According to https://www.cs.princeton.edu/~bwk/bwkbib.html, it's 1988 and from BYTE.
Whoever wrote this was a bit naïve.
Pascal is essentially just the abandoned prototype for more grown-up designs like Modula-2.
The Modula-2 language an allocation mechanism more similar to malloc and free. And, actually, early versions of that were broken: there was a way to ask how much memory remains before trying the memory allocation request, with no way to know whether it succeeded.
Guess what? This was fixed in the ISO standard.
See here, the ISO function reference on modula2.org:
http://modula2.org/reference/isomodules/isomodule.php?file=S...
PROCEDURE ALLOCATE (VAR addr: SYSTEM.ADDRESS; amount: CARDINAL);
(* Allocates storage for a variable of size amount and assigns the address of this
variable to addr. If there is insufficient unallocated storage to do this, the
value NIL is assigned to addr.
*)
So ISO Modula 2 has an allocator that pretty much exactly like malloc and free. (It's worse: DEALLOCATE needs to know the size!)If Pascal's way was better, it would have survived into Modula-2.
Also, Modula-2 has I/O functions that you try first, and then check the result. Streams are called "channels":
PROCEDURE ReadRestLine (cid: IOChan.ChanId; VAR s: ARRAY OF CHAR);
(* Removes any remaining characters from the input stream cid before the next line mark,
copying to s as many as can be accommodated as a string value. The read result is set
to the value allRight, outOfRange, endOfLine, or endOfInput.
*)
More like C, again. None of this business of knowing whether we are at end-of-file or end-of-line without trying any input.Three typos in the first two sentences. Was this transcribed? I'm a little suspicious now of the attributed authorship, since I somehow doubt that Dennis Ritchie would misspell his own name.
EDIT: There's this snippet as well at the end: > In the meantime, C wears well as your experience with it grows. With 15 years of C experience, we still feel that way.
So I'd put it the article's original publication date sometime between 1988 and 1990?