Prev: Sockets package in SPARK (Was: Lost in translation (with SPARK user rules))
Next: Sockets package in SPARK (Was: Lost in translation (with SPARKuser rules))
From: Georg Bauhaus on 27 May 2010 09:20 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." Original: "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." http://www.computerwoche.de/heftarchiv/1987/27/1160365/ |