UE D - Programmation fonctionnelle Chapitre 1 Généralités sur l'informatique
Plan Quelques définitions Historique de l'informatique Programmation
1. Quelques définitions Informatique français : information automatique anglais : science de l'ordinateur (computer science) Ordinateur = machine exécutant des opérations calcul automatique programmable
1. Quelques définitions Ordinateur partie matérielle partie logicielle Partie matérielle (hardware) carte mère : processeur, carte graphique, mémoire lecteurs : disques, CD, DVD périphériques : écran, clavier, souris, imprimante Partie logicielle (software) programmes
1. Quelques définitions Système d'exploitation programme qui permet de gérer un ordinateur et d'exécuter d'autres programmes Programmation création de programmes Langage de programmation langage (ensemble de règles de syntaxe et de sémantique) dans lequel les programmes sont créés
2. Historique de l'informatique Prédictions surprenantes Quelques inventions Systèmes d'exploitation Langages de programmation
2.1 Prédictions surprenantes 1949, Popular Mechanics : "Computers in the future may weigh no more than 1.5 tons" 1977, Ken Olson : "There is no reason anyone would want a computer in their home" 1981, attribué à Bill Gates : "640k ought to be enough for anybody"
2.2 Quelques inventions 1645 : machine de Pascal (+ et -) 1694 : machine de Liebniez (* et /) 1850 : clavier 1943 : ENIAC (200 khz, 4386 switchs manuels) 1963 : souris 1969 : Arpanet (ancêtre d'internet) 1987 : carte son pour PC 1995 : USB
2.3 Systèmes d'exploitation 1955 : GM Research OS for IBM 701 1965 : Multics 1969 : Unix 1981 : MS-DOS 1984 : Macintosh OS 1985 : Windows 1.0 2004 : Ubuntu 2009 : Windows 7
2.4 Langages de programmation Langages impératifs Fortran (1957), C (1972) Langages fonctionnels Lisp (1959), ML (1973), Caml (1985), OCaml (1996), F# (2002) Langages objets C++ (1983), Java (1995), PHP (1997), C# (2001)
3. Programmation Qu'est-ce que c'est? Pourquoi faire? Comment faire?
3.1 Qu'est-ce que c'est? Programmation création de nouveaux programmes Programme ensemble de commandes pour l'ordinateur Commande ordre simple (exécution d'un calcul, affichage d'un résultat, etc.)
3.1 Qu'est-ce que c'est? Exemple de programmes systèmes d'exploitation utilitaires : Microsoft Word, Internet Explorer, Winamp, etc. jeux
3.2 Pourquoi faire? Quelques objectifs efficacité : réalisation automatique et rapide de tâches complexes automatisation : commutation téléphonique sans opérateur humain utilisabilité : utilitaires, jeux sûreté : contrôle aérien, surveillance automatique
3.2 Pourquoi faire? Avantages certaines tâches s'automatisent bien une fois le programme fait, il peut être utilisé à grande échelle avec un faible surcoût Inconvénients l'écriture d'un programme est une tâche assez complexe
3.3 Comment faire? Démarche scientifique comprendre le problème posé réfléchir à une solution informatique décrire à l'ordinateur la solution vérifier la solution
3.3 Comment faire? Compréhension du problème comprendre l'ensemble du problème et des contraintes Réfléchir à une solution informatique algorithmique se fait sans ordinateur
3.3 Comment faire? Décrire à l'ordinateur la solution programmation description textuelle (le plus souvent) choix de la manière d'expliquer la solution = choix du langage de programmation Vérifier la solution permet de réduire les bugs
3.3 Comment faire? Choix du langage de programmation en fonction des langages connus par le programmeur + du type de solution trouvé + du problème nécessite une bonne connaissance du langage de programmation
3.3 Comment faire? Générations de langages 0 : langages binaires 1 : langages d'assemblage 2 : langages impératifs 3 : langages objets 4 : langages fonctionnels (dont Caml) 5 : langages déclaratifs