Introduction: Concepts de la programmation

Slides:



Advertisements
Présentations similaires
GEF 435 Principes des systèmes d’exploitation
Advertisements

Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Chapitre annexe. Récursivité
Formation universitaire à .NET: Introduction à C#
Piles, files et listes: notions théoriques
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Sensibilisation à l’Algorithmique
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
INTRODUCTION.
Introduction : Compilation et Traduction
Initiation à la programmation et algorithmique cours 3
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Langage C Licence Informatique 3ème année
Principes de programmation (suite)
Initiation à la programmation et algorithmique
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Programmation orientée objet
Démarche de résolution de problèmes
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Algorithmique et Programmation
Les éléments de base de l’algorithmique
Bibliothèque standard du C++
Chap 4 Les bases de données et le modèle relationnel
Standard Template Library (STL)
Programmation Initiation Aux Langages C et C++ Bruno Permanne 2006.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Les fichiers indexés (Les B-arbres)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Semaine #1 INF135 par Frédérick Henri.
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Les systèmes multiplateformes
Partie II Sémantique.
Standard Template Library
Sensibilisation a la modelisation
Structures de données IFT Abder Alikacem Gestion des exceptions Module 2 Département dinformatique et de génie logiciel Édition Septembre 2009.
Patrons de conceptions de créations
Cours Architecture des Systèmes Informatiques
Paradigmes des Langages de Programmation
INTRODUCTION.
GESTION ET TRAITEMENT DES ERREURS
Algorithmique et programmation (1)‏
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
Module I3 algorithmique et programmation
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Introduction au langage C Fonctions et Procédures
ETNA – 1ème année Guillaume Belmas –
Nexeto.  Entreprise ◦ ADINFO ◦ Nexeto  Besoins ◦ Objectifs ◦ Outils/Moyens ◦ ATS ◦ Planning  Projet de stage ◦ Conception ◦ Réalisation  Bilan  Résultats.
Initiation à la conception des systèmes d'informations
Sémantique des instructions pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
ISBN Chapitre 10 L'implémentation des sous- programmes.
Introduction et Généralités sur l’Algorithmique
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
S. Domas Système d’Exploitation Make et la construction d’exécutables 1ère annéeIUT Belfort-Montbéliard.
Cours 5 - Trois algorithmes de tri d'un tableau
Introduction à la Programmation Orientée Objet
Scripts et fonctions Instructions de contrôle
développeur informatique
Transcription de la présentation:

Introduction: Concepts de la programmation Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Introduction: Concepts de la programmation Qu’est-ce qu’un programme informatique? Un texte définissant un modèle d’objets du monde réel et une suite d’opérations sur les données de ce modèle. Il réalise un algorithme. Les objets réels sont représentés par des données: variables, constantes, structures de données, objets, modules et classes du langage de programmation. Le programme contient aussi des déclarations qui annoncent le nombre, les noms et les types des données. Le texte du programme s’appelle code source et doit être traduit (compilé) en forme exécutable (programme en langage machine, « code binaire ») par un compilateur du langage, ici le langage Ada. La compilation associe les « unités de compilation » du programme à des bibliothèques (programmes prédéfinis et pré-compilés) par un éditeur de liens (linker) pour produire un programme exécutable unique. Ce processus s’appelle parfois « building » en anglais d’où une expression du genre Build no x.y.z pour désigner une version compilée précise.

Mise-au-point, déboguage. Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Mise-au-point, déboguage. Un programme peut comporter des erreurs ou bogues (bugs en anglais) qui le font échouer ou crasher - interruption brutale de son exécution – ou qui le mènent à ne plus répondre s’il entre dans une boucle infinie (ou une récursion infinie ce qui revient au même). Le programmeur doit identifier et corriger la source de ces erreurs, chose qu’il vaut mieux prévenir que guérir.

Lisibilité, maintenabilité, portabilité, réutilisabilité Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Lisibilité, maintenabilité, portabilité, réutilisabilité Une fois qu’un programme est entré en utilisation, on pense souvent à y ajouter des fonctions ou à le rendre plus facile à utiliser: sa maintenance. Cela revient souvent à un second programmeur et il est essentiel que le programme soit clair et structuré. Idéalement il doit être portable vers de nouveaux systèmes. Un programme d’application typique a des centaines de milliers de lignes et une durée de vie de 5 ans.

Spécifications et implantations (implémentations) Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Spécifications et implantations (implémentations) En Ada on sépare la spécification de l’implantation pour une partie de programme: quoi vs comment. Le spécification est une signature qui décrit les données et les opérations du point de vue de leur utilisation. Elle suffit pour combiner cette partie du programme avec le reste. Cela permet de développer de grands programmes en équipe tout en clarifiant et simplifiant l’utilisation du code produit par d’autres.

Types de données abstraits, structures de données Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Types de données abstraits, structures de données Pour que le programmeur ne réinvente pas la roue à l’écriture de chacun de ses programmes, on peut construire des paquetages de types de données abstraits. Chacun contient la spécification d’un type de données et ses opérations sans aucune description de son implantation. Les plus universels sont les piles, files, listes, tableaux et arbres que nous allons étudier dans ce module. Chaque structure de donnée a une application typique. Pile: « LIFO » parcours d’arbre, exécution de blocs de programme etc. File: « FIFO » canal de communication, file d’attente. Liste: chaînes de caractères, ensembles d’éléments etc. Tableaux: matrices, tables à accès direct sans insertion etc. Arbres: ensembles d’éléments avec insertion, effacement, bases de données etc.

Licence d’informatique 2ème année Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Généricité Dans certains langages la description d’un algorithme est entremêlée avec la nature exacte des données qu’il manipule. Par exemple un algorithme de tri de chaînes de caractères n’y ressemble pas tout à fait à un algorithme de tri de fichiers ou de nombres. Ce manque d’expressivité du langage est source de complications et donc de pertes de temps et d’erreurs. Pour y remédier Ada permet de séparer autant que possible l’algorithme de ses données en écrivant des unité de bibliothèques génériques c’est-à-dire qui fonctionnent pour tout type de données ayant certaines propriétés minimales. On peut par exemple écrire un algorithme de tri qui fonctionne aussi bien pour des chaînes de caractères que des nombres, fichiers, tableaux etc. Pour cela il suffit d’avoir une fonction de comparaison de deux éléments pour le type donné.

Héritage et polymorphismes Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Héritage et polymorphismes Il arrive parfois qu’on désire modifier les données d’un programme pour les rendre plus détaillées. Par exemple on a des enregistrements décrivant des comptes bancaires auxquels il faut tout à coup ajouter des numéros de sécurité sociale. Dans un programme classique cela peut nécessiter beaucoup de petits changements. La programmation orientée objet utilise la notion d’héritage pour faciliter cela. Elle permet de décrire les nouveaux comptes bancaires comme un type « fils » des anciens comptes bancaires. Le type « fils » hérite de toute la structure du type « père » mais y ajoute une donnée « numéro sécu ». Le programme peut alors être modifié sans revenir sur ses parties déjà complétées. Le polymorphisme permet d’adapter les opérations d’une partie de programme aux données en lui fournissant des opérations adaptées avant de lancer son exécution. On dit qu’il s’agit d’une partie de programme polymorphe, c’est-à-dire qui s’adapte à la forme de ses données par la forme de ses opérations.

Introduction aux concepts de programmation par le langage Ada: Licence d’informatique 2ème année. Module INF3-2: initiation à l’algorithmique (Ada) Gaétan Hains, LACL. Introduction aux concepts de programmation par le langage Ada: Types de base et leurs opérations Structures de contrôle Procédure, fonctions et paquetages Définir de nouveaux types, pointeurs et enregistrements. On verra aussi des notions plus générales: Introduction aux structures de données et algorithmes: Tableaux Pointeurs et structures linéaires Arbres Complexité, performance et algorithmes de tri.