Résumé
Les langages sont omniprésents en informatique, ce à de nombreux niveaux : spécification, architecture, programmation, test, documentation, etc. Les plus connus sont les langages de programmation, qui traduisent directement nos idées algorithmiques en instructions d'ordinateurs. Ils ont été développés historiquement en très grand nombre, avec des des méthodes de pensée et d'action, des syntaxes et des sémantiques très variées, parfois complémentaires et parfois franchement incompatibles. Les moins bien développés sont les langages de spécification, qui constituent sans doute le point faible principal de la réalisation des systèmes. L'exposé étudiera l'évolution des différents modes de pensée qui ont conduit aux langages actuels, en insistant sur les critères qui favorisent ou empêchent le succès d'un langage donné. Il montrera l'importance des approches formelles et de l'incorporation directe de la vérification dans les langages, sujet traité dans le séminaire de Thomas Jensen qui suivra le cours. (Attention ce premier cours est délocalisé à l'Inria de Rennes).