Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!decwrl!amdcad!lll-crg!caip!daemon From: mwm%ucbopal@BERKELEY.EDU@caip.RUTGERS.EDU Newsgroups: net.micro.amiga Subject: Re: What's BCPL? Message-ID: <1124@caip.RUTGERS.EDU> Date: Wed, 29-Jan-86 22:33:27 EST Article-I.D.: caip.1124 Posted: Wed Jan 29 22:33:27 1986 Date-Received: Sat, 1-Feb-86 03:35:50 EST Sender: daemon@caip.RUTGERS.EDU Organization: Rutgers Univ., New Brunswick, N.J. Lines: 38 From: Mike (I'll be mellow when I'm dead) Meyer Since there weren't smiley faces plastered all over this, I'll assume he was serious and correct it (actually, giving credit to X for Y's work is bad news, and I would probably correct that even if it *had* smiley faces on it!). > BCPL stands for the "Before 'C' Programming Language", and was developed > for the PDP-11 many years ago by the folks who brought us UNIX (Ken > Thompson, et al). I believe you can read more in The 'C' Programming > Language. From the forward to "BCPL the language and its compiler" by Martin Richards and Colin Whitby-Strevens (Cambridge University Press, 1980): "BCPL was designed by one of the authors in 1967 (Richards)." BCLP stands for Basic CPL. BCPL is a stripped-down version of CPL (CPL stands for Combinded Programming Language). It was the inspiration/model/parent-of for B, which was designed by Dennis Ritchie and used for the utilities in early Unix systems (among other things). B grew up to become C, the early stages of which can also be blamed on Ritchie (ok, ok "for which Ritchie should also get credit".) This is the source of the "next language will be either B or P" comment in "The C Programming Language." [What we actually got was "C++", which, as the name implies, changes the language but has the same value (thank you, uokvax!jejones :-).] BCPL is *odd*. It's the only language I've ever seen that let's you change the value of a subroutine, like so: x() // call x x = x + 16 // add 16 to x x() // call (old x) + 16.... (x+16)() // Now call (old x) + 32.... It does have some of nice features that I wish had made it into C. resultis "Hack, Hack",