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
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 prendre un autre exemple. Ici, on a une expression:
<co
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.... iquement grâce aux messages et à l'assignation de valeurs dans des variables.
La présetation suivante va vous montrer quelques équivalences entre Java et
poo}}
====== Pharo : les itérateurs ======
On va revenir sur les collections et voir comment est-c... la puissance des itérateurs en Pharo, et puis je vais vous donner un panorama des principaux itérateu... le code que vous devriez écrire par exemple en Java pour parcourir une collection.
<code java>
ArrayList<String> strings = new ArrayList<String>();
for(
{{tag>dev poo pharo mooc}}
====== Pharo : Les variables ======
Dans cette séquence, on va voir les variables et les différents types de variables qui existent en Pharo.
En fait, il existe deux grands ty
* **Dictionnary** (table de hachage, accès à clé/valeur)
**OrderedCollection** 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
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.... gramme.
Dans une vision procédurale du monde, je vais définir une procédure que je peux appeler 'pict
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
eInteger"
</code>
Là, j'ai écrit l'expression suivante ''1000 factorial class name''. Il se trouve qu... s'exécute exactement de la même manière que si j'avais mis toutes ces parenthèses:
<code>
(((1000 fact... d'avoir toutes ces parenthèses. Ce que le système va faire, c'est que quand vous avez des **messages**... ou à mots-clefs, ça marche dans les trois cas, il va toujours les **évaluer de gauche à droite**.
*
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 structure de vos objets. Par exemple, pour la baign
et au fur à mesure de l'utilisation du stream on va pouvoir avancer ou reculer pour pouvoir lire ou écrire des éléments dans le stream.
===== Aperçu de ... ream. L'utilisation de ce stream au sein du block va créer une collection qui sera finalement retourné... $a"
"Après le premier appel à next le curseur a avancé d'un élément"
stream position.
"> 1"
stream u
z plusieurs expressions qui se suivent et donc on va devoir les séparer: on va les séparer avec un point ''.''.
C'est ce que montre l'exemple ci-dessus. ... sendPacket: 'HelloWorld'
</code>
On définit deux variables locales (ligne1), on définit une Workstati... un séparateur, ce n'est pas un terminateur. En Java, vous seriez forcés de mettre un point-virgule à
recherche, à l'Inria.
Bonjour, cette semaine, on va commencer à rentrer un peu plus dans le vif du su... yntaxe de Pharo hérite de celle de Smalltalk qui avait été inventé pour apprendre aux enfants à progra... c'est de minimiser le nombre de parenthèses et on va voir ça à l'œuvre. On prend un exemple. On prend ... r un png, donc j'ai des parenthèses et ce png, je vais le convertir dans un objet graphique Pharo et p
ent dans d'autres langages à classes, notamment Java. Nous allons introduire du vocabulaire et une représentation graphique qu'on va réutiliser ensuite dans toutes les présentations ... tangle'', avec tout d'abord son nom, suivi de ses variables d'instance puis ses méthodes dans la trois... se, le nom de la classe ''ColoredRectangle'', ses variables d'instance, ses méthodes.
* La flèche ve