J’ai le sentiment que nous ne sommes pas dans la cité d’émeraude plus

Original: http://home.pipeline.com/~hbaker1/sigplannotices/gigo-1997-04.html


hbaker@Netcom.com
Copyright (c) 1997 par Henry Baker. Tous droits réservés.

Vingt ans plus tôt, le DoD a demandé « de quelle couleur est mon parachute [programmé dans]? » La réponse était « Vert » et le reste est l’histoire, ou alors on nous a dit. Mais il y a plus à cette histoire–beaucoup, beaucoup plus. De reconstituer les informations des documents non classés, nous sommes maintenant en mesure–pour la première fois–pour vous apporter la vraie histoire du projet Ada, dont le secret, portée et rival de coûts ceux du projet Manhattan.

Dans le début des années 70, le ministère américain de la défense était face à une crise de logiciel des proportions stupéfiantes. Logiciel devenait un élément de plus en plus important des systèmes de défense, et le pourcentage des coûts de logiciels à coûts matériels montait précipitamment. Quelque chose devait être fait pour ramener ces coûts dans la balance.
Nos dirigeants bien compris les enjeux :
…notre combat stratégie soutient et s’appuie sur… l’application des technologies de l’information pour gagner de le grande importance militaire pour continuer a nous donnez [un] avantage concurrentiel injuste » (…our warfighting strategy sustains and builds on…the application of information technology to gain great military leverage to continue to give us [an] unfair competitive advantage)[Perry96]
Pourtant, les Etats-Unis faisait face à un « écart de logiciel » avec les soviétiques. Selon [Davis78], les soviétiques avaient “une des communautés mathématiques plus puissantes dans le monde” (Yet, the US was facing a `Software Gap’ with the Soviets. According to [Davis78], the Soviets had “one of the most potent mathematical communities in the world) :
Dans une mesure inhabituelle, productivité de logiciel est une activité de recherche et développement, et il bénéficie donc d’une relative résistance soviétique.Logiciel semblerait donc avoir quelques avantages relatifs au matériel, même dans le cadre de le R&D soviétique.Une des raisons mathématiques a fait si bien en Union soviétique est qu’il est relativement insensible aux contraintes [des matériaux de haute qualité]… Logiciel peut avoir un avantage semblable tant qu’il peut fonctionner dans les limites de la quincaillerie locale. ( To an unusual extent, software productivity is a research and development activity, and thus it benefits from a relative Soviet strength. … Thus software would appear to have some relative advantages over hardware, even within the scope of Soviet R&D. …One of the reasons mathematics has done so well in the Soviet Union is that it is relatively insensitive to the constraints [of high quality materials]… Software may have a similar advantage as long as it can operate within local hardware limitations.)[Davis78 ; souligné fourni]
Bien que le matériel informatique soviétique était inférieure, en particulier dans la technologie de mémoire (typiques ordinateurs soviétiques avaient seulement quelques centaines Ko de carotte et de quelques dizaines de Mo de disque), ingéniosité logiciel soviétique pourrait rendre leur désavantage matériel théorique :
La disponibilité du matériel ES a abouti à quelque chose d’un explosion de logiciel [Davis78]
Plus troublant encore nous proviennent des rapports de productivité de logiciel incroyable projets utilisant des langages comme Lisp, APL, Prolog, Smalltalk et Forth. Des systèmes de planification robotiques entières avec le langage naturel et les interfaces graphiques ont été programmés par juste une ou deux personnes en Lisp. Rames de PL / I code ont été remplacés par une seule ligne d’APL. Prolog obsolète une génération des programmeurs Cobol. Smalltalk et le Logo ont été enseignées aux enfants et agité le spectre d’un 12-year-old devant les bandits rocade une douzaine. Peut-être plus troublante de tous était en arrière, grâce à sa capacité à très rapidement programme substantielle en temps réel des systèmes qui ont eu des quantités insignifiantes de mémoire.
Ce logiciel « explosion de la productivité » menacé l’axiome plein de puissance de militaire américaine–que plus c’est mieux, et beaucoup plus est beaucoup mieux. Productivité logicielle se développait plus vite que la demande de logiciels, et les tendances prédit que par 1997 systèmes avioniques entière seraient programmés par un seul pirate en sandales, perles d’amour et une queue de cheval. Il ressemblait à une poignée de Super-programmeurs soviétiques, à l’aide de ces nouveaux langages puissants pourrait anéantir tout avantage de prouesses de matériel américain.
L’armée américaine ne pouvait pas se permettre d’ignorer cette menace soviétique logiciel. Bien que le massif Spoutnik après dépenses pour mettre à niveau de l’éducation américaine avait produit leurs premiers succès, scores SAT bientôt atteint un sommet et a commencé un déclin écœurant. Joe Geek n’est peut-être pas en mesure de rivaliser mano-a-mano avec Ivan Geek.
Entrepreneurs américains de la défense ont été également hopping mad. Si la tendance du pourcentage croissant de logiciel au matériel s’est poursuivie, et la productivité des gens logiciel a explosé, système total Dépenses tomberait précipitamment. Afin de rétablir un bon équilibre, quelque chose devait être fait pour augmenter considérablement le coût du matériel informatique.

 

Après plusieurs réunions très secrètes au plus haut niveau, le projet « Ada » a été conçu. {Les rumeurs persistent que le fameux fossé dans les bandes de Nixon recouverts d’une telle discussion. “Nous sommes arrivés à un accord ce coût [Bas] et [haute] fiabilité était un problème, mais la question était–ce qui pourrait être fait… Nous avons eu le problème passé à la Secrétaire à la défense, qui est ériger en “plus haut niveau” dans le DoD…” [Whitaker93]} Le projet Ada devait être une campagne de désinformation d’une ampleur sans précédent et la durée, impliquant toutes les branches des forces armées (DARPA mis en péril l’histoire de couverture en apportant un soutien tiède seulement), le Président, la Reine d’Angleterre {[Whitaker93] révèle que le nom de courriel de la Reine est « EIIR », mais ne donne aucun nom de domaine, le domaine peut être royal.gov.uk (“British Royalty tenir Cour sur InternetLos Angeles Times, 8 mars 1997)}, le Congrès et certains universitaires. Son but était de détourner l’attention soviétique des langages d’ordinateur vraiment productive comme Lisp et les convaincre que seul un ordre pléthorique, totalement inefficace, haut compilé langue le long des lignes de PL / je pourrais être raisonnablement utilisée dans le déploiement de systèmes embarqués militaires. L’utilisation d’un langage standardisé inefficace fournirait une perforation : il rendrait inutilisables Super-programmeurs, et elle augmenterait les exigences sur le matériel de plus de deux ordres de grandeur.
Le projet de l’Ada a été inspiré par le succès inattendu de l’architecture d’IBM System/360 derrière le rideau de fer. Assistants du projet Ada {projet Ada a été conçu à Kirtland AFB, NM, près de Roswell} a estimé que si les soviétiques pouvaient être attirés en copiant l’architecture 360, ils pourraient aussi être attirés en copiant le langage Ada, et si cette langue diabolique visaient à rendre les systèmes en temps réel essentiellement impossible à programmer, puis la machine de guerre soviétique serait broyer un coup d’arrêt.
Bien que l’Ada aurait un impact aussi sévèrement la productivité américaine de logiciels, on estimait que–juste comme lutte contre le cancer chimiothérapie tue près de tissus sains alors qu’il tue les tumeurs–la plus saines économie américaine serait mieux en mesure de supporter le fardeau sévère de l’industrie du logiciel improductifs que l’économie soviétique pouvait. Ainsi, alors que les geeks américains étaient inférieurs aux geeks soviétiques, nos hordes de Elbonian pouvaient battre leurs hordes mongoles.
Cependant, convaincre les programmeurs soviétique fissure–par exemple, Ershov–de croire à cette campagne de désinformation serait difficile :
Il y avait aussi un préjugé la part des programmeurs soviétiques qui ont favorisé le “efficacité” de la machine ou de la programmation en langage assembleur. Clairement certains de ce biais est passé de considérations réelles ( There was also a strong bias on the part of Soviet programmers who favored the `efficiency’ of machine or assembly language programming. Clearly some of this bias rose from real considerations…) [Davis78 ; souligné fourni]
Stratégie du projet Ada pour ce problème a été le nom de code « Dogfood. » Tout comme le chien, les aliments sont achetés non pas par le chien lui-même, mais par son propriétaire, programmeurs soviétiques ont peu de contrôle sur les ordinateurs qu’ils utilisent. Projet Ada ainsi mis en place une bureaucratie descendante élaborée dans la plus pure tradition de planification centrale qui aurait un attrait particulier pour les apparatchiks du parti communiste, et les programmeurs soviétiques seraient alors contraint d’aller le long.
Même connaissance du nom du projet Ada nécessaire les dégagements plus élevés et un besoin de savoir. Le nom de code lui-même était un intérieur blague : Augusta Ada, comtesse de Lovelace, était un architecte célèbre fauteuil programmeur/système qui, jamais, dans toute sa vie, avait obtenu un seul programme à compiler, lier ou exécuter. {Une plaisanterie analogue serait donner un avion de l’armée de l’Air le nom « Kiwi », après un oiseau incapable de voler.} Nom de code de l’ADA a été déclassifié enfindes recherches approfondies ont montré que personne n’a jamais obtenu l’intérieur blague. {« Projet Ada » n’était pas le premier nom suggéré; “Projet Potemkine” a été rejetée lorsqu’on se rend compte que soviétiques pourraient reconnaître cette ruse de la vieille Russie.}
Le projet de l’Ada a été conçu dès l’origine comme un projet international de l’OTAN. Sans la complicité des autres pays, il aurait eu beaucoup moins de crédibilité avec Ivan. En outre, l’armée américaine n’était pas sûre que l’ingéniosité américaine pourrait accomplir une tâche aussi diaboliquement difficile sans l’aide de l’étranger. Avant Ada, personne n’avait jamais tenté concevoir un langage informatique dont l’objectif principal était de dysfonctionnement. L’apparition en temps voulu des documents d’inscrutible du projet européen Algol-68 toutefois espoir et orientation.
Plan du projet Ada était absolument génial. Parce que les langues d’ordre élevé déjà utilisés par les différents services et pays étaient connus modérément bien fonctionner, une excuse devait être trouvée de ne pas utiliser leur. L’histoire de couverture était que les rivalités interservices pourraient être minimisées en n’utilisant ne pas ces langues existantes. Ni pourraient les langues existantes « propriétaires » comme PL / I ou Mesa être utilisé ; l’histoire de couverture était que seul entreprises bénéficieraient déraisonnablement.
Le langage C a été une affaire extrêmement difficile. Le langage C lui-même avait beaucoup d’ambiguïtés délicieuses à exploiter, mais elle a quelques problèmes majeurs. C est petit et rapide ; il avait des compilateurs petits et rapides ; et elle avait été utilisée par deux personnes de construire tout un système d’exploitation qui s’exécutaient sur de petits ordinateurs. C’est précisément le genre de capacité qui donnerait Ivan un avantage, alors C devait être enterré.
[Les assistants Ada] ont profité de cette connexion entre la DARPA et Bell Labs pour demander leur coopération. Quand Bell Labs ont été invités à évaluer C contre les exigences du DoD, ils ont dit qu’il n’a aucune chance de C satisfaisant aux exigences de lisibilité, sécurité, etc., pour lesquels nous avons été s’efforçant, et qu’il ne devrait même pas être sur la liste des langues évaluées. ( …[The Ada wizards] took advantage of this connection between DARPA and Bell Labs to request their cooperation. When Bell Labs were invited to evaluate C against the DoD requirements, they said that there was no chance of C meeting the requirements of readability, safety, etc., for which we were striving, and that it should not even be on the list of evaluated languages. ) [Whitaker93 ; souligné fourni]
En outre, les combinaisons de langues devaient être examiné afin de s’assurer qu’aucune synergie n’interdit dysfonctionnement complet.
Toutes les langues de candidats ont été évalués par plus d’un entrepreneur, et chaque entrepreneur a évalué plusieurs langues, fournissant ainsi un recoupement technique sur celles‑ci. .. .pour chaque exigence linguistique, l’entrepreneur devait déterminer le degré de conformité de chacune des langues candidat, de présenter des observations sur la possibilité de modifier le langage de mise en conformité et d’identifier des fonctionnalités dépassant les exigences. (All candidate languages were evaluated by more than one contractor, and each contractor evaluated several languages, thereby providing a technical crosscheck on the individual evaluations. …for each language requirement, the contractor was to determine the degree of compliance of each of the candidate languages, to comment on the feasibility of modifying the language to bring it into compliance, and to identify features in excess of the requirements.) [Whitaker93 ; souligné fourni]
Pour réussir une campagne de désinformation, le projet devait être “publiques” de manière à ce que des documents internes anodins serait facilement accessibles aux soviétiques pour les convaincre de l’authenticité du projet. L’ARPANET nouvellement opérationnel satisfait cette exigence grâce à l’aide de nœuds accueille en pays neutres :
Le projet a été extraordinairement bien documenté… Les exigences ont été distribuées à l’extérieur, certainement beaucoup plus alors qu’a tout autre effort de langue, avant ou depuis… Les comparaisons de langue et les évaluations de contrat ont été publiées dans les moindres détails et sont accessibles au public….. .il ont été nombreuses Notes d’étude du langage écrit et mis à la disposition d’une grande communauté sur l’ARPANET… Toutes les questions soumises ont été abordées, et les résultats étaient disponibles sur le réseau ARPANET… (The project was extraordinarily well documented… The requirements were circulated externally, certainly far more so than has any other language effort, before or since… The language comparisons and contract evaluations were published in excruciating detail and are available to the public… …there were numerous Language Study Notes written and made available to a large community over the ARPANET… All issues submitted have been addressed, and results were available on the ARPANET…) [Whitaker93 ; souligné fourni]
Avant d’éteindre la conception réelle du langage Ada pour les soumissions, documents d’exigences préliminaires ont été développés–STRAWMAN, TINMAN, Mélanie, etc.–tous un peu dotty avec todo un peu. Toutefois, dans la plus pure tradition de cascade, les exigences finales ont été écrits après que la langue gagnante avait déjà été définie. Ces exigences de STEELMAN [STEELMAN78] étaient un exemple magistral de désinformation double langage :
[La langue] devrait souligner la lisibilité du programme. [Traduction : il devrait être presque impossible d’écrire un programme qui va compiler ou exécuter.]
Il n’y aucune restriction de langue qui n’est pas exécutoires par les traducteurs. [Traduction : aucun programme raisonnable ne compilera jamais.]
[La langue], s’efforce d’éviter des caractéristiques dont la sémantique dépendre des caractéristiques de la machine de l’objet [Traduction : enjeux essentiels à des systèmes comme coût de temps et de la mémoire doit être évité embarqués.]
La langue doit être définie complètement et sans ambiguïté. [Traduction : en utilisant l’anglais comme la définition, nous saurons mettre au large de la définition de « complètement et sans ambiguïté » jusqu’à ce qu’une expérience suffisante a été accumulée pour prendre la décision qui réduit au maximum la productivité.]
Chaque programme source doit avoir une représentation qui utilise uniquement le sous-ensemble de 55 caractères suivant de ASCII… [Traduction : Ada doit rester dans les limites de réglage caractère d’appareils soviétiques d’e/s.]
Unités traduites séparément peuvent être assemblées en systèmes opérationnels. [Traduction : chaque système doit être déchiquetés en petites unités séparément programmées sur une base de la nécessité de connaître, afin que personne ne peut comprendre ce.]
Quatre soumissionnaires développé langues : rouge, vert, bleu et jaune. Bien que les quatre langues satisfaisaient aux exigences de dysfonctionnement, la langue verte–une exportation de Bull–a été choisi après que les évaluateurs ont été informés qu’ils ont voté sur une nouvelle couleur pour leurs uniformes. Dysfonctionnement de Green pour les systèmes embarqués a été remarquable :
  • sans interruptions, une priorité ou pas
  • une synchronisation primitive que personne n’avait jamais entendu parler d’et était exagérément coûteux à mettre en œuvre
  • pas tourner les bit (pas de redondance cyclique cocher ou chiffrement de codes)
  • pas la capacité de gérer le stockage
  • aucune garantie de l’abandon d’une tâche
  • aucune capacité de gérer l’ordonnancement
  • aucune capacité d’interfaçage au matériel
Ada initialement planté un subconscient Y2K-bombe à retardement: “année : INTEGER range 0;” [Ada79, p. 3-12], mais alors obtenu des ambitions du troisième Reich: “année : INTEGER range 0..4000; » [Ada83, p. 3-34], avant de s’installer sur une bombe à retardement Y2.1K: « sous-type YEAR_NUMBER est entier gamme 1901..2099; » [Ada83, p. 9-11]. La perspective de chaque morceau de logiciel embarqué de militaire dans le monde de signalisation simultanément une erreur de contrainte à la fin de siècle était trop délicieuse pour les assistants de l’Ada pour la laisser passer, et ces bombes à retardement de fixation garantirait le plein emploi pour les entrepreneurs de la défense qu’ils prendraient leur retraite à.
Le projet Ada devait apparaître publiquement décisive afin de maintenir sa crédibilité: “.. .le tout autres implémentations du nouveau sommet commander des langages de programmation pour les programmes de R&D ont été interrompus. » [Whitaker93]. {Afin de permettre à des systèmes réels continuer à se développer, le projet Ada accordées secrètement un grand nombre de “dérogations”.}
Le temps de produire des compilateurs travail, validés a dépassé toute espérance. Plusieurs années passent avant que n’apparaisse les premiers compilateurs validés et encore deux ans avant qu’ils pourraient être exécutés chez un client sans s’écraser. Pour établir la crédibilité avec les soviétiques, l’US Navy a dépensé $40 M développer un compilateur Ada unique. À un moment ils auraient pu quatre compilateurs différents de quatre différents concurrents des fournisseurs commerciaux d’Ada pour un total de 10 millions de dollars, ou même acheté tous les quatre sociétés Ada indépendantes pour moins de $40 M.
Le dysfonctionnement de l’Ada a dépassé toutes les attentes. Une société appelée rationnel a été créée pour construire un environnement de programmation pour Ada, qui elle-même a été programmé en langage Ada. La machine rationnelle ne pourrait jamais gérer son propre espace de stockage et a dû être redémarré toutes les quelques heures. Compilateur d’une autre société Ada fut écrit en Ada, avec des tâches multiples pour plusieurs compilations. Ni il pourrait gérer son propre espace de stockage et devait également être redémarré sans cesse. Si les applications avec des exigences minimales de réponse en temps réel ne pourraient pas être programmées en langage Ada, quel espoir Ivan aurait avec systèmes avioniques en temps réel ?
La suite de validation du compilateur Ada a été habilement conçue pour tester uniquement les cas exceptionnels, les cas pas communs. Son but premier était de détecter des améliorations sans papiers, dans le cas où une telle amélioration pourrait s’avérer utile et fonctionnel. Validation s’avérèrent donc seulement que le compilateur n’avait aucune ambition en dehors de l’Ada ; il ne dit rien quant à la capacité de reconnaître et de compiler les programmes juridiques d’Ada.
La suite de validation Ada garanti aussi habilement qu’aucun outil de génération d’analyseur ne pourrait être utilisés pour le langage Ada en contraignant la nature des messages d’erreur de syntaxe et en exigeant que toutes ces erreurs sont disponibles dans une seule compilation. La structure de données intermédiaires de DIANA a été aussi un coup de génie, car n’importe quel compilateur cet acide utilisé 10 à 100 fois la mémoire d’un compilateur C en cours d’exécution sur le même hôte.
Parce que les précédents langages informatiques avaient évolué pour devenir plus productif en réponse aux commentaires des utilisateurs, un mécanisme devait être élaboré pour s’assurer que des améliorations similaires ne pouvaient pas arriver à Ada. Afin de garder Ada dysfonctionnel, des gens très intelligents (« Examinateurs Dystinguished », ou “Drs”) ont été nommés pour distribuer les questions des utilisateurs selon un protocole formel :
  • Défi programmerhood de l’auteur de la question. Lui dire qu’une personne raisonnable ferait jamais cela, et il devrait passer à 3 mois de plus dans une camisole de force à l’Institut de génie logiciel.
  • Enterrer dans la légalités. Expliquer comment les caractéristiques de la langue avaient été soigneusement conçues pour assembler d’une certaine manière, et il ne pouvait pas commencer à comprendre la sagesse de ces décisions.
  • Changer à la suite de la validation. S’assurer que ces types de programmes ne compile même à l’avenir.
  • Si le pire arrive « élucider » pire des cas, la définition déjà « sans ambiguïté » d’une manière qui garantit que personne ne jamais voudra faire apparaître à nouveau une question similaire. La nouvelle interprétation exigera de tous les systèmes d’Ada à réviser de manière incompatible à réduire aussi les performances par un autre 3 X.
Afin que la couverture du projet Ada ne pas soufflé, étudiants ont été tenus à l’écart des implémentations réelles d’Ada. Il aurait été plus embarrassant si un étudiant devaient comparer Ada au régime, ou même de C–il pourrait conduire à une « habits neufs de l’empereur » situation. L’enseignement de l’Ada a été restreinte aux cours comme “software engineering,’ seulement « l’architecture » a été débattue et diagrammes ont été dessinés ; programmes pouvaient jamais réellement être compilé ou exécuter.
« Réutilisation du logiciel » était un autre objectif du projet Ada. Pour réduire le coût de la programmation, les programmeurs ont été encouragés ne pas à jeter le code défaillant de suite, mais à recycler. Au premiers, recyclage des bacs de couleurs différentes ont été mis en place. Plus tard, quand les choses sont devenues GUI, ces bacs ont été remplacés par « icônes corbeille » de couleurs différentes dans le coin de l’écran. Les anciennes versions et petits bouts de code qui ont été coupés mais jamais collé ont été acheminés vers le centre de recyclage de SIMTEL. Le SIMTEL devise du centre de recyclage a été: « nous utilisons tout sauf le SQL ».
Nous savons maintenant que le projet Ada était très réussi. Ivan accepté humbuggering les wizards Ada à leur valeur nominale. Au moment de la chute du communisme, un certain nombre de projets de Ada soviétique était en cours, et par la suite, au moins un compilateur Ada soviétique a été offert à la vente commerciale sur Internet.
Maintenant que la méchante sorcière de l’est est morte, les assistants ont permis enfin de Ada à se transformer en Ada9X, qui fixe certains dysfonctionnements plus flagrants de l’Ada. Cependant, aujourd’hui encore l’éclat de la conception originale de l’Ada encore brille à travers.
Que le projet de l’Ada a été capable de garder son secret depuis 20 ans est un hommage au dévouement et à l’ingéniosité des assistants de l’Ada. Il n’a pas été facile étant vert–ceux qui sont associés au projet Ada résisté à beaucoup de critiques et tout de même réussi à garder son sérieux. Le coût du projet Ada des milliards et des milliards en coûts directs et indirects, mais qui peut affirmer avec le résultat ? Nous tous devons une grande dette de gratitude à ceux du projet Ada qui a aidé à entretenir l’Amérique libre. Nous sommes d’accord avec Churchill: « jamais dans l’histoire de l’homme conflits était autant à si peu. » Pour honorer la mémoire de ceux qui ont mené cette lutte courageuse, nous voudrions dédier la cabine du programmateur inconnu.
Ada, nous vous saluons !
Si je n’avais que Ada
(Copyright (c) 1997 par Henry G. Baker. Tous droits réservés).
(Chanté sur l’air « Si I seulement avait un cerveau » du film « Le magicien d’Oz ».)
Je pouvais distinguer records,
dérivation par les hordes, contraignant les données.
Vos colis, je voudrais utiliser,
en mon nom je serais perdre,
Si je n’avais que Ada.
Je pourrais en boucle à l’époque,
Suspension avec des retards, acceptant tous les ports.
Et mon café, je voudrais être percolation,
Alors que mes tâches étaient de travail bien remplie,
Si seulement j’avais abandonner.
J’ai pu à nouveau à bon escient,
sans dealloc aurait décoché, dimensionnement en extase.
Et mes nerfs ne seraient pas être jangling,
Quand mes pointeurs ont quitté adangling,
Si je n’avais que GC.
Je rencontrais à chaque échéance, pour chaque missile et chaque mine,
Par terre et par la mer.
Et mon stockage pourrait être mise en commun,
Alors que mes tâches étaient occupés de duel,
Si je n’avais que GC.
Références

“Preliminary Ada Reference Manual.” ACM Sigplan Not. 14, 6 (June 1979), Part A.

Reference Manual for the Ada (R) Programming Language. ANSI/MIL-STD-1815A-1983, 1983.

Davis, N.C. (US CIA), Goodman, S.E. “The Soviet Bloc’s Unified System of Computers.” ACM Computing Surveys 10, 2 (June 1978), 93-122.

Perry, William. “Bueche Prize Acceptance Address.” National Academy of Engineering, Wash., DC, 1996.

DoD Requirements for High Order Computer Programming Languages. June 1978.

Whitaker, W.A., Col. USAF. “Ada–The Project: The DoD High Order Language Working Group.” ACM Sigplan Not. 28, 3 (March 1993), 299-331.

Comments are closed.