ift 232 méthodes de conception orientées objets
DESCRIPTION
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 ) - PowerPoint PPT PresentationTRANSCRIPT
IFT 232 Méthodes de Conception
Orientées Objets
Introduction
Plan : programmer concevoirQu’est-ce qu’un langage de programmation ?
Langage de programmation En tant que filtre pour concevoir le mondeEn 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 cultureApproche 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
http://www.charlatans.info/esquineige.shtml
Éléments de base d’un langage de programmation
VariableType: 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ôleConditionnelles, boucles, primitivesExceptions
Invocation / activation des calculsAppel de procédures, appel de fonctions, démonsTransmission de messages, passage de paramètresChoix de la “fonction” activée
• Pattern matching, polymorphisme, héritage
Éléments de base d’un langage de programmation
Statut de certains élémentsFonctions, classes réflexivitéModifications en cours d’exécution de certains éléments
ParallélismeSynchrone, asynchrone, fil d’exécution (thread)…
CalculsCompilation, interprétation, machine virtuellePile 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
Langage de programmation
NIVEAU Lisp
Lexical Des parenthèses, des symboles,
Et très peu de formes spéciales
Syntaxique (define (somme l)
(define res 0)
(define liste l)
(while (notNull? l)
(Set! res (+ res (car l)))
(set! liste (cdr liste)))
res)
Sémantique (define (somme l)
(if (null l) 0
(somme (+ (car l) (somme (cdr l)))))
Pragmatique (define (somme l)
(accumulate (lambda (x l) (+ x (car l)))
0
l))
La programmation par objets
Cinq éléments de baseInstance
Classe
Héritage
Méthode
Transmission de messages
La culture “orientée objets”Modélisation
Unified Modelling Language (UML)
Le langageLa 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 programmationRefactorisationSchémas de conception
Méthodologie de développement de systèmesProgrammation 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 objetsObjet, acteur, prototype
Classe
Instance
Transmission de message
Méthode
Héritage simple \ multiple, interface, polymorphisme, surcharge (“overloading”)
LANGAGE de programmation
NIVEAU Application au langage naturel
Lexical Vocabulaire
Erreurs d’orthographe
Syntaxique Grammaire
Règles
Sémantique Signification
Erreurs de sens
Pragmatique Interprétation en tenant compte du contexte
Esthétique
Une culture est aussi un filtre…une certaine façon de concevoir le monde
Programmer
--> cuisine
Inuits
Lexical ???
Syntaxique Mode de cuisson
Cuisson (trop) longue
Mode de cuissonHuile d’olive
Al denteTemps de cuisson
Sémantique Spaghetti alla bolognese
Choix des pâtes
CombinaisonCrème, parmesan
Pragmatique Pizzaghetti Antipasto
Primo pasto
Secundo pasto
http://owl.english.purdue.edu/handouts/esl/esltensverb.html
http://www.aidenet.eu/conjugaison07b.htm