Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.

Slides:



Advertisements
Présentations similaires
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Advertisements

Langages orientés objets
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
JavaScript Nécessaire Web.
La programmation par objets Principes et concepts Etude de Smalltalk.
La programmation par objets
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
Emacs Laurent Pierron
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Système de gestion d'entrées pour un cinéma Scanvion Michel – Etudiant 4.
Projet ISN: developper une calculatrice sous android.
Ruby votre prochain langage de programmation préféré Guillaume Cottenceau LinuxDays Genève 22 Mai 2007.
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
Flex Web Roster 1TER 2012 Engilberge, Lludice, M'rah.
Plugin Eclipse pour le langage LUA Responsable Fabrice Huet Chef de Projet Jérôme Poisson Développeurs Lu Deng Guillaume Ghibaudo Julien Raverdino Anthony.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
Libre sur Seiche Avec Sweet home 3D aménagez votre intérieur ! 26 mai 2012.
1 / 15 Animation - 3 décembre 2008 Les Logiciels libres éducatifs, Des Solutions pour les écoles.
Introduction à Ruby Julien De Bona Bawet, 15 avril 2006.
Windows NT/2000/XP Enjeux et contraintes techniques
JAVA.
Framework EHop/Ecenvir
Licence Informatique DEVELOPPEUR ANDROID
Modèle objet : les classes
java : l'héritage (rappel)
Environnement de développement des BD
Introduction au Langage Pascal
Comprendre l’environnement Web
Environnement du développement de BD ORACLE REPORTS 10g
Pas de variable globale
Les notions de classe et d'objet
JavaScript.
5.
Le « Bugtracking » Alejandro FERNANDEZ – Etienne FONTEIX
Algorithmique et programmation de modèles numériques
Principes de programmation (suite)
MOUTON Marielle - DUMETZ François - LEVECQUE Alain
HTML.
GOBO Ne pas partir de zéro
fonctionnalités iiS iis
Langages de programmation TP10
Programmation Orientée Objet I. Introduction
Cours Programmation Orientée Objet (POO) 2eme année Licence-LMD
5.
Les interfaces en PHP.
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Windev.
Intégration des applications Java dans les environnements libres
Pharo et la POO.
GRAPHISME PAR ORDINATEUR
Développement d’un réseau social de collaboration destiné aux médecins radiologues Soutenance de projet de fin d’étude En vue de l’obtention du diplôme.
SRT2 APACHE.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Plus de 4000 langages....
Introduction à Internet
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Les classes et les objets
Informatique de base Pr. Namar Ydriss Cours 1: Introduction
Paradigme Orienté Objet
DESIGN PATTERN BUILDER KADRI LOUBNA CHARMATI SEWSEN.
Schéma de conception Factory Method Exemple
Programmation par Objets et Java
INTERFACE ET POLYMORPHISME
Lecture/Écriture de fichiers (I/O)
Variables et accès en Java
Bases de données Singleton pour la connexion
L’apprentissage par la robotique Mr. Zouari Lazhar
Transcription de la présentation:

Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc

2 Présentation des Langages Dynamiques : Typage Dynamique ● Variables non typées ● Valeurs typées ● Pas de vérification de type par les compilateurs ● Ruby, Perl, Python...

3 Spécificités des Langages Dynamiques ● Liaisons dynamiques ● Prototypages rapides ● Absence d'aide des compilateurs ● Moins de protection des méthodes

4 Smalltalk ● Typage dynamique ● Tout est objet : même les entiers et les classes ● Tout est modifiable : classes ouvertes etc. ● Tout est cohérent : pas d'exception à la règle ● Multi plates-formes (machine virtuelle) ● Garbage collector ● Closures (blocs)

5 Smalltalk ● Héritage simple ● Classes publiques ● Méthodes publiques ● Variables d'instances protégées ● Pas d'interface mais classes abstraites ● Valeur de retour par défaut : l'objet courant

6 Smalltalk : Historique ● 1972 : Première version inspirée par Simula ● 1976 : Nouvelle conception : – Hiérarchie des classes avec racine unique – Syntaxe du byte-code fixée – Sémaphores ● 1978 : Expérimentation avec les 8086 ● 1980 : Norme Smalltalk-80

7 Smalltalk : Syntaxe ● Nombre limité de mots réservés : – self, super, true, false, nil, thisContext – 52 en Java, 38 en Ruby, 76 en C# ● Nommage des méthodes : envoie: unMessage a: unePersonne ● Appel de méthodes : adam := Personne new. eve := Personne new. adam envoie: 'Fallait pas' a: eve

8 Smalltalk : Syntaxe ● Pas de constructeur : – seulement des méthodes qui retournent de nouvelles instances Personne class>>nom: uneChaine |personne| personne := self new. personne nom: uneChaine. ^ personne eve := Personne nom: 'Eve'.

9 Smalltalk : Syntaxe ● Utilisation de fonctions anonymes : salaries select: [:salarie | salarie estFemme] ● Pas d'instruction de contrôle (if, while, etc.) : (eve messageRecu) ifTrue: [eve senVeut] ● Création d'une classe : Object subclass: #Personne instanceVariableNames: 'prenom nom genre' classVariableNames: '' poolDictionaries: '' category: 'Annuaire-modele'

10 Squeak ● Implémentation de Smalltalk ● Environnement de développement ● Pas de fichiers sources ● Machine virtuelle implémentée en Smalltalk ● Dernière version stable : décembre 2006

11 Squeak : Installation ● Téléchargement de la machine virtuelle : 1 exécutable ( ) ● Téléchargement d'une image : 2 fichiers ● Drag&Drop de l'image sur la machine virtuelle ● C'est installé !

12 Utilisation 1: Apprentissage de la Programmation ● Créé à l'origine pour les enfants ● Nombreux projets ● Projet « One Laptop per Child »

13 Utilisation 2: Environnement de Développement

14 Utilisation 3: Développement web ● Seaside – Orientation composant – Abstractions (http, html, javascript...) ● Magritte – Génération de formulaires – Méta modélisation

15 Fonctionnalités de l'Environnement de Développement ● Interface sous forme d'un bureau ● Navigateur de code – Découpage en paquetages et catégories – Code source ouvert et disponible – Compilation incrémentale ● Outils – Outils de recherche de méthodes – Exécution du code et inspections rapides – Navigateur pour les tests...

16 Et Maintenant ● Une démonstration !

17 Conclusion ● Conclusion – Langages à typage dynamique – Smalltalk – Squeak ● Points de vue personnels