Martin Richards has a version of BCPL at his home page (http://www.cl.cam.ac.uk/~mr10/index.html) and has put excellent documentation for the RaspberryPi at http://www.cl.cam.ac.uk/~mr10/bcpl4raspi.pdf.
Whilst primarily of historical significance today, BCPL was a tour de force for bootstrapping compilers and operating systems in its day.
The chain of influence of the language itself is roughly: Algol -> CPL -> BCPL -> B -> C -> ...
(BBC Basic takes its indirection operator (addr!offset) from BCPL.)
The legacy of its pioneering use of O-Code / Virtual Machine targeting can be seen all around us today with the popularity of CLR and JVM.
The pillars of BCPL were a pragmatic cleanliness and simplicity combined with the concept of untyped variables but typed operators.
It is an excellent language for someone who wants to learn about low-level programming concepts without getting caught up in the complexities of assembler or C++.
-
- Posts: 65
- Joined: Sat Jul 07, 2012 11:21 pm
- Location: Zero Page
- gordon@drogon.net
- Posts: 2023
- Joined: Tue Feb 07, 2012 2:14 pm
- Location: Devon, UK
- Contact: Website Twitter
Re: Young Persons Guide to BCPL Programming on the Raspberry
BCPL. Wow. Now there's a big blast from (my) past. I spent a couple of years writing BCPL on BBC Micros for a factory automation / robotics project. Still have the books!hermanhermitage wrote:Martin Richards has a version of BCPL at his home page (http://www.cl.cam.ac.uk/~mr10/index.html) and has put excellent documentation for the RaspberryPi at http://www.cl.cam.ac.uk/~mr10/bcpl4raspi.pdf.
Whilst primarily of historical significance today, BCPL was a tour de force for bootstrapping compilers and operating systems in its day.
The chain of influence of the language itself is roughly: Algol -> CPL -> BCPL -> B -> C -> ...
(BBC Basic takes its indirection operator (addr!offset) from BCPL.)
The legacy of its pioneering use of O-Code / Virtual Machine targeting can be seen all around us today with the popularity of CLR and JVM.
The pillars of BCPL were a pragmatic cleanliness and simplicity combined with the concept of untyped variables but typed operators.
It is an excellent language for someone who wants to learn about low-level programming concepts without getting caught up in the complexities of assembler or C++.


OK: Editing this because I've been using BCPL recently and surprised myself at how versatile it still is after all these years, and when I googled for some BCPL information - this post came up! I do prefer C (and RTB BASIC, of-course), but BCPL still has uses. Amazing.
-Gordon
Last edited by gordon@drogon.net on Tue Dec 18, 2018 7:30 pm, edited 1 time in total.
--
Gordons projects: https://projects.drogon.net/
Gordons projects: https://projects.drogon.net/
Re: Young Persons Guide to BCPL Programming on the Raspberry
What a great resource that guide is.
This was also a blast for the past for me since my old prof - Andrew Colin - designed a language based on BCPL called STAB-1* and that was the 2nd language - after Algol 68 - that I learnt/used.
*The implemention of stab-1 - A. J. T. Colin in Software: Practice and Experience Volume 2, Issue 2, pages 137–142, April/June 1972
This was also a blast for the past for me since my old prof - Andrew Colin - designed a language based on BCPL called STAB-1* and that was the 2nd language - after Algol 68 - that I learnt/used.
*The implemention of stab-1 - A. J. T. Colin in Software: Practice and Experience Volume 2, Issue 2, pages 137–142, April/June 1972
Abstract
This paper describes the implementation of STAB-1, a BCPL-like language for a small PDP-11 computer. The paper lays considerable emphasis on the actual techniques of implementation, and highlights some of the practical difficulties which were encountered. Finally, the experience gained is distilled into a set of precepts for compiler writers. The paper is seen as mainly tutorial in nature.
Re: Young Persons Guide to BCPL Programming on the Raspberry
Yes, this is rather good. I just found this article this evening after digging out an old game I wrote in BCPL for the Amstrad CPC. It was an interesting language, even if (for the AMSDOS version) you had to jump through hoops to compile separate code segments.
‘Remember the Golden Rule of Selling: “Do not resort to violence.”’ — McGlashan.
Pronouns: he/him
Pronouns: he/him