Abstract
Languages are ubiquitous in computer science, at many levels: specification, architecture, programming, testing, documentation and so on. The best known are programming languages, which translate our algorithmic ideas directly into computer instructions. Historically, they have been developed in very large numbers, with very varied methods of thinking and acting, syntaxes and semantics, sometimes complementary and sometimes frankly incompatible. The least well-developed of these are the specification languages, which are undoubtedly the main weak point in system realization. The presentation will study the evolution of the different ways of thinking that have led to today's languages, focusing on the criteria that promote or prevent the success of a given language. It will show the importance of formal approaches and the direct incorporation of verification into languages, a subject covered in Thomas Jensen's seminar which will follow the lecture. (Please note that this first lecture will be held at Inria Rennes).