On May 29, 2020, at 4:25 PM, Norman Jaffe via cctalk
<cctalk at classiccmp.org> wrote:
C is portable by design and runs on many architectures.
It doesn't need 512Kb of RAM and it doesn't depend on Unix.
Yes. But the same is true for many languages. Fortran is a particularly good example,
but there are plenty of portable languages (Algol, Basic, LISP, Python, COBOL, Ada, RPG,
...). Some more than C; for example, C doesn't like one's complement machines
(though it has been ported to at least one) and things get somewhat interesting if the
machine doesn't have byte addressing.
Since C aims to be a system implementation language, unlike Fortran or Basic or Algol, it
tends to expose, or at least let you see, machine details. That can get in the way of
portability. One small example is that C thinks address 0 is a null pointer rather than a
valid pointer. On modern systems that is true (partly because C says so) but on a PDP-11
it isn't.
paul