Cours No 1 : Introduction



Documents pareils
Cours 1 : La compilation

Évaluation et implémentation des langages

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Machines virtuelles Cours 1 : Introduction

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Éléments de programmation et introduction à Java

Introduction à l Informatique licence 1 ère année Notes de Cours

UE Programmation Impérative Licence 2ème Année

Conception de circuits numériques et architecture des ordinateurs

1 L évolution de l informatique

Compilation (INF 564)

Logiciel Libre Cours 2 Fondements: Programmation

Cours d Algorithmique et de Langage C v 3.0

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Informatique Machines à calculer en théorie et en pratique

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Introduction à l algorithmique et à Java

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Traduction des Langages : Le Compilateur Micro Java

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Les Langages Informatiques

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Derrière toi Une machine virtuelle!

Algorithmique et Programmation Fonctionnelle

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Histoire de l Informatique

Cours 1 : Qu est-ce que la programmation?

C U R R I C U L U M V I T A E

Générer du code à partir d une description de haut niveau

Contribution aux rapports entre la logique combinatoire et les T[Σ]-algèbres.

Rebol, un langage «différent»

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

ALGORITHMIQUE ET PROGRAMMATION En C

Programmation C. Apprendre à développer des programmes simples dans le langage C

Chapitre I Notions de base et outils de travail

LICENCE : INFORMATIQUE GENERALE

Calculabilité Cours 3 : Problèmes non-calculables.

UE C avancé cours 1: introduction et révisions

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution

Initiation. àl algorithmique et à la programmation. en C

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

S LICENCE INFORMATIQUE Non Alt S Alt S S1 S2 S3 S4 SS5 S6 Parcours : S IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Annexe : La Programmation Informatique

Quatrième partie IV. Test. Test 15 février / 71

Semestre 1. Objectifs Approfondissement de l environnement Java et de son interface de programmation d applications : réseaux, et processus.

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

La mémoire. Un ordinateur. L'octet. Le bit

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

CATALOGUE Formations courtes PARCOURS TRADUCTION

Programmation en Java IUT GEII (MC-II1) 1

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Le génie logiciel. maintenance de logiciels.

Vérification formelle de la plate-forme Java Card

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

LICENCE PROFESSIONNELLE

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

I.1- DÉFINITIONS ET NOTIONS DE BASE

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2


Cours Informatique 1. Monsieur SADOUNI Salheddine

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ASR1 TD7 : Un microprocesseur RISC 16 bits

Programmation Web. Madalina Croitoru IUT Montpellier

Introduction à l algorithmique et à la programmation (Info 2)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Gestion collaborative de documents

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

Programmation Objet Java Correction

Cours Bases de données

Systèmes informatiques

ACTIVITÉ DE PROGRAMMATION

Introduction aux systèmes temps réel. Iulian Ober IRIT

Résumé Génération de code Le code intermédiaire

TP1 : Initiation à Java et Eclipse

Chapitre 2 : Abstraction et Virtualisation

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Initiation à l algorithmique

M1105 : Bases des systèmes d exploitation

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Optimisation de logiciels de modélisation sur centre de calcul

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Algorithme. Table des matières

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

Une version javascript sera disponible directement dans le cours prochainement.

Informatique Générale

Groupe Eyrolles, 2004 ISBN :

Cours d algorithmique BTS SIO première année. Nicolas FRANCOIS nicolas.francois@free.fr

Algorithmique I. Algorithmique I p.1/??

Transcription:

Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive 1 Généralités sur le cours Cours No 1 : Introduction Notes de cours - 2007-2012 Ouvrages liés J ai notamment utilisé pour construire ces notes cours les ouvrages suivants : Passeport pour l algorithmique et Scheme de R.Cori et P.Casteran. Structure and Interpretation of Computer Programs de Abelson, Fano, Sussman. Programmation récursive (en Scheme) de Christian Queinnec Programmation Applicative Programmation dans laquelle un programme est un ensemble de définition de fonctions et où l exécution d un programme est une succession d application de fonctions à des arguments au sens algébrique du terme (calcul utilisant des opérations, des lettres et des nombres). Programmation où la mémoire utilisée par les calculs est automatiquement gérée par l interpréteur du langage. Programmation récursive : programmation utilisant des fonctions récursives, fonctions capables de s appeler elles-mêmes et idéales pour implanter un algorithme pour tout problème auquel peut s appliquer une résolution par récurrence, ou pour traiter des stuctures de données récursives (listes, arbres). Fig. 1 Web site graph - une représentation graphique du code HTML des pages WEB - Libération, 23 janvier 2008 Lisp, Scheme : Langages dédiés à la programmation applicative, langage de programmation universel, historiquement majeur, permettant notamment la programmation applicative. Syntaxe simple. Fort pouvoir d expression. 1

Lisp, 1960, John Mc Carthy : pour du calcul numérique classique et du calcul symbolique (calcul dont les données ne sont pas des nombres mais des chaînes de caractères, des mots, des collections de choses). Scheme, 1970, Gerald J. Sussman et Guy L. Steele : Héritier de LISP à liaison strictement lexicale : enseignement de la programmation. Structure and Interpretation of Computer Programs - Abselson, Fano, Sussman - MIT Press - 1984. Excellent préalable à l étude des langages à objets, plus complexes. Caractéristiques de Lisp et des langages applicatifs : Toute phrase syntaxiquement correcte du langage (y-compris une instruction) est une expression algébrique ayant une valeur. Ceci n est pas vrai dans les langages dits impératifs. La mémoire est gérée automatiquement (allocation et récupération) si on le souhaite (programmation sans Effets de bords, lien avec la programmation dite fonctionnelle - Voir langage Haskell). Un très grand nombre d abstractions simplifient la vie du programmeur. Exemple : les grands nombres, les itérateurs, etc. 1 > (fact 30) 2 265252859812191058636308480000000 3 > (map fact (2 3 4 30)) 4 (2 6 24 265252859812191058636308480000000) 2

Fig. 2 Historique des langages de http ://www.digibarn.com/collections/posters/tongues/tongues.jpg 3 programmation - extrait1 -

Fig. 3 Historique des langages de programmation - extrait2- http ://www.digibarn.com/collections/posters/tongues/ton Langage Universel. Tous les secteurs d application vous sont ouverts (de la programmation de types re cursifs a la programmation graphique ou a la re alisation de sites WEB). 4

Fig. 4 Image Fractale programmée en Scheme - Girault Geoffroy - TER L2 2008 Contenu du cours : Syntaxe de Scheme Types prédéfinis. Base de l interprétation des expressions. Fonctions, Identificateurs, Premières Structures de contrôle. Fonctions Récursives Simples. Listes - Symboles - Calcul Symbolique Fonctions récursives sur les listes. Récursions arborescentes Optimisation des fonctions récursives Abstraction de données - Arbres binaires Introduction à l interprétation des langages 2 Rappels généraux sur la programmation Calcul automatisé, Calculateur : Calculateur : L ancêtre des ordinateurs modernes. Le terme a été abandonné, car, bien que les ordinateurs travaillent toujours en calculant, leur tâche essentielle est bien plus vaste, le calcul proprement dit étant le plus souvent caché aux yeux de l utilisateur. Informatique : De «INFORmation AutoMATIQUE». Mot inventé en 1962 par P. Dreyfus. 5

L informatique est la science du traitement automatisé de l information. Le calcul au sens arithmétique du terme est un cas particulier de traitement de l information. «science du traitement rationnel, notamment par machines automatiques, de l information considérée comme le support des connaissances humaines et des communication dans les domaines techniques, économiques et sociaux» (académie française). Traitement automatisé de l information implique : codage de l information pour sa représentation dans une machine. traitement de l information selon une suite de calculs ou de transformations définis par un texte appelé programme Données : entité manipulées dans les programmes. programme : texte décrivant sous une forme interprétable par un ordinateur, une suite d actions à réaliser sur des données. Ordinateur : machine où un programme (un texte) est transformé en exécuté (transformé en actions). Algorithme 1 : Séquence d opérations visant à la résolution d un problème en un temps fini (mentionner la condition d arrêt). Fondé sur la thèse de Church. exemple : algorithme de l école primaire pour multiplier deux nombres. Processus, ou processus de calcul, ou Calcul : Exécution d un programme par une machine. Texte d un programme : texte, écrit dans un langage de programmation, destiné à faire exécuter des actions à un ordinateur. Syntaxe : ensemble de règles de combinaison correcte des mots d un langage pour former des phrases. (Syntaxe du français ou syntaxe de Lisp). Grammaire : une représentation par intention, de la syntaxe d un langage. Analyse syntaxique, peut utiliser une grammaire, et dit si une phrase d un langage est ou non syntaxiquement bien formée. Semantique : ensemble de règle définissant le sens d une phrase. Il possible d écrire un texte syntaxiquement correct qui n a pas de sens selon une sémantique donnée. Exemple en français : Quelle la différence entre un pigeon? Interpréteur : programme transformant un texte de programme syntaxiquement correct en actions. L interpréteur fait faire à l ordinateur ce que dit le texte. Compilateur : Traducteur de texte d un langage L1 vers un langage L2. Par exemple, compilateur de Java en instructions de la JVM, compilateur de C en assembleur. Modèle de calcul : modèle permettant de représenter, afin de comprendre, mesurer prouver, la façon dont un programme est exécuté. Exemples de modèles de calcul : machine de Turing, lambda-calcul 2 Repères Calcul Automatisé. Traitement automatisé de l information. Chronologie : - 1640 (machine à calculer de Blaise Pascal) - Machines automatisées (Babbage). - Machine programmable : machine qui exécute des suites d actions, conformément à des textes appelés programmes - Premier ordinateur : Howard H. Aiken - IBM (1943) - Von Neumann : machine à branchements conditionnels (architecture des ordinateurs modernes). -... Quelques liens : * Histoire de l informatique par Jean-Yvon Birrien Que Sais-je n2510, Ed. P.U.F., Paris - 1990 * Histoire de l informatique de Serge Rossi : http ://histoire.info.online.fr/ 1 Terme venu du XIIIème siècle, de la traduction en latin d un mémoire de Mohammed Ibn Musa Abu Djefar Al-Khwarizmi commençant par : «Algoritmi dixit...». 2 Church-Alonso, (14/06/1903-11/08/1995). 6

* Dictionnaire de l informatique et de l Internet Ed. Micro-Application, Paris - 1998 * Jargon de l informatique de Roland Trique http ://www.linux-france.org/prj/jargonf/index.html * Structure and Interpretation of Computer Programs Programs. http ://mitpress.mit.edu/sicp/ 7