Évaluation et implémentation des langages

Dimension: px
Commencer à balayer dès la page:

Download "Évaluation et implémentation des langages"

Transcription

1 Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation des langages de programmation CSI 3525, Évaluation et Implémentation, page 1

2 Les langages de programmation et le processus de programmation Programmer, c est plus que simplement écrire du code. Pourquoi étudier les langages de programmation? Les paradigmes et applications de la programmation. CSI 3525, Évaluation et Implémentation, page 2

3 Programmer, c est plus que simplement écrire du code. Avant d écrire du code, il est essentiel de débuter par une analyse. Un algorithme est développé (ou emprunté), le coût de la solution est évalué. Après avoir écrit le code, le programme doit être maintenu. Les langages de programmation transmettent des instructions aux ordinateurs. Qu est-ce qu un ordinateur comprend? Comment l ordinateur nous répondra? CSI 3525, Évaluation et Implémentation, page 3

4 Programmer, c est plus que simplement écrire du code (suite) Comment les langages de programmation diffèrent-ils des langages naturels? Qu est-ce qui fait de quelqu un un bon programmeur? Un programmeur devrait-il connaître plus d un langage de programmation? CSI 3525, Évaluation et Implémentation, page 4

5 Pourquoi étudier des langages de programmation? Pour mieux comprendre la relation entre les algorithmes et les programmes. Pour apprendre à trouver des solutions générales, indépendantes du langage choisi. Pour pouvoir mieux choisir les outils de programmation les plus appropriés. CSI 3525, Évaluation et Implémentation, page 5

6 Pourquoi étudier les langages de programmation? (suite) Pour apprécier le fonctionnement des ordinateurs en sachant comment les langages sont implémentés. Pour faciliter l apprentissage de nouveaux langages. Pour savoir développer de nouveaux langages formels (pour l entré de données par exemple). Pour constater comment les langages influencent l informatique en tant que discipline, et encouragent les bonnes pratiques de développement de logiciels. CSI 3525, Évaluation et Implémentation, page 6

7 Les différent types de langages: Paradigmes de programmation Différent langages permettent de résoudre différents problèmes de façon différentes. Une opération peut être exprimée dans différents langages, puis exécutée sur la même machine. CSI 3525, Évaluation et Implémentation, page 7

8 Différents paradigmes de programmation Langages impératifs: Ces langages permettent au programmeur d attribuer des valeurs à des espaces de mémoire, afin de décrire explicitement la façon de résoudre un problème. (Java, C++, Pascal) Langages déclaratifs: Ces langages permettent au programmeur de déclarer diverse entités et relations. Le programme pourra ensuite utiliser ces déclarations pour résoudre le problème. (Prolog, Lisp) CSI 3525, Évaluation et Implémentation, page 8

9 Langages Déclaratifs Programmation fonctionnelle: Un programme consistant de déclarations de fonctions. Un appel à une fonction est fait et retourne un élément qui dépend de la valeur de ses paramètres qui peuvent, eux même, être des appels à des fonctions.(lisp) Programmation logique: Un programme consistant de déclarations de séries d axiomes et de règles de déduction, et de la présentation d un théorème à prouver. Le programme répond si le théorème peut être prouvé ou non à partir des déclarations. (Prolog) CSI 3525, Évaluation et Implémentation, page 9

10 Langages Impératifs Programmation procédurale: Le programme est divisé en blocs pouvant contenir des variables locales, ainsi que d autres blocs. (C, Fortran, Pascal) Programmation orientée objet: Des objets se rapportant au problème sont définis, avec leurs attributs et leur façon de réagir à différent événements. Le problème est résolu grâce a l interaction entre ces objets. (Java, Smalltalk) Programmation concurrente: Langage permettant l utilisation de plusieurs CPU opérants en parallèle. Les donnés peuvent être partagées entre les processeurs ou restreintes à certains d entre eux. (Ada 95, Java) CSI 3525, Évaluation et Implémentation, page 10

11 Spécialisation d un langage Langages à usage général: la plupart des langages que vous connaissez. Langages spécialisés: ex: matlab (mathématiques), Cobol (production de rapports), SQL (bases de données), Perl (langage script). CSI 3525, Évaluation et Implémentation, page 11

12 Niveau de complexité et d abstraction Langages de bas niveau (langage machine, assembleur). Langages de haut niveau (les langages les plus utilisés). Langages de très haut niveau (Prolog, ainsi que certain langages spécialisés). Au delà des langages de programmation: Environnements de programmation et outils de développement logiciel (JBuilder, Visual C++) CSI 3525, Évaluation et Implémentation, page 12

13 Domaines d application Traitement de données ("business applications"). Important dans le passé, maintenant largement remplacé par les bases de données, tableurs, et logiciels spécialisés. Calcul scientifique (incluant l ingénierie). Aujourd hui, largement influencé par la conception de nouveau hardwares tel que les super-ordinateurs ou les ordinateurs vectoriels. CSI 3525, Évaluation et Implémentation, page 13

14 Domaines d application (2) Intelligence artificielle et autres applications en marge de l informatique. Logiciel éducatifs, jeux De nouveaux hardware sont proposés (présentement surtout simulés) pour l intelligence artificielle: réseaux de neurones, ordinateurs à connexion. Applications en interne compilateurs, systèmes d exploitation, GUI, API. CSI 3525, Évaluation et Implémentation, page 14

15 Critères pour la conception et l évaluation de langages de programmation Lisibilité Aptitude à l écriture Fiabilité Coût CSI 3525, Évaluation et Implémentation, page 15

16 Lisibilité Ce critère est subjectif, mais important. La lisibilité d un langage est rendu essentielle par les usages courant du génie logiciel, en particulier, pour les fins d évolution, de maintenance, et de mise à jour des logiciels. Abstraction: permet la généralité des programmes, l abstraction procédurale, et l abstraction des données. Absence d ambiguïtés Absence d une surabondance de choix: Par exemple, certain langages permettent d écrire les boucles de plusieurs façon différentes. CSI 3525, Évaluation et Implémentation, page 16

17 Lisibilité (2) Orthogonalité: l absence de restrictions sur la façon de combiner les primitives du langage. (Il est plus facile de constater le manque d orthogonalité.) Exemple: Un tableau peut-il contenir des éléments de n importe quel type? Résulte en une diminution du nombre de cas spéciaux. Peut être poussé trop loin (Algol 68). CSI 3525, Évaluation et Implémentation, page 17

18 Lisibilité (3) Expressivité des structures de contrôle et de données. Qu est-ce qui est plus facile à lire et maintenir: un long programme bâtie à partir d éléments simple? -ouun programme bref bâtie à partir d éléments complexes et spécialises? Exemples d expressivité: la récursivité, le retour arrière incorporé de Prolog, la recherche dans les langages de base de données. Exemple de peu d expressivité: instructions d assembleur. Apparence: syntaxe élégante, commentaires. CSI 3525, Évaluation et Implémentation, page 18

19 Aptitude à l écriture Encore subjectif. Abstraction: comme pour la lisibilité Simplicité: Basic et Pascal sont simples Prolog est conceptuellement simple, mais difficile en pratique. C++ et Java? Expressivité (encore). Modularité: aussi la présence d outils de modularisation et la capacité d être incorporé dans un environnement de programmation intégré. CSI 3525, Évaluation et Implémentation, page 19

20 Fiabilité et Coût Fiabilité: Vérification des types, traitement des exceptions et erreurs, l absence d ambiguïtés (et en générale la lisibilité et l aptitude a l écriture). Coût associées à l utilisation du langage. Temps nécessaire au développement (facilité de programmation, disponibilité de code, de librairies et de documentation). Facilité d implémentation: (affecte la disponibilité et le coût des compilateurs) Algol 68 a échoué, Ada presque; l implémentation de Pascal, C, C++ et Java ont été de grand succès. Temps nécessaire pour traduire, et l efficacité du code résultant. Portabilité et standardisation. CSI 3525, Évaluation et Implémentation, page 20

21 L implémentation de langages de programmation Processeurs de langage Machines virtuelles Modèles d implémentation Compilation et exécution CSI 3525, Évaluation et Implémentation, page 21

22 Processeurs de langage Un processeur de langage est un dispositif (logiciel ou matériel (hardware)) capable d exécuter des instructions de ce langage. La traduction est le processus qui transforme un programme d un langage à un autre, tout en préservant son intégrité et sa fonctionnalité. Le langage cible peut être directement exécutable sur l ordinateur, ou (plus souvent) devra à nouveau être traduit en un langage de niveau inférieur. CSI 3525, Évaluation et Implémentation, page 22

23 Machines virtuelles Une machine virtuelle est une réalisation logicielle (simulation) d un processeur de langage. Il est difficile de programmer directement pour le hardware le hardware est donc généralement «enveloppé» de plusieurs couches logicielles. Une couche peut être partagé par plusieurs processeurs de langage,chacun ayant sa propre machine virtuelle au dessus de cette couche. CSI 3525, Évaluation et Implémentation, page 23

24 Exemple de couches partagées Tout processeurs de langage nécessitent une capacité d entrées /sorties. Tout les processeurs de langage doivent effectuer des calcules (utiliser le CPU). CSI 3525, Évaluation et Implémentation, page 24

25 Machines virtuelles Il existe normalement une hiérarchie de machines virtuelles: Au plus bas niveau: hardware ou matériel. Au plus haut niveau: les langages les plus intuitifs pour le programmeur. Chaque couche est exprimée uniquement en fonction de la précédente, ce qui assure une abstraction approprié. CSI 3525, Évaluation et Implémentation, page 25

26 Exemple de hiérarchie de machines virtuelles Layer 0: Layer 1: Layer 2: Layer 3: Layer 4: Layer 5: Layer 6: Layer 7: hardware microcode langage de machine appels de système code indépendant de la machine langage de haut niveau (ou assembleur) programme d application données d entrées [aussi un langage] CSI 3525, Évaluation et Implémentation, page 26

27 Layer 0: Layer 1: Layer 2: Layer 3: Machines virtuelles exemples IBM Netvista avec Pentium 4 de Intel, 2GHz Langage machine IBM Intel Windows XP Java byte-code Layer 4: Java 2.0 (code developé en JRE 1.4.0) Layer 5: Layer 6: comparateur intelligent de programmes C++, écrit en Java deux programmes C++ à comparer afin de trouver les similarités CSI 3525, Évaluation et Implémentation, page 27

28 Layer 0: Layer 1: Machines virtuelles exemples (2) IBM Netvista avec Pentium 4 de Intel, 2GHz Langage machine IBM Intel Layer 2: Windows NT 4.0 Layer 3: Java byte-code Layer 4: JDK 1.2 Layer 5: Layer 6: Layer 7: Layer 8: Une implémentation en Java de Prolog Une implémentation en Prolog de mysql Un patron de base de données défini et créé des enregistrements à insérer dans la base de données CSI 3525, Évaluation et Implémentation, page 28

29 Compilation: Modèles d implémentation Traduit le programme en un langage de machine virtuelle de couche plus basse. Le code résultant sera exécuté plus tard. Interprétation: Divise le programme en petit fragments (représentants des éléments de syntaxe). Une boucle traduit et exécute immédiatement les fragments. CSI 3525, Évaluation et Implémentation, page 29

30 Modèles d implémentation(2) La compilation pure et l interprétation pure sont peu utilisées. L implémentation des langages de programmation utilise souvent un mélange des deux. - exemple: Java est compilé en «bytecode», qui est par la suite interprété. On désigne un processeur de langage comme interpréteur s il ressemble plus à un interpréteur qu à un compilateur, dans le cas contraire il est considéré comme un compilateur. CSI 3525, Évaluation et Implémentation, page 30

31 Modèles d implémentation(3) Certain langages se prêtent mieux à l interprétation, par exemple Prolog et Lisp qui sont utilisés de manière interactive. D autre se prêtent mieux à la compilation, tel que C++ et Java. Il existe des versions compilés de Prolog et Lisp: Une boucle d interprétation de haut-niveau régît l interaction usagée. Les prédicats / fonctions sont compilées en un format optimisé qui est interprété. CSI 3525, Évaluation et Implémentation, page 31

32 Programme source Compilation et exécution compilateur Analyse lexicale (scaning) Optimisation du code Programme abstrait (optimisé) Génération du code Séquence d unités lexicales Table de symboles Programme abstrait (code intermédiaire) Code exécutable (object code) Analyse syntaxique (parsing) Arbre syntaxique Analyse sémantique Chargeur/Éditeur de liens (Loader/Linker) Programme résultant Données d entré Ordinateur Données de sortie CSI 3525, Évaluation et Implémentation, page 32

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri Types et langages de programmation Algorithmique et Programmation Unisciel/K.Zampieri 1 Généalogie partielle des langages de programmation FORTRAN BASIC PL/1 PROLOG ALGOL60 COBOL C PASCAL ADA MODULA-2

Plus en détail

Chapitre I. Introduction à la programmation

Chapitre I. Introduction à la programmation Chapitre I Introduction à la programmation Objectif du cours Comprendre ce qu est l algorithmique. Fournir des éléments de bases intervenants en programmation quel que soit le langage employé Variables

Plus en détail

Langages de haut niveau

Langages de haut niveau Langages de haut niveau Introduction Un assembleur est un programme traduisant en code machine un programme écrit à l'aide des mnémoniques Les langages d'assemblage représentent une deuxième génération

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Structure en couches des systèmes informatiques

Structure en couches des systèmes informatiques Structure en couches des systèmes informatiques Vue simplifiée d un système informatique Ce que le simple utilisateur perçoit «à première vue» d un système informatique : Le boîtier (tour, desktop ou portable)

Plus en détail

Python. Introduction

Python. Introduction Python Introduction Utilisateur Il y a 2 catégories de personnes utilisant les machines avec des processeurs (ordinateurs, téléphones intelligents, tablettes, consoles, etc): les programmeurs les autres

Plus en détail

Les étapes et les outils de développement des programmes

Les étapes et les outils de développement des programmes Les étapes et les outils de développement des programmes L élaboration d un programme est un travail qui se fait en plusieurs étapes nécessitant divers outils que ce chapitre tente de décrire succinctement.

Plus en détail

Sommaire. Introduction à la compilation. Notion de compilation. Notion de compilation. Notion de compilation. Notion de compilation

Sommaire. Introduction à la compilation. Notion de compilation. Notion de compilation. Notion de compilation. Notion de compilation Introduction à la compilation A. DARGHAM Faculté des Sciences Oujda Sommaire Environnement d un compilateur Schéma global d un compilateur Caractéristiques d un bon compilateur Définition Un compilateur

Plus en détail

INTRODUCTION AUX LANGAGES...

INTRODUCTION AUX LANGAGES... C/C++/ Ch 1 Introduction I. INTRODUCTION AUX LANGAGES... 1 A. NOTION DE PROGRAMME... 1 B. LANGAGES DE PROGRAMMATION... 2 C. FAMILLES DE LANGAGES DE PROGRAMMATION... 2 1. Générations de langages... 2 2.

Plus en détail

QUELQUES CONCEPTS INTRODUCTIFS

QUELQUES CONCEPTS INTRODUCTIFS ESIEE Unité d'informatique IN101 Albin Morelle (et Denis Bureau) QUELQUES CONCEPTS INTRODUCTIFS 1- ARCHITECTURE ET FONCTIONNEMENT D UN ORDINATEUR Processeur Mémoire centrale Clavier Unité d échange BUS

Plus en détail

Assembleur, Compilateur et Éditeur de Liens

Assembleur, Compilateur et Éditeur de Liens Assembleur, Compilateur et Éditeur de Liens Pierre de rosette GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Assembleur et compilateur Langage assembleur Langage compilé

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

INTRODUCTION AUX LANGAGES...

INTRODUCTION AUX LANGAGES... C Ch 1 Introduction I. INTRODUCTION AUX LANGAGES... 1 A. NOTION DE PROGRAMME... 1 B. LANGAGES DE PROGRAMMATION... 1 C. FAMILLES DE LANGAGES DE PROGRAMMATION... 2 1. Générations de langages... 2 2. Paradigmes

Plus en détail

Niveaux de description

Niveaux de description Chapitre 1 Niveaux de description Olivier Raynaud Université Blaise Pascal Base conceptuelle d un ordinateur Extrait de [Tis] La mémoire La mémoire est divisée en parties physiques appelées mots (par exemple

Plus en détail

Environnement de programmation

Environnement de programmation Environnement de programmation 1.La programmation Les ordinateurs sont stupides! à un point dont on n'a pas idée. Ils ne réagissent ni ne répondent qu'à des situations ou à des données anticipées par le

Plus en détail

Introduction à l'informatique

Introduction à l'informatique Introduction à l'informatique DEUG Sciences et Technologie Première année Autour de la programmation Catherine Mongenet Pierre Gancarski (supports réalisés par Catherine Mongenet et Pascal Schreck) Rappels

Plus en détail

Algorithmique et Programmation I

Algorithmique et Programmation I Algorithmique et Programmation I Séance 1 Notions Générales Année universitaire 2006/2007 Semestre 1 1 Bienvenue Séances: o Cours: Notions théoriques o Travaux Dirigés (TD): Exercices o Travaux Pratiques

Plus en détail

Algorithmique et programmation

Algorithmique et programmation Algorithmique et programmation Algorithmique - L algorithme est une méthode pour résoudre un problème - Le programme est le codage lisible par l ordinateur de cette méthode - Avant d écrire un programme,

Plus en détail

AL5L Architecture logicielle. Séance 3 Paradigmes de programmation

AL5L Architecture logicielle. Séance 3 Paradigmes de programmation AL5L Architecture logicielle Séance 3 Paradigmes de programmation Sébastien Combéfis mardi 3 février 2015 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution

Plus en détail

Programmation Java. Madalina Croitoru

Programmation Java. Madalina Croitoru Programmation Java Madalina Croitoru Madalina Croitoru 2002 2006 Univ. Aberdeen 2006 2008 Univ. Southampton Depuis 2008 Univ. Montpellier II Contact: Page web: www.lirmm.fr/~croitoru/teaching.html Email:

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

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

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Introduction au développement du logiciel

Introduction au développement du logiciel Introduction au développement du logiciel Vers le génie logiciel Université de Nantes Master Miage M1 Plan 1 Introduction 2 Génie logiciel 3 Projet informatique 4 Méthode de développement 5 Qualité Bibliographie

Plus en détail

5.2. Introduction à la programmation en assembleur et en langage machine

5.2. Introduction à la programmation en assembleur et en langage machine 5. Couche conventionnelle. Introduction à la programmation en assembleur et en langage machine. Instructions - types, formats, champs; types d'adressage et utilisation des registres. Branchements, sauts

Plus en détail

Chapitre I Langages de programmation et langage C

Chapitre I Langages de programmation et langage C Chapitre I Langages de programmation et langage C un chapitre où l on situe le langage C dans la très nombreuse famille des langages de programmation et où l on écrit son premier programme dans ce langage.

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Introduction à la programmation avec Java

Introduction à la programmation avec Java Introduction à la programmation avec Java UFR Sciences de Nice Licence Math-Info 2006-2007 Module L1I1 Frédéric MALLET Jean-Paul ROY Ressources sur le langage Java Conception objet en Java avec BlueJ :

Plus en détail

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

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Introduction à la programmation orientée objet. Éric Pruvost

Introduction à la programmation orientée objet. Éric Pruvost Introduction à la programmation orientée objet Éric Pruvost Les années 50 Avant l objet Les années 50 50 Les quatre principaux langages 1956 1958 1958 1959 FORTRAN LISP ALGOL COBOL scientifique lambda-calcul

Plus en détail

Sujet de veille technologique : Les langages de développement et leurs évolutions

Sujet de veille technologique : Les langages de développement et leurs évolutions 2014 Sujet de veille technologique : Les langages de développement et leurs évolutions Charly Rivière IIA SOMMAIRE : SOMMAIRE :... 0 1. Pourquoi ce sujet?... 2 2. Qu est-ce qu un langage de développement...

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1 Génie logiciel Concepts fondamentaux Bruno MERMET, Université du Havre 1 Nécessité du Génie Logiciel Bruno MERMET, Université du Havre 2 Développement d un logiciel Caractéristiques souhaitées : Adéquation

Plus en détail

NOTIONS sur la TRADUCTION Applications en Informatique

NOTIONS sur la TRADUCTION Applications en Informatique NOTIONS sur la TRADUCTION Applications en Informatique Notions sur la traduction 0) Motivation et objectifs 1) Notions de base 2) Analyse lexicale 3) Automates Using Linux /Unix Compiler of compilers tools

Plus en détail

Cours Visual Basic pour Application. Par Fabrice Pasquier

Cours Visual Basic pour Application. Par Fabrice Pasquier Cours Visual Basic pour Application Par Fabrice Pasquier Sommaire Introduction à la programmation Motivation - démos VBA et VB Syntaxe de base, variables Opérateurs de base, boucles Intégration à MS Excel

Plus en détail

Le génie logiciel. maintenance de logiciels.

Le génie logiciel. maintenance de logiciels. Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction

Plus en détail

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N.

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N. Abstraction et liaison dans les langages de programmation LIN2: Paradigmes de programmation N. Hameurlain Abstraction: introduction L'importance de l abstraction découle de sa capacité de cacher les détails

Plus en détail

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours 0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage 3- Organisation du cours Le présent cours constitue une introduction pour situer le langage C++, beaucoup des concepts

Plus en détail

Typologie du logiciel. Typologie du logiciel. Ordinateur? ORDINATEUR. Computer = Hardware + Software. Ordinateur = Matériel + Logiciel

Typologie du logiciel. Typologie du logiciel. Ordinateur? ORDINATEUR. Computer = Hardware + Software. Ordinateur = Matériel + Logiciel Architecture Logicielle des Systèmes d Information (ALSI) Ordinateur? ORDINATEUR MATERIEL Computer = Hardware + Software Septembre 2010 Sources: GJL, Wikipédia,, Internet Ordinateur = Matériel + Logiciel

Plus en détail

Présentation des objectifs Morinet-Lambert, Cadot, Pierron O-1

Présentation des objectifs Morinet-Lambert, Cadot, Pierron O-1 Présentation des objectifs Morinet-Lambert, Cadot, Pierron O-1 Introduction à l informatique : module d'algorithmique et programmation Université Henri Poincaré Nancy1 e-mail : Laurent.Pierron@loria.fr

Plus en détail

Avant-propos. 1. Introduction

Avant-propos. 1. Introduction Avant-propos Les sections ou sous-sections marquées d un astérisque (*) ne font pas partie de la matière du cours IFT1969. Elles sont destinées à définir complètement le langage C (ANSI-C99) et à en préciser

Plus en détail

Notions Générales. Séance 1. Année universitaire 2015/2016 Semestre 1

Notions Générales. Séance 1. Année universitaire 2015/2016 Semestre 1 Notions Générales Séance 1 Année universitaire 2015/2016 Semestre 1 1 Ordinateur et programmation L orientation universitaire, l inscription, la réservation d un billet d avion, sont des opérations de

Plus en détail

Système d exploitation

Système d exploitation Chapitre 2 Système d exploitation 2.1 Définition et rôle Un ordinateur serait bien difficile à utiliser sans interface entre le matériel et l utilisateur. Une machine peut exécuter des programmes, mais

Plus en détail

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques

Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques Les informations traitées par l ordinateur (nombres, instructions,

Plus en détail

Module 351 - Informatique - 1er semestre 2009-2010

Module 351 - Informatique - 1er semestre 2009-2010 Module 351 - Informatique - 1er semestre 2009-2010 1 Généralités 1.1 Utilisation de l informatique dans un contexte scientifique. Deux alternatives: 1. Utiliser des logiciels existants. Exemple: traitement

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Qu est-ce que la «Programmation»?

Qu est-ce que la «Programmation»? Qu est-ce que la «Programmation»? D une manière générale, l objectif de la programmation est de permettre l automatisation d un certain nombre de tâches, à l aide de machines particulières: les automates

Plus en détail

Les Langages Informatiques

Les Langages Informatiques Les Langages Informatiques Les évolutions Michel Riguidel (riguidel@enst.fr) Table des Matières Table des Matières 2 Segmentation Informatique 3 Autrefois 3 Maintenant 3 Informatique 3 Informatique, Ordinateur,

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Langages de programmation: approche scientifique

Langages de programmation: approche scientifique IGE 2004 - ENS 29 juin 2004 Présentation au CGTI 1 Informatique théorique 2 3 Une science? Informatique théorique Chaque science repose un dogme fondamental. Les mathématiques Les raisonnements formels

Plus en détail

LES LANGAGES DE PROGRAMMATION

LES LANGAGES DE PROGRAMMATION LES LANGAGES DE PROGRAMMATION 27 LES LANGAGES DE PROGRAMMATION CHAPITRE 2 OBJECTIFS DÉFINIR ET PRÉCISER LE RÔLE DES LANGAGES DE PROGRAMMATION DANS L EXPLOITATION DES ORDI- NATEURS. CARACTÉRISER CES LANGAGES

Plus en détail

Éléments de Programmation Cours 1 - Introduction

Éléments de Programmation Cours 1 - Introduction Éléments de Programmation Cours 1 - Introduction Romain Demangeon 1I001 - Section 11 PEIP 08/09/2015 Étudiants PEIP: Informatique au 1er et 3eme semestre. Section MIPI 11: 160 étudiants, 5 groupes de TD.

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voie : Technologie et biologie (TB) Discipline : Informatique Première et seconde années Programme d informatique

Plus en détail

Objectif du cours. Bases de la programmation. Plan de cette partie

Objectif du cours. Bases de la programmation. Plan de cette partie Objectif du cours Bases de la programmation Université de Nice - Sophia Antipolis Richard Grin Version 1.2.5 24/9/11 http://deptinfo.unice.fr/~grin Introduction à la programmation orientée objet pour pouvoir

Plus en détail

Introduction. Qu est-ce que Visual Basic 2008?

Introduction. Qu est-ce que Visual Basic 2008? Je suis profondément ravi que vous ayez choisi ce livre pour acquérir les compétences et techniques de programmation avec Microsoft Visual Basic 2008. Si nous nous découvrons mutuellement dans ce paragraphe,

Plus en détail

1.2 Unité responsable Département d informatique, Faculté des sciences

1.2 Unité responsable Département d informatique, Faculté des sciences 1. Identification du programme 1.1 Titre du programme Maîtrise ès sciences (informatique) 1.2 Unité responsable Département d informatique, Faculté des sciences 1.3 Diplôme accordé M. Sc. (Informatique)

Plus en détail

1. Les fondements de l informatique 13

1. Les fondements de l informatique 13 Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Introduction aux Bases de Données Relationnelles Conclusion - 1

Introduction aux Bases de Données Relationnelles Conclusion - 1 Pratique d un : MySQL Objectifs des bases de données Où en sommes nous? Finalement, qu est-ce qu un? Modèle relationnel Algèbre relationnelle Conclusion SQL Conception et rétro-conception Protection de

Plus en détail

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier Compilateurs : Matthieu Amiguet 2009 2010 Vous êtes ici 2 Partie Avant Analyse syntaxique Analyse sémantique Arbre syntaxique abstrait (AST) Partie Arrière Optimisation de l AST Génération de code Optimisation

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Programma'on. Histoire Et Philosophie

Programma'on. Histoire Et Philosophie Programma'on Histoire Et Philosophie Les années 40 Les premiers langages de programma'on apparaissent avant les années 40. Ce ne sont cependant que des instruc'ons primaires. Il faut plus d une dizaine

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

Plus en détail

Informatique, Algorithmique, Programmation, etc. CPEL2

Informatique, Algorithmique, Programmation, etc. CPEL2 Informatique, Algorithmique, Programmation, etc. CPEL2 1 Informatique? Mot valise créé en 1962: INFORMATION + AUTOMATIQUE En français moderne: science du traitement de l'information par un ordinateur 2

Plus en détail

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

I - Introduction à la compilation et à l interprétation

I - Introduction à la compilation et à l interprétation I - Introduction à la compilation et à l interprétation Étienne M. Gagnon et Jean Privat 2009 2013 UQAM Les langages de programmation permettent aux programmeurs d écrire leurs programmes avec une notation

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

Introduction. Chapitre 1. 1.1 Pourquoi Java?

Introduction. Chapitre 1. 1.1 Pourquoi Java? Chapitre 1 Introduction Nos objectifs pédagogiques sont : 1. Étudier les concepts de base de la programmation dans les langages de haut-niveau, de manière à : les appliquer en Java, comprendre des concepts

Plus en détail

Python pour le calcul scientifique

Python pour le calcul scientifique Petit tour d horizon Laboratoire de Mathématiques d Orsay Le langage Python 1 développé en 1989 par Guido van Rossum 2 open-source 3 portable 4 orienté objet 5 dynamique 6 extensible 7 support pour l intégration

Plus en détail

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8)

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8) Architecture des Ordinateurs Partie III : Liens avec le système d exploitation 2. Génération de code David Simplot simplot@fil.univ-lille1.fr Objectifs Voir la génération de code ainsi que les mécanismes

Plus en détail

Chapitre 1 Introduction aux compilateurs (et aux interpréteurs)

Chapitre 1 Introduction aux compilateurs (et aux interpréteurs) Chapitre 1 Introduction aux compilateurs (et aux interpréteurs) Jean Privat Université du Québec à Montréal INF5000 Théorie et construction des compilateurs Automne 2013 Jean Privat (UQAM) 01 Introduction

Plus en détail

MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO

MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2012-2013 S. Kramm (IUT Rouen) MCII1 - Cours 1 2012-2013 1 / 36 Sommaire 1 Langages de

Plus en détail

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

Plus en détail

Correction de programmes : Logique de Hoare

Correction de programmes : Logique de Hoare 16 juillet 2009 Logique et informatique Vis-à-vis de l informatique la logique a au moins 2 rôles : 1 Externe et théorique (fondements de l informatique - Électif en S4) : Logique comme méta-informatique

Plus en détail

COMPUTER SCIENCE Paris 7 Denis Diderot

COMPUTER SCIENCE Paris 7 Denis Diderot COMPUTER SCIENCE Paris 7 Denis Diderot LICENCE 1 SEMESTER 2 (Spring) o Initiation à la programmation 2 o Concepts informatiques o Internet et outils o Mathématiques élémentaires 2 COURSE DESCRIPTION Initiation

Plus en détail

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

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.intro.univ-tours.fr/~antoine/ UFR Sciences et Techniques

Plus en détail

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voie : Biologie, chimie, physique et sciences de la Terre (BCPST) Discipline : Informatique Première et seconde années

Plus en détail

Programmation Avancée - Prolog

Programmation Avancée - Prolog Programmation Avancée - Prolog N. Prcovic Programmation Avancée - Prolog p.1/26 Introduction La programmation logique est une forme particulière de programmation déclarative. La programmation déclarative

Plus en détail

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Installation Client (licence réseau) de IBM SPSS Modeler 14.2 Installation Client (licence réseau) de IBM SPSS Modeler 14.2 Les instructions suivantes permettent d installer IBM SPSS Modeler Client version 14.2 en utilisant un licence réseau. Ce présent document

Plus en détail

Introduction au langage Ada

Introduction au langage Ada Séance 2 Introduction au langage Ada Objectifs : Pourquoi Ada? Évolution des langages de programmation Particularités d'ada Structure d un programme Ada. 2008 Ingénierie du logiciel avec Ada N.KERZAZI

Plus en détail

Algorithmique dans les nouveaux programmes de Première

Algorithmique dans les nouveaux programmes de Première Algorithmique dans les nouveaux programmes de Première Journée de présentation des nouveaux programmes de Première académie de Nice Les nouveaux programmes de Première 2011 1 I. Introduction 1. Acquis

Plus en détail

IFT313 Introduction aux langages formels

IFT313 Introduction aux langages formels Département d informatique IFT313 Introduction aux langages formels Plan de cours Été 2014 Enseignant : Froduald Kabanza Courriel : kabanza@usherbrooke.ca Local : D4-1022-2 Téléphone : (819) 821-8000 poste

Plus en détail

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15 Tabledesmatières 1 IntroductionaulangageJava 1 1.1 EnvironnementJava... 1 1.1.1 Compilation... 2 1.1.2 Interprétation... 2 1.2 Programmationorientée-objet... 2 1.2.1 Classe... 3 1.2.2 Objet... 4 2 Syntaxedulangage

Plus en détail

Installation Client (licence de site) de IBM SPSS Modeler 14.2

Installation Client (licence de site) de IBM SPSS Modeler 14.2 Installation Client (licence de site) de IBM SPSS Modeler 14.2 Les instructions suivantes permettent d installer IBM SPSS Modeler Client version 14.2 en utilisant un licence de site. Ce présent document

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

Chapitre 2 : Abstraction et Virtualisation

Chapitre 2 : Abstraction et Virtualisation Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et

Plus en détail

Cours architectures des ordinateurs

Cours architectures des ordinateurs Université KASDI MERBAH Ouargla Faculté des Nouvelles Technologies de l Information et de la Communication Département d Informatique et Technologie de l information Cours architectures des ordinateurs

Plus en détail

Introduction à la Programmation Sylvain Tisserant

Introduction à la Programmation Sylvain Tisserant INFO 1 Introduction à la Programmation Sylvain Tisserant Mes coordonnées Enseignant-Chercheur Professeur au département IRM depuis sa création (ES2I, ESIL, Polytech Marseille) Directeur du département

Plus en détail

Préparation à l examen EFA en Macro

Préparation à l examen EFA en Macro Préparation à l examen EFA en Macro Exercice sur les macros en Word / Excel Les questions suivantes doivent constituer un bref rafraîchissement et vous aider à situer le niveau de vos connaissances : Question

Plus en détail

201-8F4-ST Mathématiques appliquées à l informatique

201-8F4-ST Mathématiques appliquées à l informatique DESCRIPTION DES COURS DE FORMATION SPÉCIFIQUE TECHNIQUES DE L INFORMATIQUE (420.A0) 201-8F4-ST Mathématiques appliquées à l informatique Préalable : Mathématique TS ou SN 5 e ou équivalent Ce cours a pour

Plus en détail

Langage fonctionnel et Récursivité

Langage fonctionnel et Récursivité Langage fonctionnel et Récursivité Programmation Fonctionnelle Master 2 I2L apprentissage Sébastien Verel verel@lisic.univ-littoral.fr http://www-lisic.univ-littoral.fr/~verel Université du Littoral Côte

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

Gérard Swinnen. Apprendre à programmer avec. Python

Gérard Swinnen. Apprendre à programmer avec. Python Gérard Swinnen Apprendre à programmer avec Python Avec plus de 40 pages de corrigés d exercices! Objet Multithreading Événements Bases de données Programmation web Programmation réseau Unicode... Groupe

Plus en détail

Introduction. Didier Verna

Introduction. Didier Verna 1/46 didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/46 Table des matières 1 2 3 4 Autres contemporains 5 Organisation des systèmes d exploitation 4/46 Qu est-ce qu un système d exploitation? Ça?

Plus en détail

Introduction à LINQ. Chapitre 1. Qu est-ce que LINQ?

Introduction à LINQ. Chapitre 1. Qu est-ce que LINQ? Chapitre 1 Introduction à LINQ En surfant sur le Web, vous trouverez différentes descriptions de LINQ (Language Integrated Query), et parmi elles : LINQ est un modèle de programmation uniforme de n importe

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Système. Introduction aux systèmes informatiques

Système. Introduction aux systèmes informatiques Introduction aux systèmes informatiques Système Un système est une collection organisée d'objets qui interagissent pour former un tout Objets = composants du système Des interconnexions (liens) entre les

Plus en détail