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
de Java.
Pour définir un bloc syntaxiquement, on va utiliser les crochets
<code smalltalk>
[ expr1. ... 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 ... du block contient une erreur, évidemment l'erreur va être retournée au moment de l'évaluation du bloc.
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
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
eurs dans des variables.
La présetation suivante va vous montrer quelques équivalences entre Java et ... age ''new'' à la classe ''OrderedCollection'' qui va créer une nouvelle instance de cette collection. ... sse que celle où ce code se trouve.
En Pharo, on va pouvoir constater que la syntaxe est beaucoup plu... exemple de syntaxe Java, le ''regThred.start();'' va permettre de lancer le processus fils.
En Pharo
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 à
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
poo}}
====== Pharo : les itérateurs ======
On va revenir sur les collections et voir comment est-c... verra dans la suite du cours, ''collect:'', où on va collecter l'ensemble des noms des personnes.
En ... k vaudra successivement 2, -3, 4, etc. Et puis on va envoyer le message unaire ''abs'', qui calcule la valeur absolue. Donc ça veut dire qu'on va demander la valeur absolue de ce nombre.
Une foi
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
et au fur à mesure de l'utilisation du stream on va pouvoir avancer ou reculer pour pouvoir lire ou é... ream. L'utilisation de ce stream au sein du block va créer une collection qui sera finalement retourné... 'Stream'' sur cette collection-là (ligne 2) et on va regarder les caractères un par un.
Une fois qu'o... aire, c'est envoyer le message next (ligne 6) qui va nous retourner l'élément juste après la position
à 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