Programming Languages - M

Sample Program

M -

1. Alternative name for MUMPS.

2. Silicon Compiler Systems. A C-like language for multilevel hardware description. Currently available in the GDT package from Mentor Graphics.

M3 - Macro processor, forerunner of M4, for the AP-3 mini.

M4 - Macro processor for Unix and GCOS. "The M4 Macro Processor", Kernighan & Ritchie, Jul 1977.

M5 - A. Dain, U Cincinnati, 1992. Macro processor, a generalization of M4. For Unix and DOS.

M6 - Yet another macro processor. Mentioned in Don Libes, "Life with Unix".

MAC - Early system on Ferranti Mercury. Listed in CACM 2(5):16 (May 1959).

Mac-1 - Assembly language used in Structured Computer Organization, A.S. Tanenbaum, 3rd Edition, P-H 1989, Sect. 4.3. [See Mic-1]

MAC - ca 1959. Mercury Autocode 2. One of the first extensible languages, originally for the English Electric Mercury and later the ICT1300 series.

MAC-360 - ca. 1967. Solving numerical problems using equation-like input. "User's Guide to MAC-360", Charles Stark Draper Lab, Cambridge MA (Aug 1973) Sammet 1969, p.264.

Macaulay - Mike Stillman <> and Dave Bayer <> 1977. Symbolic math package for commutative algebra, algebraic geometry, cohomology.* Version 3 for Sun, Mac and Amiga, source in C

MACE - Concurrent object-oriented language.[?]

Machiavelli - Peter Buneman & Atsushi Ohori, U Pennsylvania, 1989. An extension of Standard ML based on orthogonal persistence. "Database Programming in Machiavelli: A Polymorphic Language with Static Type Inference", A. Ohori, Proc SIGMOD Conf, ACM, June 1989.

MACL - Macintosh Allegro CL. Former name of MCL. list:

MacLisp - MIT AI Lab, late 1960's. Later used by Project MAC, Mathlab, and Macsyma. Ran on the PDP-10. Introduced the LEXPR (a function with variable arity), macros, arrays, and CATCH/THROW. Was once one of two main branches of LISP (the other being Interlisp). In 1981 Common LISP was begun in an effort to combine the best features of both. "MACLISP Reference Manual", D.A. Moon <>, TR Project MAC, MIT 1974.


1. Assembly language for VAX/VMS.

2. PL/I-like language with extensions for string processing. "MACRO: A Programming Language", S.R. Greenwood, SIGPLAN Notices 14(9):80-91 (Sep 1979).

Macro SAP - Macro processing modification of SAP. D.E. Eastwood and D.M. McIlroy, unpublished memorandum, Bell Labs 1959. Led to TRAC.

MACSYMA - Project MAC's SYmbolic MAnipulator. Joel Moses <> MIT 1969, later Symbolics, Inc. The first comprehensive symbolic math system, written in LISP. "MACSYMA - The Fifth Year", J. Moses, SIGSAM Bulletin 8(3) (Aug 1974). Versions: Symbolics Macsyma, DOE Maxima (ANL), Vaxima. info: DOE Maxima in Common LISP


1. Michigan Algorithm Decoder. Developed at U Michigan by R. Graham, Bruce Arden <> and Bernard Galler <>, 1959. Based on IAL. For the IBM 704, 709 and 7090, later ported to Philco, Univac and CDC machines. MAD was one of the first extensible languages: the user could define his own operators and data types. "Michigan Algorithm Decoder (The MAD Manual)", U Michigan Computing Center, 1966. Sammet 1969, p.205.

2. Dataflow language. "Implementation of Data Structures on a Data Flow Computer", D.L. Bowen, Ph.D. Thesis, Victoria U Manchester, Apr 1981.

Mad/1 - A later, much enhanced version of MAD, for the IBM 360. Michigan's answer to PL/I.

MADCAP - Math and set problems, for the Maniac II and CDC 6600. "MADCAP - A Scientific Compiler for a Displayed Formula Texbook Language", M.B. Wells, CACM 4(1):31-36 (Jan 1961). Sammet 1969, pp.271-281. Versions: Madcap 5 (1964), Madcap 6. "The Unified Data Structure Capability in Madcap 6", M.B. Wells et al, Intl J Comp Info Sci 1(3) (sep 1972).

MADTRAN - Early preprocessor that translated FORTRAN to MAD, for gain in speed.

MAGIC - Early system on Midac computer. Listed in CACM 2(5):16 (May 1959).

Magic Paper - Early interactive symbolic math system. Sammet 1969, p.510.

Magma2 - Language that allows programmability of the control environment, e.g. recursion, backtracking, coroutines, nondeterminism, etc. "Magma2: A Language Oriented Toward Experiments in Control", Franco Turini, ACM TOPLAS 6(4):468-486 (Oct 1984).

MagmaLISP - Predecessor of Magma2. "MagmaLISP: A Machine Language for Artificial Intelligence", C. Mantagero et al, Proc 4th Intl Joint Conf Artif Intell, 1975, pp.556-561.

MAGNUM - Tymshare Inc, late 70's. Database language for DEC-10's, used internally by Tymshare.

Magritte - J. Gosling. Constraint language for interactive graphical layout. Solves its constraints using algebraic transformations. "Algebraic Constraints", J. Gosling, PhD Thesis, TR CS-83-132, CMU, May 1983.

MAINSAIL - MAchine INdependent SAIL. From XIDAK, Palo Alto CA, (415) 855- 9271.

Maisie - A C extension with concurrency via asynchronous typed message passing and lihtweight processes.

Make - Language for the Unix file maintenance utility Make. "Make - A Program for Maintaining Computer Programs", A.I. Feldman, TR No 57, Bell Labs Apr 1977.

MAL - Micro Assembly Language - Microprogramming language with high-level syntax, used in Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H 1989, Sect 4.4. [See Mic-1, Mac-1].

MALPAS IL - TA Consultancy Services. A strongly typed, block-structured intermediate language intended for static analysis and verification. Translators exist for Ada, C, Pascal, Fortran 77, Coral 66 and several assembly languages. "Code Verification with the Aid of MALPAS", N.J. Ward, Proc IEE Colloq of High Integrity Ada (Jan 1993).

Manchester Autocode - Predecessor of Mercury Autocode. "The Programming Strategy Used with the Manchester University Mark I Computer", R.A. Brooker, Proc IEE 103B Suppl:151-157, 1956.

Mandala - ICOT, Japan. A system based on Concurrent Prolog. "Mandala: A Logic Based Knowledge Programming System", K. Furukawa et al, Intl Conf 5th Gen Comp Sys 1984.

MAO - Early symbolic math system. A. Rom, Celest Mech 1:309-319 (1969).

MAP - Mathematical Analysis without Programming. On-line system under CTSS for math. Sammet 1969, p.240.

Maple - B. Char, K. Geddes, G. Gonnet, M. Monagan & S. Watt, U Waterloo, Canada 1980. Symbolic math system. Waterloo Maple Software. Current version: Maple V. info: list:

MARBLE - A Pascal-like microprogramming language. "MARBLE: A High Level Machine-Independent Language for Microprogramming", S. Davidson et al, in Firmware, Microprogramming and Restructureable Hardware, G. Chroust et al eds, N-H 1980, pp.253-263.

Maril - Machine description language used by the Marion code generator. "The Marion System for Retargetable Instruction Scheduling", D.G. Bradlee et al, SIGPLAN Notices 26(6):229-240 (June 1991).

Markov - [?]

Marseille Prolog - One of the two main dialects of Prolog, the other being Edinburgh Prolog. The difference is largely syntax. The original Marseille Interpreter (1973) was written in FORTRAN.

MARSYAS - MARshall SYstem for Aerospace Simulation. Simulation of large physical systems. "MARSYAS - A Software System for the Digital Simulation of Physical Systems", H. Trauboth et al, Proc SJCC, 36 (1970).

MARVIN - U Dortmund, 1984. Applicative language based on Modula-2, enhanced by signatures (grammars) terms (trees) and attribute couplings (functions on trees). Used for specification of language translators. "MARVIN - A Tool for Applicative and Modular Compiler Specification", H. Ganziger et al, Forsch 220, U Dortmund, Jul 1986.

Mary - Mark Rain. Machine-oriented language, a supeset of ALGOL68, extensible. Hidden on the back cover of the manual: MARY HAD A LITTLE LAMB - COERCION IMPOSSIBLE. "Mary Programmer's Reference Manual", M. Rain et al, R Unit, Trondheim Norway, 1974. "Operator Expressions in Mary", M. Rain, SIGPLAN Notices 8(1) (Jan 1973).

MAS - Modula-2 Algebra System. "Modula-2 Algebra System", H. Kredel, Proc DISCO 90 Capri, LNCS 429, Springer 1990, pp270-271.* for Atari, Amiga, MS-DOS, OS/2

MASM - Microsoft Assembler for MS-DOS.

Massey Hope - Massey U, NZ. Refinement of Hope+C with improved syntax, and no stream I/O. info: Nigel Perry <>

Matchmaker - A language for specifying and automating the generation of multi-lingual interprocess communication interfaces. MIG is an implementation of a subset of Matchmaker that generates C and C++ remote procedure call interfaces for interprocess communication between Mach tasks. "MIG - The Mach Interface Generator", R.P. Draves et al, CS CMU, (4 Aug 1989).

Mathcad - Symbolic math environment.

Mathematica - (name suggested by Steve Jobs). Wolfram Research, 1988. Symbolic math and graphics system. The language emphasizes rules and pattern-matching. "Mathematica: A System for Doing Mathematics by Computer", Stephen Wolfram, A-W 1988., // list: info:

MATHLAB - Symbolic math system, MITRE, 1964. Later version: MATHLAB 68 (PDP-6, 1967). "The Legacy of MATHLAB 68", C. Engelman, Proc 2nd Symp on Symbolic and Algebraic Manip, ACM (Mar 1971). Sammet 1969, p.498.

MATH-MATIC or MATHMATIC - Alternate name for AT-3. Early, pre-FORTRAN language for UNIVAC I or II. Sammet 1969.

Matrix Compiler - Early matrix computations on UNIVAC. Sammet 1969, p.642.

MATRIX MATH - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959).

mawk - Mike Brennan <> 1991. An implementation of nawk, distributed under GNU license but distinct from GNU's gawk.

MAXIMOP - "Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc BCS Symp on Job Control Languages--Past Present and Future, NCC, Manchester, ENgland 1974.

MBASIC - Microsoft BASIC.

MC - Extension of C with modules. Symbols in other modules can be referenced using a dot notation. "Design and Implementation of a C-Based Language for Distributed Real-Time Systems", A. Rizk et al, SIGPLAN Notices 22(6):83-96 (June 1987).

McG360 - Interactive, similar to PAL[5], for IBM 360. "McG360 Programmer's Guide", RC 2693, IBM TJWRC, Nov 1969.

MCL - Macintosh Common LISP. (Previously MACL.)

M-Code -

1) Intermediate code produced by the original ETH Modula-2 compiler.

2) Intermediate language for an SECD-like machine, used by the Concert implementation of MultiLISP.

MCS - Meta Class System. A portable object-oriented extension of Common LISP.

MDL - (originally "Muddle"). C. Reeve, C. Hewitt & G. Sussman, Dynamic Modeling Group, MIT ca. 1971. Intended as a successor to Lisp, and a possible base for Planner-70. Basically LISP 1.5 with data types and arrays. Many of its features were advanced at the time (I/O, interrupt handling and coroutining), and were incorporated into later LISP dialects ("optional", "rest" and "aux" markers). In the mid 80's there was an effort to use bytecoding to make the language portable. CLU was first implemented in MDL. Infocom wrote Zork in MDL, and used it as the basis for the ZIL interpreter. "The MDL Programming Language", S.W. Galley et al, Doc SYS.11.01, Project MAC, MIT (Nov 1975). Implementations exist for ITS, TOPS-20, BSD 4.3, Apollo Domain, SunOS and A/UX.

me too - Peter Henderson, 1984. Functional language for executable specifications. Like LispKit Lisp, but with sets, maps and sequences to describe the specification. "Functional Programming, Formal Specification and Rapid Prototyping", IEEE Trans Soft Eng, SE-12(2):241-250 (Feb 1986).

MELD - Concurrent, object-oriented, dataflow, modular and fault-tolerant! Comparable to SR. "MELDing Multiple Granularities of Parallelism", G. Kaiser et al, ECOOP '89, pp.147-166, Cambridge U Press 1989.

MeldC - Columbia U, 1990. A C-based concurrent object-oriented coordination language built on a reflective architecture. A redesign of MELD. Version 2.0 for Sun4's and DECstations. info: Gail Kaiser <>

Melinda - "Melinda: Linda with Multiple Tuple Spaces", S. Hupfer, <> YALEU/DCS/RR-766, Yale U Feb 1990.

Mentat - U Virginia. Object-oriented distributed language, an extension of C++, portable to a variety of MIMD architectures. "Mentat: An Object- Oriented Macro Data Flow System", A. Grimshaw <> et al, SIGPLAN Notices 22(12):35-47 (Dec 1987) (OOPSLA '87). Available now for Sun 3 & 4 and iPSC/2, and soon Mach, iPSC860, RS/6000 and Iris. info:

MENTOR - CAI language. "Computer Systems for Teaching Complex Concepts", Report 1742, BBN, Mar 1969.

MENYMA/S - "A Message Oriented Language for System Applications", A. Koch et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.824-832.

Mercury Autocode - Autocode for the Ferranti Mercury machine. (See Autocode).

MEROON - An object-oriented system built on Scheme.*

Mesa - Xerox PARC, 1977. System and application programming for proprietary hardware: Alto, Dolphin, Dorado and Dandelion. Pascal-like syntax, Algol68-like semantics. An early version was weakly typed. Mesa's modules with separately compilable definition and implementation parts directly led to Wirth's design for Modula. Threads, coroutines (fork/join), exceptions, and monitors. Type checking may be disabled. Mesa was used internally by Xerox to develop ViewPoint, the Xerox Star, MDE, and the controller of a high-end copier. It was released to a few universitites in 1985. Succeeded by Cedar. "Mesa Language Manual", J.G. Mitchell et al, Xerox PARC, CSL-79-3 (Apr 1979). "Early Experience with Mesa", Geschke et al, CACM 20(8):540-552 (Aug 1977).

META - CDC, ca 1977. Assembly language for the CYBER 200. CDC Pub 60256020.

META 5 - Early syntax-directed compiler-compiler, used for translating one high-level language to another. "META 5: A Tool to Manipulate Strings of Data", D.K. Oppenheim et al, Proc 21st Natl Conf, ACM 1966. Sammet 1969, p.638. Versions: META II, META-3.

Meta-II - An early compiler-compiler. "Meta-II: a Syntax Oriented Compiler Writing Language", V. Schorre, Proc 19th ACM Natl Conf 1964.

Meta-IV - See VDM-SL.

Meta-Crystal - A language for transformations of Crystal programs. Implemented in T. "Meta-Crystal- A Metalanguage for Parallel-Program Optimization", J.A. Yang et al, TR YALEU/DCS/TR-786, Yale Apr 1990. (See Crystal).

METAFONT - Knuth. A system for the design of raster-based alphabets. Companion to TeX. "The METAFONT Book," Donald Knuth, A-W 1986. Version 2.0, March 1990.


1. Mega-Extensive Telecommunications Applications Language. BBS language for PRODOS 8 on Apple ][.

2. The syntax-definition formalism of the Mentor system. Metal specifications are compiled to specifications for a scanner/parser generator such as Lex/Yacc. "Metal: A Formalism to Specify Formalisms", G. Kahn et al, Sci Comp Prog 3:151-188 (1983).

Meta-Vlisp - E. St.James <> France. A Lisp dialect with many innovations.

Met-English - Metropolitan Life, early 60's. Fortran-like, with support for variable-length bit fields. Most MetLife DP in the 60's and 70's was in Met-English. Originally for Honeywell machines, but many programs still run under IBM/MVS via a Honeywell emulator.

METEOR - A version of COMIT with Lisp-like syntax, written in MIT Lisp 1.5 for the IBM 7090. "METEOR - A List Interpreter for String Transformation", D.G. Bobrow in The Programming Language LISP and its Interpretation, E.D. and D.G. Bobrow eds, 1964.

Methods - Digitalk, ca 1985. Line-oriented Smalltalk for PC's, predecessor of Smalltalk/V.


1. MIMIC Hardware Description Language. Intermetrics. (703)827-2606

2. Microwave Hardware Description Language. Incorporates Haskell 1.2. Intermetrics. info: David Barton <>

Mic-1, Mic-2 - Microprogramming languages, used in Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H 1989, Sect 4.4, 4.5. [See Mac- 1].

microAPL - An APL-like microprogramming language. "High Level Microprogramming with APL Syntax", R.F. Hobson et al, Proc 14th Ann Workshop Microprogramming (MICRO-14), 1981, pp.131-139.

microPLANNER - G.J. Sussman et al, MIT. Subset of PLANNER, implemented in LISP. Superseded by Conniver. Important features: goal-oriented, pattern- directed procedure invocation, embedded knowledge base, automatic backtracking. "microPLANNER Reference Manual", G.J. Sussman et al, AI Memo 203, MIT AI Lab, 1970.

microTAL - A high level machine dependent microprogramming language based on TAL. Aim was to facilitate migration of TAL functions to microcode. "microTAL - A Machine-Dependent High-Level Microprogramming Language", J.F. Bartlett, Proc 14th Ann Workshop Microprogramming (MICRO-14), 1981, pp.109-114. (See TAL).

MIDAS - Digital simulation language. Sammet 1969, p.627.

MIDL - MicroInstruction Description Language. "MIDL - A Microinstruction Description Language", M. Sint, Proc 14th Ann Workshop Microprogramming (MICRO-14), 1981, pp.95-106.

MIIS - ("Meese"). Interpreted. One-letter keywords. Similar to MUMPS?

MIKE - Micro Interpreter for Knowledge Engineering. Expert system shell for teaching purposes, with forward and backward chaining and user- definable conflict resolution strategies. In Edinburgh Prolog. BYTE Oct 1990. Version 2.03 info: Marc Eisenstadt <>

MILITRAN - Sys Res Group, ONR 1964. Discrete simulation for military applications. Sammet 1969, p.657.

MIMIC - J.H. Andrews, NIH 1967. Early language for solving engineering problems such as differential equations that would otherwise have been done on an analog computer. "MIMIC, An Alternative Programming Language for Industrial Dynamics, N.D. Peterson, Socio-Econ Plan Sci. 6, Pergamon 1972.

MIMOLA - Operational hardware specification language. "A Retargetable Compiler for a High-Level Microprogramming Language", 17th Ann Workshop on Microprogramming, P. Marwedel, IEEE 1984, pp.267-274.

Mini-ML - "A Simple Applicative Language: Mini-ML", D. Clement et al, Proc 1986 ACM Conf on LISP and Functional Prog, (Aug 1986).

Mini PL/I - A commercial PL/I subset for the Olivetti Audit 7 minicomputer.

MINITAB II - Interactive solution of small statistical problems. "MINITAB Student Handbook", T.A. Ryan et al, Duxbury Press 1976.

MINT - Mint Is Not TRAC. Version of TRAC used as the extension language in the Freemacs editor.

Miracula - Stefan Kahrs <>, LFCS. An implementation of a subset of Miranda, no modules or files. Can be interactively switched between eager and lazy evaluation. Portable source in C from the author.

Miranda - (latin for "admirable", also the heroine of Shakespeare's Tempest). David A. Turner, U Kent early 1980's. Lazy, purely functional. A commercial descendant of SASL and KRC, with ML's type system. Terse syntax using the offside rule for indentation. Type declarations are optional. Nested pattern-matching, list comprehensions, modules. Sections rather than lambda abstractions. User types are algebraic, may be constrained by laws. Implemented by SKI reduction. The KAOS operating system is written entirely in Miranda. "Miranda: A Non Strict Functional Language with Polymorphic Types", D.A. Turner, in Functional Programming Languages and Computer Architecture, LNCS 201, Springer 1985. "Functional Programming with Miranda", Holyer, Pitman Press 0-273-03453-7. (See Miracula, Orwell). info: Research Software Ltd, or* and mira2lml* Translators from MIranda to Haskell and Miranda to LML

MIRFAC - Mathematics in Recognizable Form Automatically Compiled. Early interactive system resembling BASIC, typewriter output with special math symbols. Sammet 1969, pp.281-284.

MISHAP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16, (May 1959).

MITILAC - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959).

MIXAL - MIX Assembly Language. Assembly language for Knuth's hypothetical MIX machine, used in The Art of Computer Programming v.1, Donald Knuth, A-W 1969. //

MJS - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959).

ML -

1. Manipulator Language. IBM language for handling robots.

2. Meta Language. R. Milner <> et al, 1973. A strict higher-order functional language with statically-checked polymorphic types, garbage collection and a formal semantics. It began as the metalanguage for the Edinburgh LCF proof assistant. (LCF="Logic for Computable Functions") "A Metalanguage for Interactive Proof in LCF", M.J.C. Gordon et al, 5th POPL, ACM 1978. (See SML). LCF ML was implemented in Stanford LISP. Cardelli (1981) implemented ML in Pascal, using the FAM (Functional Abstract Machine).

ML-2000 - Dialect of ML, an extension and redesign of Standard ML. Under development.

MLAB - Modeling LABoratory. Interactive mathematical modeling. "MLAB, An On-Line Modeling Laboratory", NIH (Mar 1975).

ML/I - Early macro translating system. P.J. Brown, CACM 10(10):618-623, (Oct 1967).


1. M-expression LISP. J. McCarthy, 1962. The original "meta-language" syntax of LISP, intended for external use in place of the parenthesized S- expression syntax. "LISP 1.5 Programmer's Manual", J. McCarthy et al, MIT Press 1962.

2. Meta-LISP. D.C. Smith & H. Enea. LISP variant with ALGOL-like syntax. Not just a surface syntax, a full language. "MLISP", D.C. Smith, TR CS-179, CS Dept, Stanford (Oct 1970). Version: MLISP2.

3. A hybrid of M-expression LISP and Scheme. "M-LISP: Its Natural Semantics and Equational Logic", R. Muller, SIGPLAN Notices 26(9):234-242 (Sept 1991) (PEPM '91).

ML-Linda - U Edinburgh, under development.

ML Threads - Greg Morrisett <>. SML/NJ with mutual exclusion primitives similar to those in Modula-2+ and Mesa. Lightweight threads are created using 'fork'. They are pre-emptively scheduled, and communicate via shared memory which can be protected by a 'mutex' (monitor). "Adding Threads to Standard ML", E. Cooper et al, CMU-CS-90- 186, CMU Dec 1990. Implementations for 68020, SPARC and MIPS, and also VAX- and MIPS-based multiprocessors.

Mma - R. Fateman, 1991. A fast Mathematica-like system, in Allegro CL.

MML - Human-Machine Language. CCITT. Language for telecommunications applications. Complex natural-language syntax. CCITT Recommendations Z.311-Z.318, Z-341, Nov 1984.

MOBSSL-UAF - Merritt and Miller's Own Block-Structured Simulation Language-Unpronounceable Acronym For. Interactive continuous simulations. "MOBSSL - An Augmented Block Structured Continuous System Simulation Language for Digital and Hybrid Computers", M.J. Merritt et al, Proc FJCC 35, AFIPS (Fall 1969).

Mock Lisp - The LISP used by the Gosling Emacs editor.

MODCAL - Version of HP-PASCAL enhanced with system programming constructs, used internally by HP.

Mode - Object-oriented. "The Programming Language Mode: Language Definition and User Guide", J. Vihavainen, C-1987-50, U Helsinki, 1987.

MODEF - Pascal-like language with polymorphism and data abstraction. "Definition of the Programming Language MODEF", J. Steensgard-Madsen et al, SIGPLAN Notices 19(2):92-110 (Feb 1984).

MODEL - Pascal-like language with extensions for large-scale system programming and interface with FORTRAN applications. Generic procedures, and a "static" macro-like approach to data abstraction. Produced P-code. Used to implement DEMOS operating system on Cray-1. "A Manual for the MODEL Programming Language", J.B. Morris, Los Alamos 1976.

MODSIM II - 1986. Object-oriented modular language for discrete simulation, with multiple inheritance, strong typing, integrated 2D and 3D graphics. Compiles to C. CACI, La Jolla, (619) 457-9681. list:

Modula - MODUlar LAnguage. Wirth, 1977. Predecessor of Modula-2, more oriented towards concurrent programming but otherwise quite similar. "Modula - A Language for Modular Multiprogramming", N. Wirth, Soft Prac & Exp 7(1):3-35 (Jan 1977).

Modula-2 - Wirth, ETH 1978. Developed as the system language for the Lilith workstation. The central concept is the module which may be used to encapsulate a set of related subprograms and data structures, and restrict their visibility from other portions of the program. Each module has a definition part giving the interface, and an implementation part. The language provides limited single-processor concurrency (monitors, coroutines and explicit transfer of control) and hardware access (absolute addresses and interrupts). Uses name equivalence. "Programming in Modula-2", N. Wirth, Springer 1985.

Modula-2* - M. Philippsen <>, U Karlsruhe. Modula-2 extension. Uses a superset of data parallelism, allowing both synchronous and asynchronous programs, both SIMD and MIMD. Parallelism may be nested to any depth. Version for MasPar and simulator for SPARC. "Modula-2*: An Extension of Modula-2 for Highly Parallel, Portable Programs", W. Tichy et al, TR 4/90, U Karlsruhe, Jan 1990. info: Ernst Heinz <>

Modula-2+ - P. Rovner et al, DEC SRC, Palo Alto CA, 1984. Exceptions and threads. "Modula-2+ User's Manual", M-C van Leunen. "Extending Modula-2 to Build Large, Integrated Systems", P. Rovner, IEEE Software 3(6):46-57 (Nov 1986).

Modula-3 - L. Cardelli et al, DEC and Olivetti, 1988. A descendant of Modula-2+ and Cedar, designed for safety and simplicity. Objects, generics, threads, exceptions and garbage collection. Modules are explicitly safe or unsafe. As in Mesa, any set of variables can be monitored. No multiple inheritance, no operator overloading. Uses structural equivalence. "Modula-3 Report", Luca Cardelli et al, TR 52, DEC SRC, and Olivetti Research Center, Aug 1988 (revised Oct 1989). The changes are described in "System Programming with Modula-3", Greg Nelson ed, P-H 1991, ISBN 0-13-590464-1. "Modula-3", Sam Harbison, P-H 1992. Version: SRC Modula-3 V1.5.*

Modula-3* - Incoprporation of Modula-2* ideas into Modula-3. "Modula-3*: An Efficiently Compilable Extension of Modula-3 for Problem-Oriented Explicitly Parallel Programming", E. Heinz <>, 1993.

Modula-3pi - Machine-independent intermediate language for compilation of Modula-3*. "Modula-3pi Language Definition", E.A. Heinz, TR, U Karlsruhe 1993.

Modula-P - "Modula-P: A Language for Parallel Programming Definition and Implementation on a Transputer Network", R. Hoffart et al, IEEE Conf Comp Langs 1992.

Modula-Prolog - Adds a Prolog layer to Modula-2. "Modula-Prolog: A Software Development Tool", C. Muller IEEE Software pp.39-45 (Nov 1986).

Modula/R - Modula with relational database constructs added. LIDAS Group (J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt, C.A. Zehnder) "Modula/R Report", LIDAS Memo 091-83, ETH Zurich, Sep 1983.

Modular C - Preprocessor-based extension to C allowing modules. Article by Stowe Boyd, Azrex Inc, SIGPLAN Notices, ca 1980.

Modular Prolog - An extension of SB-Prolog (version 3.1) extended with ML- style modules. For Sun-4. "A Calculus for the Construction of Modular Prolog Programs", D. Sannella et al, J Logic Prog 12:147-177 (1992)

Modulex - Based on Modula-2. Mentioned by M.P. Atkinson & J.W. Schmidt in a tutorial in Zurich, 1989.

Mona - An experimental dialect of Oberon. Allows data types to be recursive. TR 102, ETH Zurich.

MooZ - Object-oriented extension of Z. "Object Orientation in Z", S. Stepney et al eds, Springer 1992.

MOPS - Michael Hore. A derivative of Neon. Multiple inheritance.

MORAL - Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp 10:851-887 (1980).

MORTRAN - A public domain FORTRAN preprocessor for structured programming.

Mouse - Peter Grogono, 1975. A mighty small macro language. "Mouse, A Language for Microcomputers", P. Grogono <> Petrocelli Books, 1983.

Moxie - Language for real-time computer music synthesis, written in XPL. "Moxie: A Language for Computer Music Performance", D. Collinge, Proc Intl Computer Music Conf, Computer Music Assoc 1984, pp.217-220.

MP-1 - Assembly language for the MasPar machine.

MPGL - Micro-Program Generating Language. A retargetable register transfer language, in which the machine specification is included as part of the program. "A Microprogram-Generating System", T. Baba, in Information Processing 77, N-H 1977, pp. 739-744.


1. Early possible name for PL/I. Sammet 1969, p.542.

2. MasPar. A data-parallel version of C.

3. Motorola Programming Language. A low-level PL/I-like language, similar to PL/M, but for the Motorola 6800.

4. MicroProgramming Language. The first high level microprogramming language. PL/I-like syntax. Data objects are declared as one- or two- dimensional arrays of bits, or as events. Statements on the same line represent register transfers caused by one microinstruction, and are executed in parallel. For vertical machines. "A High Level Microprogramming Language (MPL)", R.H. Eckhouse Jr, PhD Thesis, SUNY Buffalo, 1971.

MPL II - Burroughs VMS MPL II Language Reference Manual.

MPPL - Early possible name for PL/I. Sammet 1969, p.542.

M-Prolog -

1. Marseille Prolog.

2. An extension to Prolog involving modules. "The MProlog System", J. Bendl et al, Proc Logic Prog Workshop, 1980.

MPS III - Solving matrices and producing reports. "MPS III DATAFORM User Manual", Management Science Systems (1976).

MPSX - Mathematical Programming System Extended. Solution strategy for mathematical programming. "Mathematical Programming System Extended (MPSX) Control Language User's Manual", SH20-0932, IBM. Sammet 1978.

MRS - An integration of logic programming into LISP. "A Modifiable Representation System", M. Genesereth et al, HPP 80-22, CS Dept Stanford U 1980.

MSG.84 - "Analysis and Design in MSG.84: Formalizing Functional Specifications", V. Berzins et al IEEE Trans Soft Eng SE-11(8):657-670 (Aug 1985).

MUCAL - Language for playing music on PDP-8 [?]

Muddle - Original name of MDL.

muFP - Functional language for hardware design, predecessor to Ruby[1].

Mul-T - An implementation of Multilisp built on T, for the Encore Multimax. "Mul-T: A High-Performance Parallel Lisp", SIGPLAN Notices 24(7):81-90 (Jul 1989).

multiC - Wavetracer. A data-parallel version of C.

MultiLisp - Parallel extension of Scheme, with explicit concurrency. The form (future X) immediately returns a 'future', and creates a task to evaluate X. When the evaluation is complete, the future is resolved to be the value. "MultiLisp: A Language for Concurrent Symbolic Computation", R. Halstead, TOPLAS pp.501-538 (Oct 1985).

Multi-Pascal - Extension of Pascal-S with multiprocessing features. Used in "The Art of Parallel Programming", Bruce P. Lester, P-H 1993.

MultiScheme - An implementation of Multilisp built on MIT's C-Scheme, for the BBN Butterfly. "MultiScheme: A Paralled Processing System Based on MIT Scheme", J. Miller, TR-402, MIT LCS, Sept 1987.

MUMPS - Massachusetts General Hospital Utility Multi-Programming System. A database-oriented OS and the language that goes with it. Used originally for medical records. Only data type is the character string. Persistent associative arrays. Current versions for IBM RT and R6000, DSM (Digital Standard Mumps) for DEC, Datatree MUMPS for IBM PC, Unix MUMPS from PFCS <>. "MUMPS Language Standard", ANS X11.1-1977, ASN X11-1990. MUMPS User's Group, Box 208, Bedford MA 01730. list: MUMPS-L@UGA.BITNET.* for MS-DOS

MU-Prolog - L. Naish, U Melbourne 1982. Prolog with 'wait' declarations for coroutining. "Negation and Control in Prolog", L. Naish, TR 85/12, U Melbourne (1985). (See NU-Prolog).

MuSimp - LISP variant used as the programming language for the PC symbolic math package MuMath.

Muse - OR-parallel logic programming.

Music - Bell Labs, 60's. A series of early languages for musical sound synthesis. Versions: Music I through Music V. "An Acoustical Compiler for Music and Psychological Stimuli", M.V. Mathews, Bell Sys Tech J 40 (1961).

MUSL - Manchester University Systems Language.

MYSTIC - Early system on IBM 704, IBM 650, IBM 1103 and 1103A. Listed in CACM 2(5):16 (May 1959).