From: Georg Bauhaus on
On 25.05.10 13:41, Anonymous wrote:
>> BTW, do you know what language Ada is written in? I'd guess C and asm.
> If you do some research you can find an incredible web site discussing the
> Ada competition in some depth. And here on this very list we have some of
> the people who participated in that competition who can surely answer your
> question.
> I can tell you this for certain: the IBM implementation was not written in
> C, at least not on an IBM machine. IBM didn't have a viable C compiler
> until much later. Furthermore, assembler is the language of choice on IBM
> platforms. It may have been written elsewhere and cross-compiled though.
> I'll be interested to see answers to your question, thanks for asking it!

Another finding is a validated Ada compiler for BS2000 by Siemens,
as reported in Computerwoche 1987-07-03:

(Translation, ad hoc)

"The compiler, made of modules, is written in the programming
language Ada. According to the Munichians, it may be ported
to other computers or retargetted to emit different binary code.
A library is managing interfacing information for the separate
translation modules.

"The ``Analysator'' module performs lexical, syntactic, and semantic
analysis of source text. It generates intermediate code that is at
a high level of abstraction at this stage (see figure). The ``Expander''
module transforms intermediate code into another machine independent
code. This code is close to usual machine code. From it, the code
generator produces machine code. When moving to a different
computer system a new specific code generator needs to be developed."


"Der modulartig aufgebaute Compiler ist in der Programmiersprache Ada
geschrieben und kann nach Angeben der Münchner auf andere Rechner portiert
beziehungsweise auf einen anderen Zielcode umgestellt werden. Eine Bibliothek
verwaltet die Schnittstelleninformationen für die separaten Übersetzungsmodule.

"Das Analysator-Modul führt die lexikalische, syntaktische und semantische
Analyse des Quelltextes durch und erzeugt einen Zwischencode von zunächst noch
hohem Abstraktionsniveau (siehe Grafik). Das Expander-Modul transformiert
diesen Zwischencode auf einen weiteren maschinenunabhängigen Code, der aber
den üblichen Maschinensprachen sehr nahe steht. Der Codegenerator produziert
daraus die Maschinensprache. Bei der Umstellung auf ein anderes Rechnersystem
muß jeweils ein neuer Codegenerator entwickelt werden."