SlideShare a Scribd company logo
1 of 34
Download to read offline
Towards an improvement in the
understanding of the operation of
the interpreter of an object VM by
means of a graphical tool
Ing. Mariano J. Badoglio
Lic. Patricia S. Fracchia
Goal
Build a
graphic
tool
Facilitate
teaching
and
learning
Complex
topic:
Operation
of Virtual
Machine
Interpreter
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Why a graphic tool?
A picture is worth …
It is effective to face
complex scenarios rich
in knowledge and
information.
• It helps to transmit,
process and manage
It has significant
features:
• Is kind
• It could be understood in
only one shoot.
• It is "addictive", viral,
open, suggestive, inspiring
• Opens the possibility to
explore and motivates to
learn more.
It allows an effective
understanding
• The human being
processes images 600
times faster than texts
and, remember 80% of
what he see, compared to
20% of what he read.
• «A picture is worth a
thousand words.»
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
The difficulty for teaching and learning
the subject
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Topic complexity
Abstract ideas covering
Activities that are pending execution and that must be
resumed later
Impossibility to directly observe the operation of the
interpreter
Introducción – Conceptos de base
Smalltalk
Virtual
Machine
Virtual
Image
Compiler /
Interpreter
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Sistema Smalltalk
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Smalltalk
Virtual Image
System objects
Virtual Machine
Hardware
devices
Machine
language
routines
Compiler / Interpreter
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Compiler
Interpreter
Compiler /
Interpreter
•From source code…
•The compiler generates binary code
to be executed on a real processor.
•From source code…
•The interpreter translates and
executes the instructions
dynamically.
•From source code…
•The compiler generates
intermediate binary code to be
executed in a virtual processor.
•The interpreter translates and
executes on a real processor.
Development sequence
• Writing the source
code (String)
1.
Programming
• Translation of source
to bytecodes.
• Generation of the
CompiledMethod
2. Compilation
CompiledMethod
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Operation of the Interpreter
Interpreter
State of Interpreter
Cycle of Interpreter
Contexts
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Operation of the Interpreter
• CompiledMethod
• Location of next bytecode to be excecuted.
• Receiver and arguments
• Temporary variables
• Stack
State of Interpreter
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Operation of the Interpreter
• 1. Fetch the
Bytecode
• 2. Increment the
instruction
pointer
• 3. Excecute the
Bytecode
Cycle del
Intérprete
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Operation of the Interpreter
Contexts
The state of the interpreter is saved on contexts.
There will be many contexts in the system at any time
The context that represents the current state of the
interpreter is called the active context
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Case study
Show the quote of a book in a specific format.
Class Diagram
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Case study
• 1. Writing the source
of #formatoCorto
•Writing the source
code (String)
1.
Programming
•Translation of source
to bytecodes.
•Generation of the
CompiledMethod
2. Compilation
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Case study
• 2. Compiled method of
#formatoCorto
• Writing the source
code (String)
1.
Programming
• Translation of source
to bytecodes.
• Generation of the
CompiledMethod
2. Compilation
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Study case
• Execution of the method in the Pharo system.
• The objects will be inspected for the
visualization of the process of executing a
method.
• We will show the steps and their results based
on the information provided by the Pharo
system.
• The objective is to expose the complexity of
the operation of the interpreter.
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Excecuting #formatoCorto
• Excecuting the method
to visualize its result
– We have an object of the
class #Libro (Book),
already created.
– Through the inspector
we will proceed to
excecute the method
#formatoCorto.
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
• Excecution step by
step:
– The MethodContext
is created in order to
excecute
#formatoCorto.
– It contains the
interpreter’s state.
Excecution of #formatoCorto
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Excecution of #formatoCorto
• State:
– Location of next
bytecode to excecute
(PC).
– Receptor and
arguments
– Temporary variables
– Stack
– CompiledMethod
No temporary
variables
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
• Excecution of #autor
– It only returns the value
of a variable, so it is not
necesary to generate a
new context.
– The result will be saved
on top of the stack.
– We will proceed to show
the excecution via the
cycle of the Interpreter.
Excecution of #formatoCorto
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
• Excecution of #autor.
• 1. Fetch the Bytecode
– PC 66 => Bytecode 208
• 2. Increment Instruction pointer
– PC = PC + 1 => PC = 67
• 3. Excecute the bycode
– 208 -> Excecute unary method
#autor.
– The result is saved on the top of
the stack.
– Instruction pointer updated.
Excecution of #formatoCorto
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
• Excecution of
#nombreYApellido.
– It returns the name and
surname of the autor
concatenated by a space (‘ ‘).
– The method is sent to the first
element on the stack: the
object autor.
– Its excecution will require the
creation of a new context.
– The result will besaved on top
of #formatoCorto excecution
context stack.
Excecution of #formatoCorto
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
• Excecution of
#nombreYApellido.
• 1. Fetch the Bytecode
– PC 67 => Bytecode 209
• 2. Increment instruction pointer
– PC = PC + 1 => PC = 68
• 3. Excecute the Bytecode
– 209 -> Excecute unary method
#nombreYApellido
– A new context is created.
– Actual context is suspended.
Excecution of #formatoCorto
• Excecution of
#nombreYApellido.
– This is the new
context needed to
excecute the
method
#nombreYApellido.
Excecution of #formatoCorto
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Excecution of #nombreYApellido.
1. Fetch the Bytecode
– PC 58 => Bytecode 208
2. Increment the instruction pointer
– PC = PC + 1 => PC = 59
3. Excecute the Bytecode
– 208 -> Excecution of unary
method #nombre
– No new context is created,
the result is pushed to the
top of the stack.
Excecution of #formatoCorto
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
• Excecution of
#nombreYApellido
1. Next step is the excecution of
method comma (#,) and then
the method #apellido all in the
same way.
2. The final result will return to the
caller context that is suspended,
and is pushed to the top of the
stack.
Excecution of #formatoCorto
• Excecution of
#nombreYApellido.
1. The suspended methos gets
the excecution flow and
become active.
2. The result of the last method is
now on the top of the stack.
Excecution of #formatoCorto
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
• Excecution of
#formatoCorto.
1. Now we move the excecution
up to bytecode pointed by PC
72.
2. Here we could see that at the
top of the stack are the name
of the book and the name and
surname of the autor.
3. By excecuting the remaining
Bytecodes those strings will be
concatenated generating the
final result.
Excecution of #formatoCorto
Graphic tool
Main screen mock-up
• Elements on
screen:
– Excecution
sequence.
– Source code
of method
being in
excecution.
– Active
context.
– Suspended
context.
– Object
Memory.
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Graphic tool
Main screen mock-up
• Navigation
of objects
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Graphic tool
Conclusions
Graphics complements the orality.
They allow the simultaneous exposure of
concepts, observation and understanding
of their interrelation.
Helps to attract and maintain attention
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
Graphic tool
Conclusions
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
They help highlight the most important
concepts.
They materialize abstract ideas, decreasing
possible erroneous interpretations.
They are the means used by our brain to
represent, process and transform large
amounts of information.
Graphic tool
Conclusions
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
They are a very important resource that
collaborates in the didactic transposition.
In the universe of human knowledge, pedagogy allows
the stars of knowledge to be brought closer, didactics
reach those more distant.
René Arango
Thanks!
Questions?
Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo

More Related Content

Similar to Towards an improvement in the understanding of the operation of the interpreter of an object vm by means of a graphical tool - by Mariano Badoglio & Patricia Fracchia

สาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศสาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศ
Ae Naiong
 

Similar to Towards an improvement in the understanding of the operation of the interpreter of an object vm by means of a graphical tool - by Mariano Badoglio & Patricia Fracchia (20)

20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs20210809 story book_driven_new_system_development_nuxtjs
20210809 story book_driven_new_system_development_nuxtjs
 
Non-Blocking Strategies for FFI
 Non-Blocking Strategies for FFI Non-Blocking Strategies for FFI
Non-Blocking Strategies for FFI
 
Matlab Serial Port
Matlab Serial PortMatlab Serial Port
Matlab Serial Port
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Workshop 1 july 28
Workshop 1 july 28Workshop 1 july 28
Workshop 1 july 28
 
rake puppetexpert:create - Puppet Camp Silicon Valley 2014
rake puppetexpert:create - Puppet Camp Silicon Valley 2014rake puppetexpert:create - Puppet Camp Silicon Valley 2014
rake puppetexpert:create - Puppet Camp Silicon Valley 2014
 
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
Easy contributable internationalization process with Sphinx @ PyCon APAC 2016
 
[CB20] Reflex: you give me a parser, I give you a token generator by Paolo Mo...
[CB20] Reflex: you give me a parser, I give you a token generator by Paolo Mo...[CB20] Reflex: you give me a parser, I give you a token generator by Paolo Mo...
[CB20] Reflex: you give me a parser, I give you a token generator by Paolo Mo...
 
สาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศสาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศ
 
Exploring the Internet of Things Using Ruby
Exploring the Internet of Things Using RubyExploring the Internet of Things Using Ruby
Exploring the Internet of Things Using Ruby
 
Knee deep in the undef - Tales from refactoring old Puppet codebases
Knee deep in the undef  - Tales from refactoring old Puppet codebasesKnee deep in the undef  - Tales from refactoring old Puppet codebases
Knee deep in the undef - Tales from refactoring old Puppet codebases
 
AKS Computing Schemes of Work 201314
AKS Computing Schemes of Work 201314AKS Computing Schemes of Work 201314
AKS Computing Schemes of Work 201314
 
Wait, IPython can do that?! (30 minutes)
Wait, IPython can do that?! (30 minutes)Wait, IPython can do that?! (30 minutes)
Wait, IPython can do that?! (30 minutes)
 
Graph-Tool in Practice
Graph-Tool in PracticeGraph-Tool in Practice
Graph-Tool in Practice
 
visualbasic.ppt
visualbasic.pptvisualbasic.ppt
visualbasic.ppt
 
Microsoft kafka load imbalance
Microsoft   kafka load imbalanceMicrosoft   kafka load imbalance
Microsoft kafka load imbalance
 
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
 
Easy contributable internationalization process with Sphinx @ pyconsg2015
Easy contributable internationalization process with Sphinx @ pyconsg2015Easy contributable internationalization process with Sphinx @ pyconsg2015
Easy contributable internationalization process with Sphinx @ pyconsg2015
 
But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...
 
Pitfalls of Object Oriented Programming by SONY
Pitfalls of Object Oriented Programming by SONYPitfalls of Object Oriented Programming by SONY
Pitfalls of Object Oriented Programming by SONY
 

More from FAST

Powerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming LanguagesPowerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming Languages
FAST
 
Constructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden EngineConstructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden Engine
FAST
 
Demystifying the creation of coding tools
Demystifying the creation of coding toolsDemystifying the creation of coding tools
Demystifying the creation of coding tools
FAST
 
Application Starter: the entry point for your application
Application Starter: the entry point for your applicationApplication Starter: the entry point for your application
Application Starter: the entry point for your application
FAST
 
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
FAST
 
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the worldVASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
FAST
 
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting WorkshopHands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
FAST
 

More from FAST (20)

Threads, Critical Sections, and Termination
Threads, Critical Sections, and TerminationThreads, Critical Sections, and Termination
Threads, Critical Sections, and Termination
 
OOP with Smalltalk
OOP with SmalltalkOOP with Smalltalk
OOP with Smalltalk
 
Powerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming LanguagesPowerlang: a Vehicle for Lively Implementing Programming Languages
Powerlang: a Vehicle for Lively Implementing Programming Languages
 
Constructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden EngineConstructing 3D scenes with Woden Engine
Constructing 3D scenes with Woden Engine
 
Demystifying the creation of coding tools
Demystifying the creation of coding toolsDemystifying the creation of coding tools
Demystifying the creation of coding tools
 
Application Starter: the entry point for your application
Application Starter: the entry point for your applicationApplication Starter: the entry point for your application
Application Starter: the entry point for your application
 
Improving the Pharo VM
Improving the Pharo VMImproving the Pharo VM
Improving the Pharo VM
 
What is (not) Pharo 8?
What is (not) Pharo 8?What is (not) Pharo 8?
What is (not) Pharo 8?
 
Stargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIsStargate: an interstellar journey to RESTful APIs
Stargate: an interstellar journey to RESTful APIs
 
Opening Smalltalks 2019
Opening Smalltalks 2019Opening Smalltalks 2019
Opening Smalltalks 2019
 
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção JrSmalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
Smalltalk Computers, Past and Future by Jecel Mattos de Assumpção Jr
 
Adaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção JrAdaptive Compilation by Jecel Mattos de Assumpção Jr
Adaptive Compilation by Jecel Mattos de Assumpção Jr
 
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
Choosing where to run our objects: the S8 Smalltalk approach by Description:F...
 
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
Using 128 GPU cores, Tensorflow and VASmalltalk to detect Kolsh beers with ES...
 
Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...Improving VASmalltalk deployment, availability and scalability with Docker by...
Improving VASmalltalk deployment, availability and scalability with Docker by...
 
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the worldVASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
VASmalltalk and Raspberry Pi powering the largest MIDI instrument of the world
 
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting WorkshopHands-on Raspberry Pi and VA Smalltalk - Starting Workshop
Hands-on Raspberry Pi and VA Smalltalk - Starting Workshop
 
Live typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan WilkinsonLive typing: Update and what's next by Hernan Wilkinson
Live typing: Update and what's next by Hernan Wilkinson
 
Enhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth BermanEnhanced Email Protocol Framework for VAST by Seth Berman
Enhanced Email Protocol Framework for VAST by Seth Berman
 
VA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth BermanVA Smalltalk Product Update by Seth Berman
VA Smalltalk Product Update by Seth Berman
 

Recently uploaded

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Recently uploaded (20)

Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
How to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in PakistanHow to Check GPS Location with a Live Tracker in Pakistan
How to Check GPS Location with a Live Tracker in Pakistan
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 

Towards an improvement in the understanding of the operation of the interpreter of an object vm by means of a graphical tool - by Mariano Badoglio & Patricia Fracchia

  • 1. Towards an improvement in the understanding of the operation of the interpreter of an object VM by means of a graphical tool Ing. Mariano J. Badoglio Lic. Patricia S. Fracchia
  • 3. Why a graphic tool? A picture is worth … It is effective to face complex scenarios rich in knowledge and information. • It helps to transmit, process and manage It has significant features: • Is kind • It could be understood in only one shoot. • It is "addictive", viral, open, suggestive, inspiring • Opens the possibility to explore and motivates to learn more. It allows an effective understanding • The human being processes images 600 times faster than texts and, remember 80% of what he see, compared to 20% of what he read. • «A picture is worth a thousand words.» Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 4. The difficulty for teaching and learning the subject Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo Topic complexity Abstract ideas covering Activities that are pending execution and that must be resumed later Impossibility to directly observe the operation of the interpreter
  • 5. Introducción – Conceptos de base Smalltalk Virtual Machine Virtual Image Compiler / Interpreter Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 6. Sistema Smalltalk Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo Smalltalk Virtual Image System objects Virtual Machine Hardware devices Machine language routines
  • 7. Compiler / Interpreter Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo Compiler Interpreter Compiler / Interpreter •From source code… •The compiler generates binary code to be executed on a real processor. •From source code… •The interpreter translates and executes the instructions dynamically. •From source code… •The compiler generates intermediate binary code to be executed in a virtual processor. •The interpreter translates and executes on a real processor.
  • 8. Development sequence • Writing the source code (String) 1. Programming • Translation of source to bytecodes. • Generation of the CompiledMethod 2. Compilation CompiledMethod Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 9. Operation of the Interpreter Interpreter State of Interpreter Cycle of Interpreter Contexts Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 10. Operation of the Interpreter • CompiledMethod • Location of next bytecode to be excecuted. • Receiver and arguments • Temporary variables • Stack State of Interpreter Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 11. Operation of the Interpreter • 1. Fetch the Bytecode • 2. Increment the instruction pointer • 3. Excecute the Bytecode Cycle del Intérprete Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 12. Operation of the Interpreter Contexts The state of the interpreter is saved on contexts. There will be many contexts in the system at any time The context that represents the current state of the interpreter is called the active context Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 13. Case study Show the quote of a book in a specific format. Class Diagram Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 14. Case study • 1. Writing the source of #formatoCorto •Writing the source code (String) 1. Programming •Translation of source to bytecodes. •Generation of the CompiledMethod 2. Compilation Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 15. Case study • 2. Compiled method of #formatoCorto • Writing the source code (String) 1. Programming • Translation of source to bytecodes. • Generation of the CompiledMethod 2. Compilation Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 16. Study case • Execution of the method in the Pharo system. • The objects will be inspected for the visualization of the process of executing a method. • We will show the steps and their results based on the information provided by the Pharo system. • The objective is to expose the complexity of the operation of the interpreter. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 17. Excecuting #formatoCorto • Excecuting the method to visualize its result – We have an object of the class #Libro (Book), already created. – Through the inspector we will proceed to excecute the method #formatoCorto. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 18. • Excecution step by step: – The MethodContext is created in order to excecute #formatoCorto. – It contains the interpreter’s state. Excecution of #formatoCorto Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 19. Excecution of #formatoCorto • State: – Location of next bytecode to excecute (PC). – Receptor and arguments – Temporary variables – Stack – CompiledMethod No temporary variables Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 20. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo • Excecution of #autor – It only returns the value of a variable, so it is not necesary to generate a new context. – The result will be saved on top of the stack. – We will proceed to show the excecution via the cycle of the Interpreter. Excecution of #formatoCorto
  • 21. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo • Excecution of #autor. • 1. Fetch the Bytecode – PC 66 => Bytecode 208 • 2. Increment Instruction pointer – PC = PC + 1 => PC = 67 • 3. Excecute the bycode – 208 -> Excecute unary method #autor. – The result is saved on the top of the stack. – Instruction pointer updated. Excecution of #formatoCorto
  • 22. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo • Excecution of #nombreYApellido. – It returns the name and surname of the autor concatenated by a space (‘ ‘). – The method is sent to the first element on the stack: the object autor. – Its excecution will require the creation of a new context. – The result will besaved on top of #formatoCorto excecution context stack. Excecution of #formatoCorto
  • 23. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo • Excecution of #nombreYApellido. • 1. Fetch the Bytecode – PC 67 => Bytecode 209 • 2. Increment instruction pointer – PC = PC + 1 => PC = 68 • 3. Excecute the Bytecode – 209 -> Excecute unary method #nombreYApellido – A new context is created. – Actual context is suspended. Excecution of #formatoCorto
  • 24. • Excecution of #nombreYApellido. – This is the new context needed to excecute the method #nombreYApellido. Excecution of #formatoCorto Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 25. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo Excecution of #nombreYApellido. 1. Fetch the Bytecode – PC 58 => Bytecode 208 2. Increment the instruction pointer – PC = PC + 1 => PC = 59 3. Excecute the Bytecode – 208 -> Excecution of unary method #nombre – No new context is created, the result is pushed to the top of the stack. Excecution of #formatoCorto
  • 26. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo • Excecution of #nombreYApellido 1. Next step is the excecution of method comma (#,) and then the method #apellido all in the same way. 2. The final result will return to the caller context that is suspended, and is pushed to the top of the stack. Excecution of #formatoCorto
  • 27. • Excecution of #nombreYApellido. 1. The suspended methos gets the excecution flow and become active. 2. The result of the last method is now on the top of the stack. Excecution of #formatoCorto Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 28. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo • Excecution of #formatoCorto. 1. Now we move the excecution up to bytecode pointed by PC 72. 2. Here we could see that at the top of the stack are the name of the book and the name and surname of the autor. 3. By excecuting the remaining Bytecodes those strings will be concatenated generating the final result. Excecution of #formatoCorto
  • 29. Graphic tool Main screen mock-up • Elements on screen: – Excecution sequence. – Source code of method being in excecution. – Active context. – Suspended context. – Object Memory. Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 30. Graphic tool Main screen mock-up • Navigation of objects Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 31. Graphic tool Conclusions Graphics complements the orality. They allow the simultaneous exposure of concepts, observation and understanding of their interrelation. Helps to attract and maintain attention Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo
  • 32. Graphic tool Conclusions Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo They help highlight the most important concepts. They materialize abstract ideas, decreasing possible erroneous interpretations. They are the means used by our brain to represent, process and transform large amounts of information.
  • 33. Graphic tool Conclusions Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo They are a very important resource that collaborates in the didactic transposition. In the universe of human knowledge, pedagogy allows the stars of knowledge to be brought closer, didactics reach those more distant. René Arango
  • 34. Thanks! Questions? Ing. Mariano Badoglio – Lic. Patricia Fracchia – UTN-FRRo