Was it written in predominantly one language? If so,
which one?
According to Brian Schenkenberger ("A Bored Certified VMS Kernel Mode
Hacker"):
"Predominantly, Macro-32 (VAX-11 assembly language) and Bliss-32.
There's a smattering of other languages used for less "involved"
parts from Ada, to C, to Fortran, to Pascal, and a few others.
Line count approaches 30 million. I do have the OpenVMS source
here but I've not made the count myself. :)
When OpenVMS was ported to Alpha (first 64 Bit architecture) and
subsequently to Intel Itanium IA-64, the Macro-32 assembler was
turned into a Macro-32 compiler. You can still write code using
Macro-32 (and I still do) for VAX, Alpha and Itanium. There are
small segments of OpenVMS written in Alpha assembler (Macro-64)
for the Alpha and a small amount of IAS (Intel IA-64 Assembler)
for Itanium. I've done a fair amount of IAS. It's not for the
faint of heart.
OpenVMS defines a calling standard which all assemblers and or
compilers adhere to; thus, routines can be written in any of the
supported languages and they can call and be called by any other
of the supported languages."
He also referred me to the VMS FAQ:
http://hoffmanlabs.org/vmsfaq/vmsfaq_001.html#vms8
"2.7 In what language is OpenVMS written?
OpenVMS is written in a wide variety of languages.
In no particular order, OpenVMS components are implemented using Bliss,
Macro, Ada, PLI, VAX and DEC C, Fortran, UIL, VAX and Alpha SDL, Pascal,
MDL, DEC C++, DCL, Message, and Document. And this is certainly not a
complete list. However, the rumor is NOT true that an attempt was made to
write pieces of OpenVMS in every supported language so that the Run-Time
Libraries could not be unbundled. (APL, BASIC, COBOL and RPG are just some
of the languages NOT represented!)
There are a large variety of small and not-so-small tools and DCL command
procedures that are used as part of the OpenVMS build, and a source code
control system capable of maintaining over a hundred thousand source files
across multiple parallel development projects, and overlapping releases."
Mike Loewen mloewen at cpumagic.scol.pa.us
Old Technology
http://sturgeon.css.psu.edu/~mloewen/Oldtech/