back to article The latest language in the GNU Compiler Collection: Algol-68

A 37-year-old compiler is gaining support for a new language… although as that language is 57 years old, we are possibly stretching the adjective "new" more than our post-holiday waistband. An unexpected announcement came along at the start of 2025: the addition of another new language to the GCC suite. Well, we say "new", but …

  1. AndyMTB

    Crikey that brings back memories

    Algol-68 was my first introduction to the world of computing, back in 1976 as a first year maths student at Manchester. We had to do one "foreign" topic to keep us broad minded - French, German, Philosophy or Computer Science. As the computer building was right next door to the Maths Tower (now demolished) most of us opted for this the most convenient choice. We made up packs of punch cards that would be processed overnight, returned with a print-out which invariably said "syntax error line 1" or suchlike.

    Never touched a computer again after that one year (not that we were let anywhere near the actual mainframe) until I started work 3 years later.

    1. Blue Pumpkin

      Re: Crikey that brings back memories

      Upvote for the Maths Tower ... it was still ugly but nothing quite as ugly as the CS bunker next door where daylight was not allowed if you were an undergrad

      By the time I got there everybody was on Pascal ...

    2. Gambrinus68

      Re: Crikey that brings back memories

      Crikey…

      With no Australian reference?

  2. John Smith 19 Gold badge
    Unhappy

    Lead to a bunch of stuff at what was RSRE Malvern

    They were big on verifiability. I think it was called Ten15. Or 10:15.

    Algol 68 was so damm complex it used what looks like 2 level BNF, which I think was too much for anyone but hard-core theoretical language specialists.

    Keep in mind this was all before Unix put C*, YACC and LEX in the hands of developers, and hence made nearly any language you could devise implementable.

    I think it also (like PL/1) didn't flag type mismatches and tried to do something "Sensible" when they happened.

    What can possible go wrong with such a plan? Ask any PL/1 devs out there. IBM's vast effort to make it the next COBOL/FORTRAN did work in some places. :-(.

    *C "Portable Compiler" was designed to be re-hosted. Had it come out a bit earlier, when people were still implementing custom processors using the 74181 at 10x or more the clock of 1st gen microprocessors. Instead of developers knocking up a custom assembler they could have enjoyed a full OS and dev toolset. Chip makers could have rolled out next gen versions bumping the custom architectures to 100+MHz. Instead people switched to microprocessors and coat tailed their speed improvements. <sigh> What might have been, eh?

    1. Bebu sa Ware
      Coat

      Re: Lead to a bunch of stuff at what was RSRE Malvern

      "Algol 68 was so damm complex it used what looks like 2 level BNF, which I think was too much for anyone but hard-core theoretical language specialists."

      As noted elsewhere one language specialist was not entirely impressed -

      Niklaus Wirth in 1968 speaking of the idea of algol68 being a "universal" language (probably meaning exhaustively multipurpose):

      ..."invariably lead towards a monster language, a species of which there already exists a sample hardly worth nor possible to compete with.”

      I imagine he was thinking of IBM's PL/1 but could prophetically apply to C++ and few others I suspect.

      Wirth was on the algol X working group ~1966?

      The Bourne shell and successors preserve a trace of algol68 in the if..fi, case...esac constructs but not do...od as od was (is) a program to display binary files in octal, hex etc.

      1. Martin Gregorie

        Re: Lead to a bunch of stuff at what was RSRE Malvern

        I've written Algol-68, PL/1 and Elliott Algol 60 (but have written vastly more code in C, COBOL and Java). I liked Algol-68 (the RSRE flavour on a 1904 running George 3) a lot and found it fast and easy to both write and debug, However, you really need to have read "A very Informal Introduction to Algol 68" in addition to the Algol-68R manual. However, the "Very Informal Introduction" is a very easy and amusing read - the only book about a programming language thats made me grin and even laugh while reading it.

        I've also written systems in PL/1 on an IBM System/88 (actually a Badge-engineered Stratus fault-tolerant system) and on an AS/400 but didn't like the language a lot, mainly because the code organisation tended to separate statements that I thought should have been combined as they are in other languages like Java or Pascal.

        1. MarkMLl

          Re: Lead to a bunch of stuff at what was RSRE Malvern

          > ... should have been combined as they are in other languages like Java or Pascal.

          Although regrettably today's leading Pascal implementation (Free Pascal, with the Lazarus IDE) still stubbornly refuses to provide any facility to embed SQL etc. inline.

          Having a substantial amount of an ALGOL-60 dialect that relies excessively on tables declared at the start of the card deck, such separation makes me cringe.

        2. John Smith 19 Gold badge

          "the RSRE flavour on a 1904 running George 3"

          Oh really?

          I came across an article on this setup being used on a project inside RAF Strike Command in The Computer Journal. Using a separate program ( "framemanager"?) to prep the screen layouts was quite reminiscent of my AS400 time and the SDU.

          The article is somewhat vague about exactly what it's purpose was but given it's Strike Command and the 2nd R is for radar it's safe to say it's not running their spare parts inventory.

          A major UK defence system in 400k.

          On top of the OS.

          "an AS/400 but didn't like the language a lot, "

          IIRC COBOL was the preferred AS400 environment in most of Europe but in blighty it was RPG/400. It (sort of) helps if you realise the original Report Program Generator was developed as a tool for business programmers to migrate off assembler. To ease the movement the layout is of a 3 address assembler with 6 letter opcodes. Splitting all the data definition parts off from the core language I think was their nod to COBOL as well.

          Modern RPG supports free format lines and some very complex addin functions.

          On a personal note I learned to use VLOOKUP here before I ever saw it in Excel.

          1. John Savard

            Re: "the RSRE flavour on a 1904 running George 3"

            RPG was a tool for migrating off of assembler? I thought it was a tool for migrating off of plugboards for tab equipment, because it was designed very much along the same lines - as opposed to being procedural, which COBOL and assembler have in common.

            1. John Smith 19 Gold badge
              Unhappy

              "RPG was a tool for migrating off of assembler?"

              C calls them "Keywords," Pascal called them "Reserved words."

              I've only ever seen "Opcodes" used in (multiple) assemblers.

              The only plugboards I've ever seen were in factories controlling NC lathes.

              The original RPG, RPGII and RPGIII (and in fact RPG/400) had prefix flags that could bypass the execution of an "opcode" (which was also a function of ARM assembler. One of the reasons I felt right at home with RPG when I first looked at it but which I guess if you come from an HLL background was going to be a "WTF is this about" moment).

              It also had an implied logic loop (because of it's origin in creating reports).

              TBH I'd say the nearest thing conceptually to it (for those who've never seen RPG/400) would be AWK.

              I don't know how many people ever actually used the logic loop capability. We were taught RPG as a standard programming language, just with some unusual coding rules, and the requirement to see up all the I/O before you start the logic (so, much like COBOL then).

        3. Scene it all

          Re: Lead to a bunch of stuff at what was RSRE Malvern

          I remember how the "Revised report on Algol 68" used literary quotations to help "explain" the concepts. In the section on "comments" appears this quotation from Gilbert & Sullivan: "Merely corroborative detail, intended to lend artistic verisimilitude to an otherwise bald and unconvincing narrative."

          This made up for the difficulty in understanding the two-level "Wijngaarden grammar" that was the formal definition, as well as the not-invented-here use of unusual words. You did not "execute a program"; rather the computer "elaborated the definition" of the program.

      2. MarkMLl

        Re: Lead to a bunch of stuff at what was RSRE Malvern

        > Wirth was on the algol X working group ~1966?

        Wirth- and almost half of the other committee members- /resigned/ because they didn't like what they were being railroaded into.

        One of the people doing the railroading was John McCarthy: who Wirth couldn't easily criticise since he'd been his boss at Stanford.

        Wirth went on to knock Pascal together as a rush job, intentionally breaking the declaration syntax to make it incompatible with ALGOL.

        And together with other ex-committee members (Hoare, Dijkstra et al.) he went on to do early work on Ada.

        1. Torben Mogensen

          Re: Lead to a bunch of stuff at what was RSRE Malvern

          "Wirth went on to knock Pascal together as a rush job, intentionally breaking the declaration syntax to make it incompatible with ALGOL."

          The change was not made only to be incompatible, but used the variable : type notation used in type theory. In ALGOL-style notation (later adopted by C), you write type variable, but if the variable is an array, you write that after the variable name, e.g. integer x[100]. That means that part of the type of x comes before the name, and another part after the name. In Pascal, you write x : array[0..99] of integer, keeping all of the type to the right of the colon.

          Admittedly, Wirth's notation is rather verbose (Pascal generally is). You could shorten it to x : integer[0..99] while keeping all of the type to the right of the colon.

          1. John Smith 19 Gold badge
            Unhappy

            "keeping all of the type to the right of the colon."

            I guess this is the way to do it if you want fast compiling speed.

            IIRC Wirth saw a mainframe compiling an Algol like language (stack based hardware and the language was used to write the machines OS as well) as fast as cards were being read in.

            From then he aimed at simple fast-to-compile languages.

      3. Ian Mason

        Re: Lead to a bunch of stuff at what was RSRE Malvern

        Wirth's moans were just because his proposal for ALGOL X was rejected. He later went on to release it anyway as ALGOL W, which sank without trace.

    2. abend0c4 Silver badge

      Re: Lead to a bunch of stuff at what was RSRE Malvern

      Algol 68 was so damm complex

      As proof of this, I suggest taking a look at "The Most Contrived Factorial Program" by John P. Baker of the University of Bristol, of which the partial Algol 68 code is:

      THE FIRST day OF christmas MY TRUE LOVE sent to ME

      a PARTRIDGE in a pear tree;

      You can find it in Algol Bulletin 42 starting on Page 50.

      1. Chris Gray 1

        Re: Lead to a bunch of stuff at what was RSRE Malvern

        You would need a lot of previous declarations to understand that. What is happening is that Algol68 allows spaces in identifiers. That includes named infix operators. I *think* the capitalization indicates operators. A few of those early languages made case required.

        1. John Smith 19 Gold badge
          Unhappy

          "Algol68 allows spaces in identifiers."

          Back in the day that wasn't unusual.

          So did FORTRAN.

          No doubt with just as many hilarious consequences at debugging time.

          1. Phil O'Sophical Silver badge

            Re: "Algol68 allows spaces in identifiers."

            FORTRAN didn't just allow spaces in identifiers, it disregarded them completely after column 7.

            That, plus the ability to create variables on the fly without prior declaration, is said to have caused problems for one element of the early space program. A fragment of code should have been something like:

            ⠀⠀⠀⠀⠀DO 2O I = 1,1O

            ⠀⠀⠀⠀⠀... stuff here ...

            20⠀⠀⠀CONTINUE

            which would have executed the code within the loop 10 times, incrementing variable "I" from 1 to 10. Unfortunately the code as actually written was:

            ⠀⠀⠀⠀⠀DO 2O I = 1.1O

            ⠀⠀⠀⠀⠀ ... stuff here ...

            20⠀⠀⠀CONTINUE

            (note the comma mistyped as a period). As a result, the compiler didn't complain, but created a REAL variable called DO20I, assigned it the value 1.1, and executed the code once, with "I" undefined, likely zero. Oops

            1. John Smith 19 Gold badge
              Unhappy

              " but created a REAL variable called DO20I, assigned it the value 1.1, and

              executed the code once, with "I" undefined, likely zero. Oops"

              I've heard this story about one of the early NASA space probes but didn't know the details.

              I think it rather proves my point that you really can have too much flexibility.

              TBF FORTRAN really was the first HLL that got standardised :-(

    3. nijam Silver badge

      Re: Lead to a bunch of stuff at what was RSRE Malvern

      > Algol 68 was so damm complex it used what looks like 2 level BNF, which I think was too much for anyone but hard-core theoretical language specialists.

      No, the language definition uses level 2 BNF, the language itself doesn't (my MSc was in the use of 2-level grammars). Algol-68 was a great step forward in exposing some of the abstract concepts underlying progamming, but most people were put off by (little-founded) horror stories about its complexity.

      > I think it also ... didn't flag type mismatches and tried to do something "Sensible" when they happened.

      "Sensible" being the operative (pun intended) word. Converting integer numbers to floating-point numbers being an example, and one we all use in everyday life. Apart from a few instance like that, it has a strong type system.

      As for Pascal, it's something I think Wirth should have been embarrassed about. Just my opinion, but to me it looked like a dead-end that took another decade or more to become a viable language for non-trivial projects.

      1. John Smith 19 Gold badge

        "As for Pascal, it's something I think Wirth should have been embarrassed about. "

        I was referring to the report when I was talking about A68 and since I've never had to implement it my impressions are just that, impressions.

        However the quote above is likely to be one that will be contentious.

        AFAIK Wirth's goals for Pascal were a)Compile it as fast as FORTRAN in an academic environment and be a good teaching programming. On those terms it succeeded very well.

        The examples that Wirth gives in his books are quite substantial (like indexing every word in a Pascal program). And Knuth's team built Tec and Metafont in it.

        Your right that pascal lacks several features that various third party developers attempted to address created incompatible variants. Remember, Ada is a Pascal derivative.

        Keep in mind in the 60's and 70's built-in I/O was SOP for languages. IIRC only "system" languages like Coral, Bliss and BCPL had I/O in libraries. IMHO had pascal supported pointers to procedures (although it sort of looks like it should, and Delphi relies on doing so). Likewise it's requirement to fix the size of array being passed to a procedure looks like a massive PITA. The workaround required the full implementation of the standard, which I think was rarely fully implemented. IMHO the failure of those three features killed it till Turbo Pascal (and Brookhaven, which offered high end compiling and Turbo compatibility).

  3. Contrex

    This vulture was 16 years, 8 months, and 15 days old On December 20, 1968, and was getting all excited about the Apollo 8 mission, and his new Country Joe and the Fish album.

    1. ChrisElvidge Silver badge

      Give us an F

  4. fortyrunner

    When I got to Uni, we were the first year of CompSci to study Pascal. Previous years used AlgolW (and before that Algol60).

    Of course, old hands rubbished Pascal as a toy. I found it to be a wonderful language and spent pretty much the next 10 years working on MS-Pascal, Turbo Pascal and the mighty Delphi.

    1. Roland6 Silver badge

      My uni studied Algol-68 in our second year, really powerful for algorithms and data structures, plus for one assignment we wrote a Pascal compiler. Spent a year in industry and went back to do my final year and found they had moved over to Pascal.

      A few years later my time spent debugging Algol-68 and obsessing about semicolons made C and Ada simple.

  5. Sceptic Tank Silver badge
    FAIL

    Alghoul-68

    I had a look at some Algol-68 code but it made my eyes bleed. Then I had a look at some Algol-60 and my faith in humanity was restored. Why did Van Wijngaarden still call it Algol and not Mindfsck or something more appropriate? Looks like he over sampled the produce of the vineyard‡ when designing this Rube Goldberg software.

    ‡ Amateur linguist at work here so DO NOT quote me on any of this, but a "wijngaarden" is probably a vineyard. "Wijn" is where you get your word "wine" from, and a "gaarde(n)" is a collection of things – like "boomgaarde" would be an orchard (collection of trees) and "diergaarde" is a zoo (collection of animals). "Gaarden" is probably where you got your word "garden" from.

    1. John Smith 19 Gold badge
      Coat

      "Why did Van Wijngaarden still call it Algol and not Mindfsck"

      Well he might have been the leader of the Committee (but not of Vultures, unless some here are very grey bearded) but it was a committee effort.

      The alternative was the Wirth/Hoare "Algol X" who both liked the minimal additions approach. Hoar's Turning Lecture show's he had experience IRL of what happens when language designers get clever (Spoiler alert. It's not good).

      Wirth did an implementation when at Stanford for the IBM 360 mainframe that was Algol-W (for Wirth?) that apparently got quite a few copies sent out to various site. The assembler he wrote to build it (remember this is pre-YACC and LEX) which for some reason he called PL/360, was also quite liked.

      As for naming what people call "Sage Accounts" is in fact a set of not-very-compatible different packages. Sage 200 for example was an ERP package called Tripos, before they got their sticky paws on it. Who knows what's under the hood?

      1. Chris Gray 1
        Happy

        Re: "Why did Van Wijngaarden still call it Algol and not Mindfsck"

        A lot of those names/events are ringing bells for me. One of the members of the Algol68 committee, Barry Mailloux, spent time at the University of Alberta. *My* first programming language was Algol-W on an IBM mainframe. I wrote my first compiler in it.

        Two guys from Saskatchewan wrote an Algol68 compiler in IBM 360 assembler. Large card decks - I think I saw it once. Their product went by a couple of names, one was FLACC (Full Language Algol68 Checkout Compiler). After that wound down somewhat, they moved into parallel computers - they were two of the founders of Myrias Research Corporation, which built and sold parallel computer systems based on first the Motorola 68000, then the 68020, then the 68040. Customers included various government organizations, including in the US.

        There was a grad student there who wrote a PL/360 compiler, and I'm pretty sure he invented the concept. Name James Heifetz (sp?). The idea was that it was similar to PL/1, but simpler, and aimed at producing low-level (only IBM 360?) code.

        The complexity of the Algol68 Report was beyond me. Heavy use of a W-Grammar. It came out as one issue of SIGPLAN Notices. My copy was loaned out and lost long ago. But, being in that environment, you can see why I put some reversed keywords into Draco, my AmigaMUD language and now Zed!

        Amusing personal note: At one point I moved to a condo in a building overlooking the river. I then found out that one of my immediate next-door neighbours was Prof. Mailloux's widow. Got to know her somewhat in the years I was there.

        1. manford

          Re: "Why did Van Wijngaarden still call it Algol and not Mindfsck"

          Wirth didn't like coding in assembler, so he designed and created PL/360 in order to create the Algol-W compiler using primitive structured techniques. The PL/360 compiler itself was written in PL/360, so a mini-version of it was written to bootstrap up to the full PL/360 compiler. Algol-W was a great language for computer science instruction, but I/O wasn't its long suit, so it failed to get traction out in the real world. The same can be said for its successor, Pascal, also by Wirth. Because Algol-W was dependent on the PL/360 compiler (and hence the IBM mainframe), its use fizzled as superior alternatives that were platform agnostic were developed.

          The compiler(s) in original form are still available on the MTS tapes for running under Hercules if you are so inclined.

      2. Locomotion69 Bronze badge
        Joke

        Re: "Why did Van Wijngaarden still call it Algol and not Mindfsck"

        Because it would to hard to distinguish this Mindfsck with other languages referred to by the same phrase (Rust, Prolog, Lisp, gtl, every assembler, to name a few).

    2. MarkMLl

      Re: Alghoul-68

      > Why did Van Wijngaarden still call it Algol and not Mindfsck or something more appropriate?

      Because one of the luminaries was McCarthy, who by then had pinned his colours to LISP and had an interest in seeing ALGOL fail.

  6. Howard Sway Silver badge

    I would try it, but...

    my keyboard only has an 'End' key and no 'Begin' key, and there's no way I'm going to spend time continually typing those words in full all day.

    Joking aside, why are there no programmer focused keyboards out there on the market? Curly bracket keys that don't need a shift to type them might be a good start, and it would be lovely to have common keywords as a mode on the keypad to speed up typing even more. Just not too many modes, otherwise we'd end up back in ZX Spectrum territory.

    1. LionelB Silver badge

      Re: I would try it, but...

      Well, at least if you're running X11, I guess you could completely remap a keyboard with modmap and xev (and some judicious application of sticky labels). That might be a fun project.

    2. AndyMTB

      Re: I would try it, but...

      The number of times my Spectrum programs contained PRINTRINT as I invariable forgot that auto-completion business. Only used it fleetingly, was pursuaded to run an evening programming course at a local college.

    3. MarkMLl

      Re: I would try it, but...

      > why are there no programmer focused keyboards out there on the market?

      You mean like https://web.archive.org/web/20200217111612/http://www.aplusdev.org/keybdBW.html ?

      1. that one in the corner Silver badge

        Re: I would try it, but...

        Hmm, do I recognise the APLle of your eye?

        1. MarkMLl

          Re: I would try it, but...

          Actually, APL was much easier when it used a printing terminal with overstrikes: memorising the 30ish base characters was relatively easy.

    4. James Anderson Silver badge

      Re: I would try it, but...

      You do have to shift for curly brackets but otherwise the standard US English keyboard has all the special characters easily available. I think it's more a question of these computer languages being developed on these keyboards leading to the choice of which characters to use than good keyboard design.

    5. Ken Hagan Gold badge

      Re: I would try it, but...

      "Joking aside, why are there no programmer focused keyboards out there on the market?"

      If "time taken to type" is even a factor in your programming productivity then you have bigger problems than your keyboard.

      And yes, that is "joking aside".

      Also, unless you never use another keyboard (and no-one ever uses your keyboard), the effect of a non-standard layout on your touch typing muscle memory might actually mean your overall typing speed was dragged down. A colleague of mine has one of those "ergonomic" keyboards with the two halves split and slightly separated. Much loved, so the keycaps have all been worn away, too. I can manage about 5 words per minute on it.

    6. that one in the corner Silver badge

      Re: I would try it, but...

      > why are there no programmer focused keyboards out there on the market?

      Leaving aside Ken Hagan's very sensible comment about messing with muscle memory, if you really want a keyboard with keywords ready to go, all the odd characters available without SHIFT etc etc then there are opportunities for you to make it a reality.

      There is a thriving make-your-own keyboard "scene"[0], everything from reprogramming a ready-built keyboard to designing your own wonderful arrangement (want it shaped like a hand of bananas? PCBWay can probably offer you a range of colours to choose from). All controlled by a common off-the-shelf MCU board (although there are specialised dev boards from the likes of Adafruit) and configurable firmware to control what each keypress does.

      Or maybe just get one of the wide range of "macro keyboards" and use that instead?

      One of the happy results of USB is that you can plug as many HID devices as you like into your PC and have them all operational at the same time[1]. So you could just take the easy route to removing the need for a SHIFT key by gluing a second keyboard above your normal one[2] and then gluing down its SHIFT key. Plug both into the PC and you'll have a proper Upper Case to work with.

      [0] Although a large part of this seems to be dedicated to creating the smallest possible keyboard, so be careful who you outline your ideas to. Personally, as a dedicated Northgate Omni Ultra user, if a keyboard can't be used to measure out a fathom of line it is too small to be taken seriously.

      [1] This is, of course, why That Scene from CSI is so daft - they just needed to plug in another keyboard, then they'd both be able to type on all the keys instead of each one only getting the board to use.

      [2] be careful if using a laptop, it may obscure the display

    7. nijam Silver badge

      Re: I would try it, but...

      > no way I'm going to spend time continually typing those words in full all day

      You could have used ( - ) pairs instead of BEGIN - END, at least in Algol-68R.

      1. John Smith 19 Gold badge
        Unhappy

        > no way I'm going to spend time continually typing those words in full all day

        I'd never realised how few devs are actually touch typists.

        Can I suggest it's not your keyboard. It's your tools?

        Seriously in the 3rd decade of the 21st Century your editor can't handle part of this?

        I'm pretty sure GCC comes with something to do with this.

        No, I am not starting a flame war by naming any editor. I'm just pointing out that whatever you use should have this.

        My college editor had this. It read the language suffix and the same set of keyboard shortcuts coughed up the language specific way to do whatever I needed.

  7. steamnut

    Testing..

    My college computer, which I spent too much time on, was an Elliott 803 with 4K of memory! It ran Algol and I still have the teletype printouts from my project (sad I know). I might just see if they will compile and run - for old times sake.

    The most common error I used to get was something like SUBSCROFLO (subscript overflow) which was the result of me declaring an array that was too large for the 4K memory.

    Happy days....

    1. Bertieboy

      Re: Testing..

      Ha! we had 8k of (ferrite) core memory on our 803 - just enough for me to (eventually) write a decent least squares fit program to sort out my reaction rate equations - happy days!

  8. robj

    Loved Algol68

    I taught myself Algol 68 on a DECSYSTEM-20 in the late 70s after reading a book by D.W. Barron. I still have the book.

    I have been wanting to find a copy of Algol68-C for the PDP10 ever since. Anyone have a copy?

    1. fnusnu

      Re: Loved Algol68

      This one? http://www.bitsavers.org/pdf/dec/pdp10/TOPS10_softwareNotebooks/vol06/AA-0196C-TK_ALGOL_Programmers_Guide_Apr77.pdf

      1. robj

        Re: Loved Algol68

        No, that is Algol-60. Algol68C was a portable implementation of Algol68 developed at Cambridge University. A couple of people from Exeter (I think it was), ported it to the PDP10. It may have been on a DECUS tape, but I am not sure.

  9. MarkMLl

    The seminal structured languages

    In any event, and irrespective of their relative standing as the heir to ALGOL-60, the really important thing is that ALGOL-68 and Pascal reflect a recognition of the importance of types and data structures in a language.

    Many machines of the day actually treated integers as a subset of floating point numbers, and most of them supported the concept of a record as the fundamental structure of input and output. But a robust codification of type and record handling was novel, and it is worth remembering- and hopefully teaching, if only in passing- where such things originated.

  10. Anonymous Coward
    Anonymous Coward

    Algol-68RS was an excellent language to use; I spent a short time supporting the commercial VAX/VMS version of the compiler which ran surprisingly fast for a relatively complex language (and for a Vax).

    While the compiler itself was straightforward to work with, the underlying transput module (input/output to me and you) was more of a challenge - other languages had the right idea when they moved all that stuff to separate libraries.

    afaik RSRE Malvern created their variant because a) the base variant was too messy , b) it was interesting to do , c) they might get to use it instead of CORAL

    1. Ian Mason

      The stated reason for the RS compiler and language variant was to support modular programming as the ALGOL 68 view of the world was all monolithic programs. The RS extensions introduced ways of compiling chunks of ALGOL 68 as modules and then compositing them into a complete program, it wasn't pretty. The modular extensions aside, the RS compiler was a pleasant enough implementation to use. There was, of all things, a Multics port of it which I got to use.

  11. John Gamble

    Algol was the second computer language I learned, after BASIC. How often I used it can be determined by the fact that I can't remember if it was Algol-60 or Algol-68.

    It was still handy for reading old CACM papers, though I suspect any decent Pascal knowledge would work just as well.

  12. Alan Burlison

    I still have the book...

    https://imgur.com/a/qDtanq4

    Any guesses as to what the ENTIER keyword does? No cheating!

    1. nijam Silver badge

      Re: I still have the book...

      > Any guesses as to what the ENTIER keyword does? No cheating!

      Clue: it was a sop to a French committee member who couldn't abide all the reserved words being English.

  13. kovesp

    The memories ...

    A university classmate and I discovered A68 in 1973 ... and we were in love. I still have the Draft Report (MR93), the Report, and the Revised Report. Also the Informal Intoduction and the Companion. I even had a tshirt with Algol 68 on the front and 86 loglA on the back (if you know anything about A68, that needs no explanation). My diploma thesis contained a proof that van Wijngaarden grammars are equivalent to Turing machines.

    Now that I have retired, I plan to find an A68 compiler and write my first program in the language.

    1. John Smith 19 Gold badge
      Coat

      "a proof that van Wijngaarden grammars are equivalent to Turing machines."

      Which raise the question "Are all notations powerful enough to describe a turning complete language* so capable, or just this one?"

      Sorry that was just the first thing that popped into my head.

      *On the basis a full computer language can cope with any problem that you can state well enough to design a program to solve.

  14. OSYSTEM
    Happy

    Simula-67 for the win!

    As any fule kno, Simula-67 was the object oriented¹ extension of Algol-60.

    Simpler, more modern, and will get you dates with Norwegians more often than Algol-68.

    So when will we get Simula-67 for GCC? (Yes, there is Cim, which hasn't been touched since 2014, and most likely won't build on a modern Linux distribution.)

    ¹Quite possible the first object oriented language.

    1. OSYSTEM

      Re: Simula-67 for the win!

      Also event handling, coroutines, reference counting, and basic garbage collection.

      So most features of modern languages.

      1. swm

        Re: Simula-67 for the win!

        ALGOL 68 had garbage collection but it didn't collect everything.

  15. John Smith 19 Gold badge
    Coat

    IIRC Simula-67 was a *major* influence on Smalltalk

    Which in term coined the term (IIRC) "Object orientated"*

    *On a personal note Simula067 looks like it's got all the features needed to implement a blackboard system straight out of the box. It's not often appreciated that the "Hearsay" voice recognition system was not built in Lisp but Sail

    1. Rochus

      Re: IIRC Simula-67 was a *major* influence on Smalltalk

      Simula 67 was definitely an influence for Smalltalk-76 (which was published by Ingalls in 1978), but the versions before including Kay's previous work seemed only to be aware of the 1966 ACM publication about Simula I (not the object-oriented Simula 67). Simula I had classes and (active) objects synchronizing via event queues. Simula 67 added inheritance and virtual methods. The term "object-oriented" for a programming language first appeared in 1976 in a publication by Jones and Liskov (see https://news.ycombinator.com/item?id=36879311).

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like