Most of the work of my PhD thesis was done in BCPL. I was fluent in that when I switched to it from Pascal in 1985.
I using Pascal (which I'd learned in my undergraduate CS course in 1980) to write a game to play CoNeutron (although it was called Neutron then) for a competition, when I found some bizarre behavior. I tracked down a bug in the compiler and duly reported it. It was ignored, of course (compiler bugs are never compiler bugs, but are always bugs in the users program - didn't you know?) so I made an appointment to see Martin Richards.
I provided a 10 line program that demonstrated the bug, he ran it in the system level debugged, and confirmed it. He then said - "Well, that won't get fixed, why don't you use BCPL instead?" A naive translation into BCPL gained me a factor of 10 in performance, and I was hooked.
Oh, and I won the tournament. Which was nice.
I later "progressed" to C, but still miss BCPL. It had it awkwardnesses, but it had a certain charm.
I once had the pleasure of building the BCPL compiler for the GP2X gaming platform, just so I could run the amazing EDSAC simulator that comes with the BCPL package. I kept thinking, the whole time, that this language BCPL was like an old 70's classic automobile with fine leather trim and air conditioning .. sure the mileage probably wasn't that great, but there was just so much style in the trimmings .. ;)
Just for the record (since I have recently stumbled upon and read up on the BCPL stuff): Martin Richards web site at the University of Cambridge contains valuable resources on BCPL (http://www.cl.cam.ac.uk/~mr10/index.html), including (relatively) recently updated manuals.
I always find it amusing that C - the language which pretty much runs everything nowadays - still has broken precedence for the &/&& operators because people didn't want to break backwards compatibility when there were a handful of thousand-line programs written in it...
8 comments
[ 3.5 ms ] story [ 29.5 ms ] threadI using Pascal (which I'd learned in my undergraduate CS course in 1980) to write a game to play CoNeutron (although it was called Neutron then) for a competition, when I found some bizarre behavior. I tracked down a bug in the compiler and duly reported it. It was ignored, of course (compiler bugs are never compiler bugs, but are always bugs in the users program - didn't you know?) so I made an appointment to see Martin Richards.
I provided a 10 line program that demonstrated the bug, he ran it in the system level debugged, and confirmed it. He then said - "Well, that won't get fixed, why don't you use BCPL instead?" A naive translation into BCPL gained me a factor of 10 in performance, and I was hooked.
Oh, and I won the tournament. Which was nice.
I later "progressed" to C, but still miss BCPL. It had it awkwardnesses, but it had a certain charm.
Languages have died in obscurity for less.