Premier langage évolué, FORTRAN (FORmula TRANslator) a été créé par BACKUS à partir de 1955.
C'est un langage orienté vers les applications scientifiques qui utilise les notations mathématiques.
Ainsi on écrit S = P+Q pour faire la somme de 2 variables ce qui représente un immense progrès pour le programmeur qui travaille en assembleur :
LD A, (adr1) pour ajouter 2 octets avec le
LD B, (adr2) classique 8080, pour ajouter 2
ADD A,B entiers il faut compter une
LD (adr3),A centaine d'instructions !
La version de 1959 voit apparaître la notion de sous-programme (sub-routine).
Le Fortran IV de 1963 permet le traitement des chaines de caractères.
Jusqu'en 1970, Fortran demeure le roi des langages dans la mini-informatique puisqu'un compilateur de 8 kilo-octets lui suffit.
Le Fortran 77 apporte de nouvelles améliorations.
A l'origine le fichier source est créé à l'aide d'un paquet de cartes perforées mais FORTRAN a su s'adapter à l'évolution de l'informatique puisqu'il est disponible sur les compatibles et utilisé en 1989 sur les super-ordinateurs CRAY1 et CYBER 205 (FORTRAN 'étendu').
Un seul inconvénient : sa faiblesse en gestion.
COBOL
COBOL (COmmon Business Oriented Language) nait officiellement en 1962 à la demende du Ministère de la Défense aux USA, il est comme FORTRAN, encore abondamment utilisé en 1989.
C'est un langage bien adapté à la gestion : création et utilisation de fichiers.
Sa structure est américaine :
ADD P TO Q pour faire une somme
La création de COBOL conduira à un clivage artificiel entre informatique de gestion et informatique scientifique.
Fortran et Cobol sont les langages dits de première génération.
ALGOL
ALGOL (ALGOrithmic Language) est né en 1958 des idées originales de H. RUTISHAUSER et est dû à une équipe dirigée par P. NAUR, signalons que le premier compilateur algol a fonctionné sur BULL, à l'époque 100% française.
Algol a l'ambition d'une définition cohérente et possède la première spécification formelle de la syntaxe d'un langage de programmation ( FNB : forme noramale de Backus).
Algol posséde déjà la notion de procédure mais les instructions d'entrées/sorties sont entièrement laissées à l'initiative du constructeur (la notion de portabilité était inexistante).
On considère que algol est l'ancêtre de Pascal (apparu en 1970), ce langage sera revu en 1960 puis en 1966 (algol W).
LISP
LISP comme LISt Program est l'oeuvre de John Mac Carthy et a vu le jour en 1962 (Fortran 2 se répandait et Algol 60 était en cours de définition), il est bâti autour de la structure de liste chaînée et est facilement extensible, c'est le langage idéal pour 'l'intelligence artificiel' , manipulation de robots ... LISP favorise la programmation interactive, notion entièrement nouvelle à cette date, puisque tout ce qui est frappé est exécuté sans délai. Les listes sont évidemment entourées de parenthèses et les opérateurs sont placés devant les arguments (préfixé).
LISP est le langage idéal pour créer des stuctures de données élaborées du genre ensemble, difficilement utilisables par la plupart des langages utilisant des structures de données statiques (Pascal ...). Deux versions françaises de LISP : le VLISP développé par le pionnier de Lisp en France , Patrick Greusay (Université de Vincennes) sous Unix et Lelisp de l'INRIA (Jérôme Chailloux). Mulisp de Microsoft a été un des premiers Lisp a fonctionner sous MSDOS.
Un langage dérivé : LOGO présente des caractéristiques analogues tout en étant plus à la portée des débutants (plus de parenthèses) En 1979 A. Rich et D. Stoutemyer (Softhouse à Honolulu, Hawaï) ont publié une version améliorée de LISP : le MU-SIMP avec lequel Microsoft a écrit Mu-Math destiné au calcul symbolique : calcul formel d'intégrales .. Signalons le XLISP, freeware écrit en C, livré avec la source et facilement modifiable. Le COMMON LISP, l'un des derniers avatars du Lisp, est très fortement orienté objet.
APL
APL est le premier langage conversationnel, il utilise les notations mathématiques de KEN IVERSON transformé en un langage très puissant et concis mais hors de la portée du programmeur moyen et nécessitant un clavier spécial.
APL permet de travailler globalement sur des tableaux (addition de matrices, rotation de vecteurs ...)
Comme la langue esquimau, APL est holophrastique puisqu'une phrase s'exprime par un seul mot !
APL n'a pas été soutenu par son promoteur (IBM) qui lui a préféré PL/1.
En 1986, APL a un renouveau aux USA chez les amateurs puisque 250000 exemplaires d'un livre sur APL se vendent instantanément, en France APL* a des partisans malgré la nécessité d'une ROM spéciale.
PL/1
Créé par IBM en 1964 (Programming Language number 1) dans le but de réunifier l'informatique en réunifiant les avantages de Fortran, Cobol et Algol (ses détracteurs affirment qu'il réunit les recettes de ces trois langages), il a l'inconvénient de ne pas présenter une conception unifièe.
Sa complexité rend difficile l'écriture de compilateurs efficaces puisqu'il faut disposer de 100 kilo-octets au moins ce qui est énorme à l'époque.
BASIC
Né à l'Université de Portsmouth (USA) en 1964 à l'époque de l'avénement des mini-ordinateurs qui pour se vendre nécessitaient la création d'un langage facile à apprendre.
Le Basic (Beginners' all-purpose symbolic instruction code) offre une nouveauté dans sa première version : un interpréteur.
Très célèbre avec ses mots clés de trois lettres (PRT ...), basic subira de nombreux avatars : Tiny basic pour les O.I. courants, basicois, basique, basoc ... Mbasic Microsoft, jusqu'aux compilateurs pour PC : Quick Basic de Microsoft et Turbo Basic de Borland.
Ses inconvénients : faiblesses des sous-programmes (nettement inférieur à Fortran) appelés par un numéro et non un label alphanumérique, pas de transfert de paramètres, non portabilité d'une machine à l'autre ...
Mais en 1983 apparaît le basic du Lynx (société GOLEM) qui possède WHILE ..WEND, REPEAT..UNTIL, des booléens et des procédures avec passage de paramètres.
Bientôt les numéros de ligne n'existeront plus (basics compilés, locomative basic).
BAL
Comme Business Application Language, développé par Bull pour utiliser les possibilités de son système Prologue.
Similitudes avec le basic (chr$, data, peek, poke ...),
possibilité mais non obligation de numéroter les lignes.
Obligation de déclarer les variables (DCL chaine$= ), possède les While ..Wend, IF .. else ..endif, repeat ..until.
PASCAL
Créé par N. WIRTH en 1969 à Zurich.
Langage algorithmique et procéduriel qui sait faire une place aussi large aux déclarations (obligatoires) qu'aux instructions.
Oblige le programmeur à penser et à organiser son travail.
Pascal a une portabilité relative, une facilité de construction du compilateur mais reste assez lourd à utiliser pour un débutant : éditeur de texte (ED) puis compilateur (MTPLUS), éventuellement retour à ED pour corrections, éditeur de liens (LINKMT) , essais puis retour à ED ...tel était le lot des utilisateurs du pascal MTPLUS à l'époque héroïque où la correction d'une erreur pouvait prendre six minutes !
Le Pascal UCSD (Université de Californie de San Diègo) créé en 1978 a aussi eut son heure de célébrité jusqu'en 1983; il utilisait des Units séparant nettement implementation et mise en oeuvre des procédures.
Le Turbo-Pascal (de Borland) a été une véritable révolution chez les programmeurs par sa convivialité (Compilation et linkage à une allure record et éditeur intégré). Le Turbo Pascal 4.0 est devenu un outil professionnel avec sa possibilité de dépasser aisément les 64 ko sans utiliser d'overlays et ses nombreuses procédures.
Turbo Pascal version 5 a été lancé le 30/09/88, le débugger intégré en constitue la principale innovation.
De nombreux langages sont dérivés de Pascal : Euclid, Lis, Mesa
,Sue ,Sylph, Modula puis Ada ...
ADA
ADA né en 1978 ainsi nommé en l'honneur de Ada Augusta comtesse de Lovelace fille de Lord Byron et qui eut des relations avec Babbage (1978 était l'année de la femme comme tout le monde s'en souvient); il fallut attendre quelques années avant de voir le premier compilateur ADA opérationnel.
En 1975 , appel d'offres du Dt de la Défense aux USA qui avait recensé 400 langages différents dans ses services. C'est une équipe en grande partie française autour de Jean Ichbiah qui présenta le projet finalement retenu (projet CII Honeywell Bull).
ADA est un véritable prolongement de Pascal et privilégie la notion de tâches parallèles. ADA est à fortes composantes objet.
MODULA
Modula a été écrit dix ans après Pascal par N. Wirtz, il est plus performant que Pascal en compilation et exécution.
La programmation est véritablement modulaire (avec des modules compilables séparément), et Modula permet des accés facilités au système et registres et des tableaux de dimensions variables.
Curieusement Modula n'obtint pas le succès de Pascal et n'est utilisé que par des programmeurs avertis (ABSoft International vend Modula 2 pour un prix modique).
Comme C, Modula 2 est surtout destiné à la réalisation d' OS.
FORTH
Lancé par son créateur Charles Moore en 1970 (FORTH pour FOURTH: langage de 4me génération).
Centré autour de la notion de piles , Forth utilise la notation polonaise inversée (ou postfixé) comme les Hewlet Packard du genre HP 25.
En dehors du concept de piles, Forth utilise celui de dictionnaire, tout programme n'étant qu'une utilisation du dictionnaire, enrichissable par l'utilisateur.
La notion de branchement est totalement inconnue de Forth.
Le Forth a une grande aptitude à la récursivité, il contient dans son langage de base les mots du langage machine (rapidité).
Le Jupiter Ace , appareil qui eut son heure de gloire ne travaillait qu'en Forth.
Rapid File, "petit frère de DB3", a été écrit en Forth.
L S E
Créé à partir de 1970 à la demande du Ministère de l'Education par le service Informatique de Sup'Elec (Hebenstreit), ce Langage Symbolique d'Enseignement s'est vite avéré un "Langage Sclérosé pour l'Enseignement" ; seul langage appris et enseigné par les "Formés Lourds" de l' époque, il a participé au cercle vicieux [cellule logicielle <--> E A O <--> LSE] qui est l'une des causes reconnues de la faillite de l'enseignement de l'Informatique en France concurremment à l'utilisation du Nanoréseau, du matériel
Thomson et de logiciels "éducatifs" débilisants. Dès sa création, le LSE était en voie d'extinction car non évolutif comme le fit remarquer Bergman (UER de Marseille). Par quelle aberration LSE peut-il encore être en 1989 l'un des trois langages autorisés à l'Option Informatique ?
SYLPH
Sylph est un langage mis au point par PROCYON à Bordeaux en 1982 et se veut synthèse de plusieurs langages ( C et Pascal).
Langage structuré comme Pascal, il permet l'utilisation facile d'instructions en assembleurs et privilégie l'utilisation de pointeurs:
^(X) = 'a' range à l'adresse X le caractère 'a'
^ + pvar post incrémentation d'un pointeur
^!+ pvar pré incrémentation
et de décalage:
X.Y équivaut à ^(#X+Y)
^X.Y ^(^(#X+Y)
Langage compilé d'une grande flexibilité, peu emcombrant (compilateur et éditeur de liens tenait facilement sur une disquette 5'1/4 à l'époque où le MT-Plus en exigeait deux) s'est vu concurrencer par le Pascal de Borland a l'éditeur si sympathique.
(PROCYON 65 Av. V. Hugo 33110 LE BOUSCAT-BORDEAUX tél 56505410)
PROLOG
PROgramme LOGique, mis au point au CNRS à Marseille-Luminy par Alain Colmerauer à partir de 1970 est un langage conceptuel avec base de données incorporée utilisant la logique de premier ordre (avec moteur d'inférences).
Prolog I s'appuyait sur les travaux d'Alan Robinson en démonstration automatique et est apparu en 1972.
Malheureusement, l'algorithme utilisé pour "l'unification", dû à Robinson, ne permet pas le traitement de termes fonctionnels et après un remaniement profond est apparu Prolog III en 1983.
Exemples de programmation efficace en Prolog
Langage "descriptif" et non procéduriel (comme Pascal), destiné à l'intelligence artificielle et au développement de systèmes experts, il eut d'abord un gros succés au Japon ; en 1986 Philippe Khan (Borland) vend 30.000 exemplaires en 3 mois de son Turbo Prolog ...(qui n'est pas Prolog III !).
Prolog III permettra bientôt l'utilisations des inégalités linéaires (d'où des applications en recherche opérationnelle) et possédera une algèbre de Boole complète en vue de mieux formuler les règles de fonctionnement des sytèmes experts.
C
bref historique:
Martin Richard crée le BPCL en 1967.
Ken Thompson écrit le B en 1970 puis réécrit UNIX en B sur PDP-11 Dennis Ritchie met au point le C en 1972, en 1973 UNIX est réécrit en C.
La bible des programmeurs en C reste "The C Programming Language" de Kernigham et Ritchie.
Turbo C est sorti en 1987 mais le C de référence reste celui de
Microsoft.
BPCL et B possédaient déjà les instructions de contrôle if, while, do, case, des pointeurs, variables dynamiques et récursivité.
caractéristiques:
C allie universalité, portabilité et performances, accés à toutes les fonctionnalités du MS-DOS et librairies très fournies, grande rapidité.
Le C est le langage utilisant les pointeurs par excellence.
Notons que les variables statiques locales conservent leurs valeurs entre deux appels de la fonction.
La plupart compilateurs, des traitements de textes, des SGBD (Dbase 3+), des logiciels de communications sont écrits en C.
Le C++ de Bjärne Stroustrup est un langage à fortes composantes objet.
En dehors de ceux qui ne veulent pas faire l'effort d'étudier C, ce langage a aussi ses détracteurs, citons un article du N° 27 de "Pascalissime" de Février 1989 : "C du charabia", il est vrai que cette éminente revue est spécialisée en Pascal et propose des stages de formation à Pascal (4 jours : 6997 f TTC).
SMALLTALK
Smalltalk est "Le langage objet"
Smalltalk a été développé dès 1970 à Palo Alto par Alan Kay (Rank Xerox) et était à l'origine destiné à des fins éducatives et pédagogiques (enseignement de la programmation).
Mais les buts de Smalltalk vont se modifier progressivement du Smalltalk-76 au Smalltalk-80 et suivants et "la programmation orientée vers les objets" va se préciser.
Smalltalk-80 permet de créer simultanément plusieurs objets indépendants qui se comportent chacun comme un micro-ordinateur, chaque objet pouvant envoyer des messages aux autres.
Programmer en Smalltalk c'est décrire des classes d'objets avec leurs caractéristiques ("variables") et les messages auxquels ils répondront par une méthode ("procédure").
En bref, un objet doit "exporter" des procédures et donc la fonctionnalité et la mise en oeuvre sont distinctes.
Ce concept date de 1972 (type abstrait) et pouvait déjà être élaboré par les Units du pascal UCSD en 1978 (il faudra attendre Modula en 1979 puis Turbo Pascal en 1987 pour que le principe des Units se généralise).
Les langages objets (Smalltalk, Loops) constitue l'une des trois classes de langage constituant l'arsenal de l'I.A. ; les deux autres étant les langages du type LISP et les Prolog.
22 avril 1989
Et maintenant en 2003?
Il y a longtemps que le ministre de l'Education nationale a supprimé l'option
informatique des lycées (sauf erreur, il s'agit de Jospin) ,décidément, nos ministres
voient rarement l'intérêt des élèves, encore moins celui des enseignants.
Maintenant qui programme parmi les élèves ou les maîtres ?
On entend des sirènes incompétentes proclamer qu'avec les nouveaux logiciels il
n’est plus nécessaire d’étudier un langage
Bien qu'on puisse entièrement réaliser un site informatique avec des outils
efficaces, la maintenance sans connaissance de Javascript, Java ou Perl est
compromise.
Et les Visual C++, Visual Basic, Delphi qui effectivement permettent de
remplacer de longues procédures par quelques clics exigent néanmoins une
connaissance minimale de C, Basic ou Pascal.
N'oublions pas aussi ces jeunes (!) qui utilisent illégalement leur parfaite
connaissance d'un langage (C Visual Basic ou Delphi) pour construire :
un Keygen (un générateur de clé d'enregistrement d'un logiciel)
ou un crack (qui modifie automatiquement le logiciel grevé par une version
limitée)
ou un patch (par exemple traduction française d'un logiciel).
Programmation sous
Windows
Les langages du Net