Algol
Algol (abréviation rithmic L anguage de ALGO de ) est une famille des langages de programmation impératifs de de l'ordinateur du à l'origine développés dans les mi années 50 qui ont considérablement influencé beaucoup d'autres langues, et est devenu les algorithmes de fait de de manière du que ont été décrits dans les manuels et les travaux d'universitaire pendant presque les 30 années à venir. Il a été conçu pour éviter certains des problèmes perçus avec le Fortran < ! --using le nom majuscule en raison du contexte sentential--> et a par la suite provoqué beaucoup d'autres langages de programmation ( y compris Pascal ). Les utilisations d'algol ont encadré des blocs de rapport et étaient la première langue pour employer le commencent des paires de la fin de pour les délimiter. Des fragments de Algol-comme la syntaxe sont parfois encore employés comme notation pour des algorithmes, soi-disant algol de Pidgin de .
Il y a trois branches principales officielles de famille d'algol :
Algol 58 - à l'origine connu sous le nom de IAL (pour lgorithmic L anguage de A de nternational de I de .)
Algol 60 - révisé 1963
Algol 68 - révisé 1973
Le Niklaus Wirth a basé son propre Algol-W sur algol 60, avant le déplacement pour développer Pascal. Algol-W a été prévu pour être l'algol de prochaine génération, mais le comité d'algol 68 décidé sur une conception qui était plus complexe et a avancé plutôt qu'un algol nettoyé et simplifié 60. Les versions d'algol de fonctionnaire sont baptisées du nom de l'année où elles ont été éditées la première fois.
Histoire
L'algol a été développé conjointement par un comité des informaticiens européens et américains lors d'une réunion en 1958 au ETH Zurich . Il a spécifié trois syntaxes différentes : une syntaxe de référence, une syntaxe de publication, et une syntaxe d'exécution. Les différentes syntaxes lui ont permises d'employer différents noms et conventions de mot-clé pour les virgules décimales (virgules contre des périodes) pour différentes langues.L'algol a été employé la plupart du temps par des informaticiens de recherches aux Etats-Unis et en Europe. Son utilisation dans des applications commerciales a été gênée par l'absence des équipements standard d'entrée-sortie dans sa description et le manque d'intérêt pour la langue par des constructeurs de grands ordinateurs. Algol 60 a fait cependant deviennent la norme pour la publication des algorithmes et ont eu un effet profond sur le futur développement de langue.
Le John Backus a développé la méthode de la forme normale de Backus de de décrire des langages de programmation spécifiquement pour algol 58. Il a été mis à jour et augmenté par le Peter Naur pour algol 60, et à la suggestion par le Donald Knuth retitré à la forme de Backus-Naur de .
Peter Naur : " ; Comme le rédacteur du bulletin d'algol j'a été dessiné dans les examens internationaux de la langue, et a été choisi être membre du groupe européen de conception de langue en novembre 1959. Dans cette capacité j'étais le rédacteur du rapport d'algol 60, produit comme résultat de l'algol 60 se réunissant à Paris en janvier 1960. " ;
Les personnes suivantes ont assisté à la réunion à Paris (du 1 au 16 janvier) :
Friedrich L. Bauer , Peter Naur , Heinz Rutishauser , Klaus Samelson , Bernard Vauquois , Adriaan van Wijngaarden , et Michael Woodger (de l'Europe)
John W. Backus , Julien vert, Charles Katz , John McCarthy , Alan J. Perlis , et Joseph Henry Wegstein (des Etats-Unis). Alan Perlis a donné une description vive de la réunion : les réunions d'“The étaient épuisement, interminables, et euphorie. On est devenu aggravé quand de bonnes idées d'one’s ont été jetées avec les mauvaises de d'autres. Néanmoins, la diligence a persisté au cours de la période entière. La chimie des 13 était
d'excellent.†John Backus et Peter Naur a servi sur le comité qui a créé algol 60, de même qu'a fait le Wally Feurzeig qui un plus défunt logo créé .
Algol 60 a inspiré beaucoup de langues qui l'ont suivi. Hoare a remarqué, " ; Voici une langue jusqu'ici en avant de son temps, cela c'était non seulement une amélioration sur ses prédécesseurs, mais également sur presque tout son successors." ;
Véritables spécifications d'algol 60s et chronologie d'exécution
Il y avait environ 70 augmentés, prolongements, dérivations et sous-langages d'algol 60
Propriétés
Algol 60 car officiellement défini n'a eu aucun équipement d'entrée-sortie ; les réalisations ont défini leurs propres des manières qui étaient rarement compatibles les uns avec les autres. En revanche, algol 68 a offert une bibliothèque étendue des équipements du transput (langage de d'algol 68 pour l'entrée-sortie).Algol 60 a tenu compte de deux stratégies d'évaluation pour le dépassement du paramètre : l'appeler-par-valeur commune, et appeler-par-nom. l'Appeler-par-nom a eu certaines limitations contrairement à l'appeler-par-référence, lui faisant un dispositif indésirable dans la conception impérative de langue. Par exemple, il est impossible dans algol 60 d'élaborer un procédé qui permutera les valeurs de deux paramètres si les paramètres effectifs qui sont passés dedans sont une variable de nombre entier et une rangée qui est indexée par cette même variable de nombre entier. Cependant, l'appeler-par-nom est encore aimé des réalisateurs d'algol pour le € intéressant de Thunks d'“ qui sont habitués pour le mettre en application. Le Donald Knuth a conçu l'†de l'essai d'homme ou de garçon de d'“ pour séparer les compilateurs qui ont correctement mis en application le " ; récursion et references" non-local ;. Cet essai contient un exemple du l'appeler-par-nom.
Algol 68 a été défini using un formalisme à deux niveaux de grammaire inventé par le Adriaan van Wijngaarden et qui porte son nom. Utilisation des grammaires de Van Wijngaarden de une grammaire indépendante du contexte de produire d'un ensemble infini de productions qui identifieront un programme particulier d'algol 68 ; notamment, elles peuvent exprimer le genre de conditions qui dans beaucoup d'autres normes de langage de programmation sont marquées “semantics†et doivent être exprimées en prose de langage naturel ambiguïté-encline, et alors mis en application en compilateurs car code ad hoc du attaché à l'analyseur de langage formel.
Coder l'échantillon (algol 60)
(La manière que les caractères gras doivent être écrits dépend de l'exécution, par exemple « NOMBRE ENTIER » (guillemets y compris) pour le nombre entier .)procédé Absmax de (a) taille : (n, m) résultat : (y) Indices inférieurs : (I, k) ; valeur n, m de ; rangée a de ; nombre entier n, m, I, k de ; vrai y ; commentaire le plus grand élément absolu de la matrice a, de la taille n par m est transféré à y, et aux indices inférieurs de cet élément à I et à k ; le commencent le nombre entier p, q de de ; y : = 0 ; i : = k : = 1 ; pour p : le de l'étape 1 du =1 jusqu'au de n font pour q : le de l'étape 1 du =1 jusqu'au de m font si ABS de (un puis de q) > de y le commencent y : = ABS (un q) ; i : = p ; k : = q extrémité extrémité Absmax de
Here’s un exemple de la façon produire une table using l'algol d'Elliott 803.
ALGOL TEST DE VIRGULE FLOTTANTE COMMENCER VRAI A, B, C, D LIRE D POUR A : = 0.0 ÉTAPE D JUSQU'À 6.3 FONT COMMENCER IMPRIMER LE POINÇON (3), ££L ? ? ' B : = PÉCHÉ (A) ' C : = COS (A) ' POINÇON d'IMPRESSION (3), SAMELINE, A ALIGNÉ (1.6), A, B, C END END
POINÇON (3) envoie le rendement au téléimprimeur plutôt que. le
perforateur de bande SAMELINE supprime le retour de chariot + retour à la ligne normalement imprimé entre arguments.6) commande le format du rendement avec 1 chiffre avant et de 6 après le point.
décimal
Chronologie : Bonjour monde
Les variations et le manque de portabilité des programmes d'une exécution à l'autre est facilement démontrées par le programme classique du monde de bonjour.
ALGOL 58 (IAL)
voient également :
d'algol 58 Algol 58 n'a eu aucun équipement d'entrée-sortie.
Famille d'algol 60
Puisqu'algol 60 n'a eu aucun équipement d'entrée-sortie, il n'y a aucun programme portatif de world†d'“Hello de dans l'algol. Le programme suivant pourrait (et toujours) compiler et fonctionner sur une exécution d'algol pour une unité centrale d'Un-Séries d'Unisys, et est une simplification franche de code prise de cet emplacement.COMMENCER CLASSER F (KIND=REMOTE) ; L'EBCDIC RANGENT E ; REMPLACER E PAR LE " ; BONJOUR MONDE ! " ; ; ÉCRIRE (F, *, E) ; EXTRÉMITÉ.
Un exemple alternatif, using l'entrée-sortie d'algol d'Elliott est comme suit. Caractères utilisés par algol d'Elliott différents pour l'‘open-corde-quote’ et l'‘close-corde-quote’, représentés ici par l'‘ et l'’.
programme HiFolks de ; le commencent world’ d'‘Hello de l'impression ; extrémité ;
La version de ™ SA de € de Hereâ pour l'algol d'Elliott 803 (A104) la norme Elliott 803 a employé le trou 5 de bande paerforée et a seulement eu ainsi le haut de casse. Le code a manqué de tous les caractères de citation ainsi £ (signe BRITANNIQUE de livre) a-t-il été employé pour la citation ouverte et ? (Point d'interrogation) pour la citation étroite. Des ordres spéciaux ont été placés dans les guillemets (par exemple ££L ? ? a produit une nouvelle ligne sur le téléimprimeur).
HIFOLKS’ COMMENCER IMPRIMER £HELLO WORLD££L ? ? ’ END’
L'entrée 1900 permise par version d'entrée-sortie d'algol d'ICL de la carte de bande paerforée ou perforée. « Plein » lettre minuscule permise par mode de bande paerforée. Le rendement était à imprimante ligne par ligne. « COMMENCER » « ÉCRIRE LE TEXTE » (" ; BONJOUR WORLD" ;); « EXTRÉMITÉ »
Algol 68
voient également :
d'algol 68
Dans la langue du " ; Algol 68 Report" ; , Des équipements d'entrée-sortie se sont collectivement appelés le " ; " de Transput ;.
Le code d'algol 68 était des mots réservés édités étaient en général minuscule, mais bolded ou souligné. begin copie ((" ; Bonjour, monde ! " ; , caractère NL)) end OU à l'aide d'un canal spécifique de transput : begin putf ((se tenir dehors, $gl$, " ; Bonjour, monde ! " ;)) end
Pour la facilité de la programmation sur les 7 ordinateurs de bit du temps il y avait " ; official" ; méthodes au " ; " "BOLD" du ; mots réservés, par exemple, en employant le haut de casse : COMMENCER imprimer ((" ; Bonjour, monde ! " ; , caractère NL)) EXTRÉMITÉ
Des programmeurs ont été parfois exigés totalement au " ; PENSER DANS UPPERCASE" ; sur les ordinateurs qui ont seulement eu 6 caractères de bit, par exemple le " de la CDC ; " superbe des ordinateurs ;. Dans ce cas-ci le code ci-dessus serait écrit : « COMMENCER » IMPRIMER ((" ; BONJOUR, MONDE ! " ; , CARACTÈRE NL)) « EXTRÉMITÉ »
Le " ; Algol 68 Report" ; a été traduit en russe, allemand, français et bulgare, et a laissé programmer dans les langues avec de plus grands jeux de caractères, par exemple l'alphabet cyrillien . par exemple le russe BESM-4 . COMMENCER imprimer ((" ; ¹ de уРde ² du ‚Ð du ² ÑÑ de Ð-драÐ, ¼ ир de Ð ! " ; , caractère NL)) EXTRÉMITÉ Note : Le GOST standard russe du 1964 10859 a permis le codage de 4 5 de bit, 6 de bit et 7 de bit caractères de bit, dans l'algol .
Mots réservés d'algol 60 et marques restreintes
Il y a 35 tels mots réservés dans le sous-langage standard des grands systèmes de Burroughs de : L'ALPHA de, RANGÉE, COMMENCENT, BOOLÉEN, COMMENTAIRE, CONTINUENT, DIRECT, FONT, DOUBLE, D'AUTRE, EXTRÉMITÉ, l'ÉVÉNEMENT, FAUX, DOSSIER, POUR, FORMAT, ALLER, SI, NOMBRE ENTIER, ÉTIQUETTE, LISTE, LONGUE, POSSÉDER, INDICATEUR, PROCÉDÉ, VRAI, ÉTAPE, COMMUTATEUR, TÂCHE, ALORS, VRAIE, JUSQU'À, VALEUR, ALORS QUE, ZIP. Il y a 71 telles marques restreintes dans le sous-langage standard des grands systèmes de Burroughs de : LE ACCEPT, ET, ATTACHENT, PRÈS, L'APPEL, CAS, CAUSE, FIN, DÉSAFFECTENT, DÉFINISSENT, DÉTACHENT, DÉSACTIVENT, MONTRENT, DIVISION, DÉCHARGE, PERMETTENT, EQL, EQV, L'ÉCHANGE, EXTERNAL, LA SUFFISANCE, VERS L'AVANT, GEQ, GTR, PIM, DEDANS, INTERRUPTION, EST, LIVRE, LEQ, LIBÈRENT, RAYENT, FERMENT À CLEF, LSS, LA FUSION, MOD, LE MONITEUR, MUX, QUANTITÉ NETTE DE SUBSTANCE EXPLOSIVE, NON, PAS, DESSUS, OUVERT, OU, DEHORS, L'IMAGE, PROCESSUS, OBTIENNENT, PROGRAMDUMP, RB, LU, DÉGAGEMENT, REMPLACENT, ONT REMIS À ZÉRO, REMETTENT À LA CÔTE, SE REBOBINENT, COURENT, BALAYENT, CHERCHENT, ONT PLACÉ, SAUT, SORTE, l'ESPACE, ÉCHANGE, À TRAVERS, PÉRIODES, À, ATTENTE, QUAND, AVEC, WRITE et également les noms de toutes les fonctions intrinsèques.
Voir également
Algol 58 Algol 68
Algol-W
Autocode d'atlas de
CORAL66
Edimbourg PIM
Le dispositif de Jensen de
ISWIM
JOVIAL
Simula
.
| Random links: | Granby du nord | Ruisseaux, Maine | Chrysanthius | Chefs du Vietnam du Sud | Michael Forrestall |