ALGOL 58

0

ALGOL 58 , initialement nommé IAL , fait partie de la famille des langages de programmation informatique ALGOL . C’était une première conception de compromis bientôt remplacée par ALGOL 60 . D’après John Backus

ALGOL 58

Paradigme procédural , impératif , structuré
Famille ALGOL
Conçu par Friedrich L. Bauer , Hermann Bottenbruch , Heinz Rutishauser , Klaus Samelson , John Backus , Charles Katz , Alan Perlis , Joseph Henry Wegstein
Première apparition 1958 ; il y a 64 ans ( 1958 )
Discipline de frappe Statique , fort
Portée Lexical
Influencé par
Fortran , IT, Plankalkül , [1] Superplan , Sequentielle Formelübersetzung
Influencé
La plupart des langages impératifs ultérieurs ( comme Algol )

La conférence ACM-GAMM de Zurich avait deux motifs principaux en proposant l’IAL : (a) fournir un moyen de communiquer des méthodes numériques et d’autres procédures entre les personnes, et (b) fournir un moyen de réaliser un processus défini sur une variété de machines. … [2]

ALGOL 58 a introduit la notion fondamentale de l’ instruction composée , mais elle était limitée au flux de contrôle uniquement, et elle n’était pas liée à la portée de l’identifiant comme l’étaient les blocs d’Algol 60 .

Nom

Bauer attribue le nom à Hermann Bottenbruch , qui a inventé le terme langage algorithmique (algorithmische Sprache) en 1957, “au moins en Allemagne”. [3]

Histoire

Il y avait des propositions pour un langage universel par l’ Association for Computing Machinery (ACM) et aussi par la Gesellschaft für Angewandte Mathematik und Mechanik (“Société de mathématiques appliquées et de mécanique”) (GAMM). Il a été décidé d’organiser une réunion conjointe pour les combiner. La réunion a eu lieu du 27 mai au 2 juin 1958 à l’ ETH Zurich et a réuni les personnes suivantes :

  • Friedrich L. Bauer , Hermann Bottenbruch , Heinz Rutishauser et Klaus Samelson (du GAMM)
  • John Backus , Charles Katz , Alan Perlis et Joseph Henry Wegstein (de l’ACM).

On a proposé à l’origine que la langue s’appelle IAL ( Langue Algébrique internationale ) mais selon Perlis, [4] cela a été rejeté comme un ” acronyme ” indicible ” et pompeux “. ALGOL a été suggéré à la place, mais n’a été officiellement adopté qu’un an plus tard. La publication suivant la réunion utilisait encore le nom IAL. [5]

À la fin de 1958, le groupe ZMMD avait construit un compilateur ALGOL 58 fonctionnel pour l’ ordinateur Z22 . ZMMD était une abréviation pour Zürich (où travaillait Rutishauser), München (lieu de travail de Bauer et Samelson), Mayence (emplacement de l’ordinateur Z22), Darmstadt (lieu de travail de Bottenbruch).

Learn more.

ALGOL 60

ALGOL 58 a vu un certain effort de mise en œuvre chez IBM , mais l’effort était en concurrence avec Fortran , et bientôt abandonné. Il a également été mis en œuvre au Dartmouth College sur un LGP-30 , mais cette mise en œuvre a rapidement évolué vers ALGOL 60 . Une implémentation pour le Burroughs 220 appelée BALGOL a également évolué selon ses propres lignes, mais a conservé une grande partie du caractère original d’ALGOL 58. [6]

La principale contribution d’ALGOL 58 était aux langues ultérieures; il a servi de base à JOVIAL , MAD , NELIAC et ALGO . Il a également été utilisé en 1959 pour publier des algorithmes dans CACM , amorçant une tendance à utiliser la notation ALGOL dans la publication qui s’est poursuivie pendant de nombreuses années.

Chronologie des implémentations des variantes ALGOL 58

Nom An Auteur État La description UC cible
Implémentation ZMMD 1958 Friedrich L. Bauer , Heinz Rutishauser, Klaus Samelson, Hermann Bottenbruch Allemagne Z22
NÉLIAC 1958 Laboratoire d’électronique navale Etats-Unis AN/USQ-17
JOVIAL 1960 Jules Schwartz Etats-Unis Était le DOD HOL avant Ada (langage de programmation) Divers (voir article)
BALGOL 1960 Joël Merner et al. Etats-Unis Société Burroughs B220
FURIEUX 1960 Université du Michigan Etats-Unis Ordinateur central IBM 7090/7094 , puis milieu des années 1960 porté sur Univac 1108
Dartmouth ALGOL 30 1962 Thomas Eugène Kurtz et al. – évolué en ALGOL 60 Etats-Unis LGP-30
SUBALGOL 1962 Bob Braden , Lawrence M. Breed et Roger Moore , Université de Stanford Etats-Unis Prolongation BALGOL IBM 7090
ALGO ~ Société Bendix Etats-Unis Bendix G-15

Influence d’ALGOL 58 sur ALGOL 60

  • IAL a introduit le concept à trois niveaux de langage de référence, de publication et de matériel, et le concept de “délimiteurs de mots” ayant une représentation distincte des identificateurs librement choisis (donc, pas de mots réservés). ALGOL 60 a conservé ce concept à trois niveaux. [7]
  • La distinction entre l’affectation ( :=représentant une flèche orientée vers la gauche) et la relation d’égalité =a été introduite dans IAL et conservée dans ALGOL 60.
  • IAL et ALGOL 60 autorisent les tableaux avec des limites d’indice inférieures et supérieures arbitraires, et permettent aux limites d’indice d’être définies par des expressions entières.
  • IAL et ALGOL 60 permettent l’imbrication des déclarations de procédure et des portées d’identifiant correspondantes.
  • Le rapport IAL décrivait la substitution de paramètres à peu près dans les mêmes termes que le rapport ALGOL 60, laissant ouverte la possibilité d’ un appel par nom . On ne sait pas si cela a été réalisé à l’époque.
  • IAL autorise les étiquettes d’instruction numériques, qu’ALGOL 60 a conservées.
  • La possibilité d’inclure du code non-ALGOL dans un programme a déjà été évoquée, dans le cadre des paramètres des procédures.
  • IAL et ALGOL 60 ont tous deux un désignateur de commutateur , sans rapport, cependant, avec l’ instruction switch en C et dans d’autres langages.
  • Fonctions en ligne de la forme f ( x ) := x / 2; ont été proposés dans IAL mais abandonnés dans ALGOL 60.
  • Les déclarations de procédure IAL fournissent des listes de déclarations distinctes pour les paramètres d’entrée et de sortie, une procédure peut renvoyer plusieurs valeurs ; ce mécanisme a été remplacé dans ALGOL 60 par la déclaration de valeur .
  • Les déclarations de variables dans IAL peuvent être placées n’importe où dans le programme et pas nécessairement au début d’une procédure. En revanche, les déclarations dans un bloc ALGOL 60 doivent se produire avant toutes les instructions d’exécution.
  • L’ instruction for a la forme for i:=base(increment)limit, ressemblant directement à la boucle du langage de programmation de Rutishauser Superplan , remplaçant =par :=, et remplaçant son mot-clé allemand Fürpar la traduction directe en anglais for; ALGOL 60 a remplacé les parenthèses par les délimiteurs de mots stepet until, de sorte que l’instruction précédente serait à la place .i:=base step increment until limit
  • L’ instruction if IAL n’a pas de clause then ni de clause else ; il protège plutôt l’instruction suivante. IAL fournit une instruction if any – qui permet proprement de tester plusieurs conditions. Les deux ont été remplacés par la construction ifthen d’ALGOL , avec l’introduction de l’ ambiguïté ” dangling- else “.
  • IAL fournit une macro-substitution avec l’ instruction do ; cela a été abandonné dans ALGOL 60.
  • IAL permet d’omettre un ou plusieurs indices de tableau lors du passage de tableaux à des procédures et de fournir tout ou partie des arguments à une procédure passée à une autre procédure.
  • Les opérateurs booléens infixes d’IAL ont tous le même niveau de priorité. Les exposants sont indiqués par des paires de flèches haut et bas, ce qui a éliminé toute confusion quant à l’interprétation correcte des exposants imbriqués ; ALGOL 60 a remplacé les flèches appariées par une seule flèche vers le haut dont la fonction est équivalente à celle de Fortran ** .
  • Le rapport IAL ne précise pas explicitement quelles fonctions standard devaient être fournies, faisant une vague référence aux “fonctions standard d’analyse”. Le rapport ALGOL 60 contient une liste plus explicite de fonctions standard.

Références

  1. ^ Rojas, Raúl; Hashagen, Ulf (2002). Les premiers ordinateurs : histoire et architectures . Presse du MIT. p. 292. ISBN 978-0262681377. Consulté le 25 octobre 2013 .
  2. ^ Backus, JW (1959). “La syntaxe et la sémantique du langage algébrique international proposé de la conférence ACM-GAMM de Zürich”. Actes de la Conférence internationale sur le traitement de l’information . UNESCO. p. 125–132.
  3. ^ Aspray, William (17 février 1987), Une entrevue avec Friedrich L. Bauer (PDF) , Charles Babbage Institute , archivé de l’original (PDF) le 22 avril 2012
  4. ^ Perlis, AJ (1981). “Parler sur l’informatique dans les années 50”. Conférence nationale de l’ACM. Nashville,. TN . Los Alamito, Californie, 1995: (Transcription dans JAN Lee (ed.), Computer Pioneers, IEEE Computer Society Press. pp. 545–556). {{cite conference}}: Maint CS1: emplacement ( lien )
  5. ^ Perlis, AJ ; En ligneSamelson, K. (1958). “Rapport préliminaire: langage algébrique international”. Communications de l’ACM . 1 (12): 8–22. doi : 10.1145/377924.594925 . S2CID 28755282 .
  6. ^ “Algol 58 implémentations et dialectes” , Software Preservation Group , Computer History Museum . Donald Knuthest cité sur BALGOL : “Je suis dans ma deuxième année à Caltech, et j’étais consultant pour Burroughs. Après avoir terminé mon compilateur pour Burroughs, j’ai rejoint le département de planification des produits. Le département de planification des produits était en grande partie composé de personnes qui avaient écrit le meilleur logiciel jamais créé au monde jusqu’à cette époque, qui était un compilateur Burroughs ALGOL pour l’ordinateur 220. C’était un grand pas en avant pour le logiciel. C’était le premier logiciel qui utilisait le traitement de listes et des structures de données de haut niveau dans un système intelligent. Ils ont pris les idées de Newell et Simon et les ont appliquées aux compilateurs. Cela tournait en rond autour de toutes les autres choses que nous faisions. [Don Knuth, CHM Oral History, 2007, page 9]
  7. ^ Naur, P, éd. (1962). Rapport révisé sur le langage algorithmique ALGOL 60 (PDF) . Fédération internationale pour le traitement de l’information.

Liens externes

  • Algol 58 au Software Preservation Group (cf. Computer History Museum )
  • Rapport Algol 58 de CACM au Software Preservation Group
You might also like
Leave A Reply

Your email address will not be published.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More