[HN Gopher] Young Persons Guide to BCPL Programming on the Raspb...
___________________________________________________________________
Young Persons Guide to BCPL Programming on the Raspberry Pi [pdf]
Author : scrlk
Score : 46 points
Date : 2025-01-12 13:37 UTC (1 days ago)
(HTM) web link (www.cl.cam.ac.uk)
(TXT) w3m dump (www.cl.cam.ac.uk)
| stargrazer wrote:
| University of Cambridge Revision date: Tue Oct 23 16:58:19 BST
| 2018
| Rochus wrote:
| Wow, this is an amazing book, nearly 800 pages; counless examples
| of BCPL applications, by the author of the BCPL language.
| b800h wrote:
| I'm going to test out the assertion that children as young as 10
| can use the guide, by asking my 11-year-old to use it. I don't
| believe it; it assumes way too much knowledge of computer
| terminology. We'll see.
|
| BCPL also looks dry as hell, I'm not convinced it's a great first
| language.
| guenthert wrote:
| Nice introduction text with detailed description to set-up a R.Pi
| and interesting examples (AES, calculating Euler's number,
| Rubik's cube etc.). Shame it uses an utterly obsolete language of
| which most interesting feature (byte code interpreter making
| porting the compiler to new architectures comparatively easy) was
| important in the seventies with its plethora of architectures
| (many short-lives), but hardly today.
| throwaway290 wrote:
| What makes it specifically for young people? I looked at the
| paper but didn't spot anything obvious
| rsynnott wrote:
| In the context of BCPL, "young person" simply means "under 90".
| louthy wrote:
| Page 29 is the first code. You need to work through 'War and
| Peace' of text before you get there. This is not good for a
| "young person". They need to get there quicker IMHO.
|
| I always say that the reason I got into programming (at the age
| of 10) was because of the BBC Micro User Guide [1].
|
| * Page 5: first code written (and importantly, code that has a
| visual component)
|
| * Page 6: Drawing lines
|
| * Page 7: Playing sounds
|
| etc.
|
| I realised very quickly that I was able to make a game. And that
| was it, I was hooked for life.
|
| The Raspberry Pi took its inspiration from the BBC Micro (Model
| B). It's a shame that there wasn't more of a push to make it as
| easy as the original Model B to get going and start programming.
|
| (Of course I realise that it's running Linux where nothing is
| simple, but yeah, I'm not sure it necessarily helps kickstart the
| next generation in the way the original BBC Micro did)
|
| [1] https://archive.org/details/BBCUG/mode/2up?view=theater
| tgv wrote:
| I think the title is just a play on "A young person's guide to
| the orchestra" (by Britten). Nobody in their right mind would
| want to learn programming in BCPL, the predecessor of the
| predecessor of C.
| louthy wrote:
| > Nobody in their right mind would want to learn programming
| in BCPL
|
| I agree, but that's not what the author thinks:
|
| "When a new programming language is designed it is invariably
| strongly influenced by languages that preceded it. One thread
| of related languages is: Algol -> CPL -> BCPL -> B -> C ->
| C++ -> Java, indicating that BCPL is just a small link in the
| chain from the development of Algol in the late 1950s to Java
| in the 1980s. _BCPL is particularly easy to learn and is thus
| a good choice as a first programming language._ "
|
| Emphasis mine.
|
| Also,
|
| "This document is intended to help people with no computing
| experience to learn to write, compile and run BCPL programs
| on the Raspberry Pi in as little as one or two days, even if
| they are as young as 10 years old."
|
| So, unless I'm missing something, this document is intended
| to teach programming first concepts with BCPL. And it seems
| like it's aimed at young people, regardless of the play on
| words (which I didn't know, thanks!).
| lordmauve wrote:
| > > Nobody in their right mind would want to learn
| programming in BCPL
|
| > I agree, but that's not what the author thinks:
|
| The author of this document is Martin Richards, the creator
| of BCPL. Of course he thinks you would want to learn it.
| 082349872349872 wrote:
| We've all been a young person[0], so it's easy to
| criticise from that angle.
|
| However, I'd like to think the readership of HN are
| hacker enough to like to think that, given a desert
| island (with minor deps like sand and the Friday hardware
| fab!) and a few spare years, they'd be capable of
| Robinson Crusoe'ing up a personal development
| environment.
|
| From that point of view, I find[1] this effort admirable:
| it's several hundred pages, by Martin Richards, about the
| port of the BCPL toolchain (language, compiler, bytecode
| interpreter, libraries, debugger, etc. all by Martin
| Richards?) to a new system (was it a new arch as
| well?)... by Martin Richards.
|
| How many among us get a machine with new graphics, decide
| to write a flight simulator, and then --only as a
| minor[2] implementation detail mind you-- plumb float
| support through our entire language ecosystem? Who needs
| a shaved yak when you're pursuing the buttery-smooth
| shaded yak?
|
| [0] or maybe we even still are:
| https://news.ycombinator.com/item?id=42682353
|
| " _when I was your age all we had were 1 's and 0's, and
| sometimes not even 0's, so we'd stay up all night xor'ing
| 1's to have enough for the next day..._"
|
| [1] when I did this sort of thing to pay the bills, I had
| someone else doing the tech writing and someone else
| providing toolchain and debugger sources, and it was
| still not a trivial lift.
|
| [2] compare Wirth FPGA'ing up an entire homebrewed arch
| just so he could have a personal workstation using his
| favourite mouse.
| tgv wrote:
| You're right. I'm somewhat stumped.
| Tor3 wrote:
| Chapter 4.1 (installation of BCPL, before you can start coding)
| is indeed somewhat(!) more complicated than how it was for the
| BBC microcomputer (or any other back in the day) - just power
| it on, enter 10 PRINT "HOW ARE YOU" RUN
| anonzzzies wrote:
| Before I even had a computer (begin 80s), my grandparents used
| to always bring me to a warehouse where they sold inventory
| from burnt down shops. Usually I would by soccer fan shirts
| (Ajax in my case at the time) and stuff, but this time, it was
| a specialist bookshop and I picked up a few computer books and
| magazines. This was so early in the computer era that I had
| never seen a computer magazine or book; I knew what computers
| were from the 2600 which my cousin had to play games on, but
| outside that I knew not very much. I read these things from
| cover to cover many (100 times possibly) times and always
| remember that when we did get our first computer, I opened my
| favorite one; it had the ISBN/author/publisher page and then
| page 1 was:
|
| Turn the computer on and type
|
| 10 PRINT "My first homecomputer program"<enter>
|
| RUN<enter>
|
| And the book continued like that. I really cannot remember at
| all what the book was called or for which homecomputer it was;
| I do remember that after a bunch of pages, the programs stopped
| working on my system with a syntax error. I think it maybe was
| a ZX Spectrum or so book, but it hardly can be as I think it
| was too early for that. It was the fastest way to get into it
| and got me deep into programming because it went so easy that I
| kept finding more and more.
| kstrauser wrote:
| My total knowledge of BCPL: it's what AmigaDOS was written in
| before they ported it to C.
| amiga386 wrote:
| https://en.wikipedia.org/wiki/TRIPOS was written in BCPL (in
| 1978) at the University of Cambridge.
|
| TRIPOS was ported to the 68000 in 1981 by Dr Tim King. In 1984,
| he joined the company MetaComCo, and they bought the commercial
| rights to his 68000 port.
|
| The Amiga OS was well behind schedule in 1984. MetaComCo were
| contracted in March 1985 to integrate TRIPOS into the Amiga's
| existing OS code (mainly Exec and Intuition), and the Amiga
| launched in July 1985. That's a pretty fast turnaround time!
|
| TRIPOS is most evident in the AmigaDOS portions of AmigaOS,
| specifically dos.library, the CLI, the directory structure (C,
| L, S are TRIPOS standard directories for commands, libraries,
| scripts, hence the odd mix of LIBS for Amiga libraries but L
| for AmigaDOS handlers and filesystems), the standard disk
| filesystem, and all filesystem handlers.
|
| For AmigaOS 2.0 (released 1990-1991), it wasn't quite "[TRIPOS]
| ported to C"... AmigaDOS was rewritten entirely. There was no
| BCPL or TRIPOS left, except deliberate structures/functions
| (written in C!) to support backward-compatibility with BCPL
| software.
|
| AmigaDOS's API was greatly extended to provide official OS
| calls for what were previously BCPL globvec internals, and most
| of the command-line programs were rewritten in C. This work had
| already been advocated for and done in 1987-1989 by the third-
| party "AmigaDOS Replacement Project"
| https://aminet.net/package/misc/antiq/ARP_13
| icedchai wrote:
| Heh. I love reading stuff like this. I still remember the
| time I booted up a soft-kicked version of AmigaOS 2.0 on my
| A500. It was like night and day compared to 1.3.
| Mumps wrote:
| BCPL ("Basic Combined Programming Language") [0]
|
| Insanely frustrating that BCPL doesn't seem to be defined
| anywhere in the document itself.
|
| [0] https://en.wikipedia.org/wiki/BCPL
| dboreham wrote:
| It's defined in the BCPL book.
| dfawcus wrote:
| It one is going to play with obsolete languages, then wouldn't
| Algol 68 be a better pick? At least it has types beyond "cell".
|
| Or is the idea that BCPL is quite close to the bare metal?
|
| Algol 68 Genie:
| https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html
|
| See this, code starts on pg 11:
| https://jmvdveer.home.xs4all.nl/learning-algol-68-genie.pdf
| (after 18 pages of preface)
|
| See this for how BCPL begat B which begat C: https://www.bell-
| labs.com/usr/dmr/www/chist.html
| 082349872349872 wrote:
| > _At least it has types beyond "cell"._
|
| I prefer MCPL ( https://www.cl.cam.ac.uk/~mr10/mcplman.pdf )
| but I believe BCPL did recently pick up a floating point type,
| after Richards got a Pi and before he wrote a flight sim.
|
| [does the C in CPL stand for Cambridge, Combined, or
| Christopher? Yes.]
| GeoffKnauth wrote:
| BCPL--hadn't had my first coffee before I read this, I thought it
| was going to be SBCL.
| the__alchemist wrote:
| I'm confident Raspberry Pi writers have never used a credit card.
___________________________________________________________________
(page generated 2025-01-13 23:02 UTC)