Programming languages in MTS

Summary
| Language | Introduction | Features | Sample program |
|---|---|---|---|
| BASIC | Intro | Features | Narcissistic numbers |
| FORTRAN | Intro | Features | Emirp prime |
| MAD | Intro | Features | Mergesort |
| ALGOL 60 | Intro | Features | Josephus problem |
| ALGOL W | Intro | Features | Priority queue |
| LISP | Intro | Features | Four bit adder |
| UTILISP | Intro | Features | LISP vs FORTRAN |
| PL/1 | Intro | Features 1 Features 2 |
Radix sort |
| SNOBOL | Intro | Features | Date formats |
| RATFOR | Intro | Features | Emirp primes |
| FLECS | Intro | Features | Emirp primes |
| PIL | Intro | Features | Roman numerals |
| APL | Intro | Features | Knuth shuffle |
| Assembler | Intro | Features | Caesar cipher |
| GPSS | Intro | - | - |
| PLUS | Intro | Features | Grep |
| PL360 | Intro | - | - |
Introduction
MTS supported over 40 languages, representing a cross-section of programming tools available in 1988, from well known ones like LISP and FORTRAN to the more obscure such as GOM and PLUS.
In this series of posts I will take a look at each of these - plan of attack is 1-3 posts per language covering:
- A brief introduction, how to get it working on MTS and “Hello World”
- A tour of language features
- A more complex example, either implementing a task from Rosetta Stone or running a classic piece of code for that language.
Some languages may warrant more or less attention, and I will also look at the programming environment such as the debugger and link editor.
Trying to do all this may be quixotic - and I may lose interest among all the FORTRAN dialects - but it will be interesting to see what was available then and how they compare to the languages of today.
I am a working programmer by trade rather than an academic so don’t expect too much deep insight or theory - and if you spot any mistakes please let me know.
For new users of MTS, follow the setup guide, log on as a regular user such as ST01 and check the ‘Prerequisites’ section in the first article for each language for how to get it running - in most cases no extra work is needed once you have MTS running.
Source code
Source code for each of the examples can be found on Github.
Coming up later
- ALGOL 68
- BCPL
- COBOL
- GM APL
- ICON
- LISPs
- PROLOG/KR
- XPLs
Specialised languages
*CSMPContinuous System Modeling Program*UMISTAn interactive text-processing language patterned after TRAC*CLPARSEGENA parser generator that outputs PLUS code.
Cross assemblers
I will probably not look at these, unless they are especially interesting.
*1130ASMIBM 1130 and 1800 Assembler*11ASRPDP-11 Assembler, version AN231*1ASRPDP-1 Assembler (obsolete in D6.0)*8ASRPDP-8 Assembler (obsolete in D6.0)*9ASRPDP-9 Assembler (obsolete in d6.0)*ASMTIBM TSS Assembler (5.0T2)*I8080ASRA relocatable cross-assembler for the INTEL 8080*M6800ASRAn absolute cross-assembler for the Motorola M6800*M6809ASRAn absolute cross-assembler for the Motorola 6809*MCS650XASRAn absolute cross-assembler for the MOS Technology MCS6500 family*PDP11ASRA relocatable cross-assembler for the DEC PDP11*Z80ASRA Z80 cross-assemblerUNSP:11PALA DEC compatable PDP-11 assembler and simulatorUNSP:F8ASRA cross-assembler for the Mostek F8UNSP:PLMA cross compiler for the INTEL 8080 PL/M language
Further information
This list is based on the information in the MTS Archive describing what languages were available at the time of D6.0 and which work today, including those where there is no license available.