180 likes | 285 Views
IFT 232 Méthodes de Conception Orientées Objets. Introduction. Plan : programmer concevoir. Qu’est-ce qu’un langage de programmation ? L angage de programmation En tant que filtre pour conce voir le monde En tant que culture La programmation par objets ( POO )
E N D
IFT 232 Méthodes de Conception Orientées Objets Introduction
Plan : programmer concevoir • Qu’est-ce qu’un langage de programmation ? • Langage de programmation • En tant que filtrepourconcevoir le monde • En tant que culture • La programmation par objets(POO) • Un survol du territoire • Vers l’apprentissage de la culture Java
Etude des langages de programmation • Etape 1: Identification et classification des éléments de base des langages de programmation • Etape 2: Regroupement de ces éléments en familles de langages • Approche horizontale: • Regrouper les langages similaires en termes de syntaxe et sémantique • la programmation par objets: Smalltalk, Java, C++, Eiffel… • La programmation procédurale: C, Pascal, Modula… • Etape 3: Langage de programmation ==> une culture • Approche verticale • La syntaxe et la sémantique ne font pas un langage de programmation • Pour réellement comprendre un langage de programmation, il faut comprendre et intégrer sa culture
Éléments de base d’un langage de programmation • Variable • Type: typé | non typé, types primitifs, inférence de types, • Valeur: pointeurs, calculée par une fonction, ramasse-miettes, • Portée: lexicale, dynamique, locale, globale • Structure de contrôle • Conditionnelles, boucles, primitives • Exceptions • Invocation / activation des calculs • Appel de procédures, appel de fonctions, démons • Transmission de messages, passage de paramètres • Choix de la “fonction” activée • Pattern matching, polymorphisme, héritage
Éléments de base d’un langage de programmation • Statut de certains éléments • Fonctions, classes réflexivité • Modifications en cours d’exécution de certains éléments • Parallélisme • Synchrone, asynchrone, fil d’exécution (thread)… • Calculs • Compilation, interprétation, machine virtuelle • Pile d’exécution, tas (“heap”) • Évaluation paresseuse,backtracking
Familles de langages de programmation • Programmation par objets • Programmation procédurale • Programmation fonctionnelle • Programmation par contraintes • Programmation logique • Programmation par règles • etc.
Langage de programmation • Langage • Filtre sur le monde • S’insère dans une culture
La programmation par objets • Cinq éléments de base • Instance • Classe • Héritage • Méthode • Transmission de messages
La culture “orientée objets” • Modélisation • Unified Modelling Language (UML) • Le langage • La syntaxe et la sémantique du langage, e.g. Java, Smalltalk… • Les conventions • Programmation • Nomenclature • Les composants JavaBeans reposent sur ces conventions • La pratique de programmation • Refactorisation • Schémas de conception • Méthodologie de développement de systèmes • Programmation agile
To be a ``most important'' innovation, an innovation has to be an idea that is very widely used and is critically important where it applies. • To be a "software" innovation, it has to be a technological innovation that impacts how computers are programmed (e.g., an approach to programming or an innovative way to use a computer). • An innovation is a new idea. And in this paper, what's meant is a new idea in software technology. • http://www.dwheeler.com/innovation/innovation.html
Programmation par objets • Objet, acteur, prototype • Classe • Instance • Transmission de message • Méthode • Héritage simple \ multiple, interface, polymorphisme, surcharge (“overloading”)
Une culture est aussi un filtre…une certaine façon de concevoir le monde