Re: history of C, was Is multi-level function return possible?

glen herrmannsfeldt <gah@ugcs.caltech.edu>
Thu, 27 Mar 2014 00:05:36 +0000 (UTC)

          From comp.compilers

Related articles
[5 earlier articles]
Re: Is multi-level function return possible? news@cuboid.co.uk (Andy Walker) (2014-03-16)
Re: Is multi-level function return possible? yaldnif.w@blueyonder.co.uk (Bill Findlay) (2014-03-17)
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (2014-03-18)
Re: Is multi-level function return possible? news@cuboid.co.uk (Andy Walker) (2014-03-21)
Re: Is multi-level function return possible? anton@mips.complang.tuwien.ac.at (2014-03-24)
Re: Is multi-level function return possible? news@cuboid.co.uk (Andy Walker) (2014-03-26)
Re: history of C, was Is multi-level function return possible? gah@ugcs.caltech.edu (glen herrmannsfeldt) (2014-03-27)
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: Thu, 27 Mar 2014 00:05:36 +0000 (UTC)
Organization: Aioe.org NNTP Server
References: 14-03-020 14-03-022 14-03-025 14-03-030 14-03-044 14-03-046 14-03-047 14-03-048 14-03-053 14-03-057 14-03-061
Keywords: C, history
Posted-Date: 26 Mar 2014 20:54:33 EDT

Andy Walker <news@cuboid.co.uk> wrote:


(snip)


> But B and C are different languages, with differing design aims
> and criteria. Having a feature in C that was absent from B is not the
> same as adding to C a feature that had previously been removed. K&R C
> was not B Mk 2, but a new language with inputs [conscious or unconscious]
> from many languages, including (B)(CPL) and Algol 68.


(snip)


> [C was influenced by PL/I. C++ is where the Algol68 got mixed
> in, and some of the C++ stuff was backported into C. -John]


I always believe that until a recent comp.lang.c discussion convinced
me otherwise.


The question related to the C conditional operator, which I remembered
in a different form from ALGOL-10 (on TOPS-10) some years ago.


I then looked up in ALGOL-60 and ALGOL-68 manuals to find out how it
changed. Seems that ALGOL-68 also has the assign/arithmetic operators,
such as +:=, -:=, x:- (where that should be a multiply sign, not an
x or *), and some more that I also don't have on the keyboard.


PL/I doesn't (or at least didn't, could have changed by now) have the
conditional operator or the assign/arithmetic operators. Both of
those, at least, go back to K&R C, and before C++.


PL/I is from around 1964 or so, but I don't know the timing
(what happened when) for ALGOL-68 at all.


The two differences I always remember between K&R C and ANSI C are
struct as argument (instead of struct pointer) and initialized auto
arrays.


-- glen


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.