Introduction to Pharo

28
Introduction to @Chis_Andrei @AliakseiSyrel

Transcript of Introduction to Pharo

Page 1: Introduction to Pharo

Introduction to

@Chis_Andrei @AliakseiSyrel

Page 2: Introduction to Pharo

language and environment

minimal and uniformobject-oriented

Page 3: Introduction to Pharo

language and environment

minimal and uniformobject-oriented

live programming

Page 4: Introduction to Pharo

Clara Allende, Jean-Baptiste Arnaud, Jean-Christophe Bach, Philippe Back, Clement Bera, Alexandre Bergel, Torsten Bergmann, Vincent Blondeau, Noury Bouraqadi, Santiago Bragagnolo, Johan Brichau, Sven Van Caekenberghe, Damien Cassou, Nicolas Cellier, Guido Chari, Dimitris Chloupis, Andrei Chis, Ben Coman, Bernardo Contreras, Tommaso Dal Sasso, Jan Van De Sandt, Christophe Demarey, Sean DeNigris, Marcus Denker, Martin Dias, Stephane Ducasse, Stephan Eggermont, Luc Fabresse, Johan Fabry, Hilaire Fernandes, Jerome Garcia, Tudor Girba, Thierry Goubier, Jigyasa Grover, Kris Gybels, Norbert Hartl, Dale Henrichs, Pablo Herrero, Nicolai Hess, Pavel Krivanek, Juraj Kubelka, Jan Kurs, Laurent Laffont, Jannik Laval, Kevin Lanvin, Max Leske, David Lewis, Diego Lont, Esteban Lorenzano, Tim Mackinnon, Attila Magyar, Esteban Maringolo, Stefan Marr, Max Mattone, Martin Mc Clure, Eliot Miranda, Alain Plantec, Guillermo Polito, Damien Pollet, Stefan Reichhart, Mark Rizun, Udo Schneider, Ignacio Sniechowski, Henrik Sperre Johansen, Igor Stasenko, Aliaksei Syrel, Ciprian Teodorov, Camille Teruel, Sebastian Tleye, Yuriy Tymchuk, Peter Uhnak, Andres Valloud, Sven Van Caekenberghe, Thomas Vincent, Jan Vrany, Martin Walk, Richard Wettel, Dmitri Zagidulin

Page 5: Introduction to Pharo

minimal and uniform

Page 6: Introduction to Pharo

everything happensby sending messages to objects

everything isan object

Page 7: Introduction to Pharo

everything happensby sending messages to live objects

everything isa live object

Page 8: Introduction to Pharo

postman.send(email,recipient);

Page 9: Introduction to Pharo

postman.send(email,recipient);

Page 10: Introduction to Pharo

postman send email recipient

Page 11: Introduction to Pharo

postman send email to recipient

Page 12: Introduction to Pharo

postman send: email to: recipient

Page 13: Introduction to Pharo

postman send: email to: recipient.

Page 14: Introduction to Pharo

nil the undefined object true, false boolean objects self the receiver of the current message super the receiver in the superclass context thisContext the current invocation on the call stack

Page 15: Introduction to Pharo

oddIntegersIn: numbers | count | count := 0. numbers do: [ :each |

(each % 2) == 0 ifTrue: [ count := count + 1 ] ]. ^ count.

Page 16: Introduction to Pharo

OrderedCollection>>#do: aBlock firstIndex to: lastIndex do: [ :index | aBlock value: (array at: index) ]

Page 17: Introduction to Pharo

assemblerDSL push: asm RBP; mov: asm RSP -> asm RBP; mov: 1024 -> asm RAX; mov: asm RBP -> asm RSP; pop: asm RBP; ret.

Page 18: Introduction to Pharo

identifierParser := #letter asParser , #word asParser star

Page 19: Introduction to Pharo

language and environment

minimal and uniformobject-oriented

Page 20: Introduction to Pharo

language and environment

Page 21: Introduction to Pharo

vm

image

Page 22: Introduction to Pharo

vm

image

Page 23: Introduction to Pharo

vm

domain objects

Page 24: Introduction to Pharo

vm

domain objects parser, compiler, IDE …

Page 25: Introduction to Pharo

live programming

Page 26: Introduction to Pharo

live objects

Page 27: Introduction to Pharo

pharo.org

Page 28: Introduction to Pharo

@Chis_Andrei @AliakseiSyrel