Comparaison entre Pharo et un langage POO comme Java ======
Dans cette séquence, nous allons aborder ... c un autre langage de programmation objet comme Java.
Alors, en Pharo, on ne manipule que des objets.... eurs dans des variables.
La présetation suivante va vous montrer quelques équivalences entre Java et Pharo pour bien comprendre les différences et les re
directeur de recherche, à l'Inria.
Cette séance va être consacrée à un survol de la syntaxe. Donc, on va vous montrer l'entièreté de la syntaxe. Ne pas s'... ontrer l'ensemble de ce qu'il y a dans Pharo.
On va voir les éléments syntaxiques principaux. On va voir qu’il y a trois sortes de messages. Et puis, on
ue spécifique.
Comme on peut le percevoir ici, on va avoir différents modèles pour modéliser une même ... n avec une approche procédurale ====
D'abord, on va faire une comparaison entre une modélisation proc... . Si on regarde la modélisation procédurale, elle va faire un focus sur les données et les procédures.... d'un autre côté, est complètement différent. Il **va déléguer** le calcul de l'aire à d'autres entités
TP simple en Pharo ======
Dans cette séquence on va revisiter la syntaxe Pharo, c'est-à-dire qu'on va la revoir quasiment entièrement sur un exemple conc... n toute simple: http donc issue du monde réel. On va analyser le code et revoir tous les points syntax... analyse.
C'est une application Web classique qui va nous afficher des informations sur des livres. Je
poo}}
====== Pharo : les itérateurs ======
On va revenir sur les collections et voir comment est-c... le code que vous devriez écrire par exemple en Java pour parcourir une collection.
<code java>
ArrayList<String> strings = new ArrayList<String>();
for(... verra dans la suite du cours, ''collect:'', où on va collecter l'ensemble des noms des personnes.
En
ent été introduites dans la dernière version de Java.
Pour définir un bloc syntaxiquement, on va utiliser les crochets
<code smalltalk>
[ expr1. expr2. ... n du bloc ne provoque pas son exécution =====
On va parler de définition d'un block. Je vais vous pre... xpressions à l'intérieur vont être évaluées et on va nous rendre le résultat: 8. Par contre, si l'une
s dans Pharo. Les boucles sont des messages qu'on va envoyer à des objets. Il existe plein de types de boucles différents. Ce sont des messages qu'on va envoyer soit à des nombres, à des collections, vo... nvoie le message "timesRepeat" à l'entier 4 et on va lui passer en paramètre un block. Si vous vous ra... les blocs dans la séquence précédente. Ce message va permettre de répéter l'évaluation de ce block plu
aignoires. Ce qu'on voit, c'est que cette machine va créer des milliers de baignoires. Une classe, c'est pareil. Elle va créer des milliers d'objets. Chaque objet est une... sin, etc. Ce qu'il faut voir, c'est qu'une classe va spécifier toutes les variables qui définissent la... matériau qui est utilisé. Après, chaque baignoire va pouvoir être un peu différente.
La classe va éga
* qui est une collection dynamique dont la taille va grossir à chaque fois qu'on ajoute des éléments d... qui est une collection de taille fixe. Et puis on va accéder aux éléments en fonction d'un indice.
**Set**, qui va contenir des éléments mais sans doublon. On ne po... mmune pour l'ensemble des collections. Et puis on va voir celles qui sont en gras, on voit les explici
ntéressés à l'héritage et à self et au lookup, on va s' intéresser à **super**.
Dans cette séquence, ... vais vous dire ici, c'est pareil en Pharo et en Java.
{{exemple_super.png}}
Dans L'exemple ci-dessus,... es (implémentation de ''bar'' de la classe B). On va essayer de réfléchir un peu à ce qui se passe.
S... lltalk>
B new bar
"> 20"
</code>
Dans ce cas, on va le faire étape par étape. On envoie le message ''
ur de recherche à l'Inria.
Dans cette séance, on va regarder un petit peu ce que c'est que Pharo.
Ph... e et uniforme, il tient en quatre lignes, donc on va regarder ça.
{{syntaxe_pharo.png}}
Ci-dessus, v... dre la syntaxe juste en lisant ce transparent, on va avoir plusieurs séances où on va décrypter et vous permettre de vraiment comprendre comment cette syn
recherche, à l'Inria.
Bonjour, cette semaine, on va commencer à rentrer un peu plus dans le vif du su... c'est de minimiser le nombre de parenthèses et on va voir ça à l'œuvre. On prend un exemple. On prend ... s binaires et des messages à mots-clefs. Donc, on va voir ça. Les messages unaires, en gros c'est un r... inctif, c'est les deux points qu'il y a ici et on va voir ce genre de choses. Ce qu'il faut voir, c'es
et. C'est une **entité** qui a un **état** et qui va **exécuter des méthodes en réaction à un message**.
L'objet est une petite entité qui va vivre dans le système informatique et qui a plusi... roisième, une identité.
Et en plus, cette entité va collaborer avec d'autres pour traiter des tâches ... s. Et sa collaboration avec le reste, c'est qu'on va le mettre dans une poignée de dés quand on joue à
à un receveur vers une méthode, ou quelle méthode va être exécutée par rapport à tel message qui est e... ution, lorsqu'on envoie un message à un objet, on va aller regarder quelles sont les méthodes de la cl... t objet.
Donc on a un **algorithme de lookup qui va chercher la méthode correspondante au message ''area''**, qui va trouver cette méthode-là. Le corps de **la méthod
e, j'envoie le message "go: 200" à ma tortue. Que va-t-elle faire ? Elle va réagir et avancer en laissant une trace au sol. Donc, **un objet va réagir à un message en exécutant une méthode** qui va modifier l'environnement ou l'objet.
Il faut voi