SlideShare a Scribd company logo
Marcus Denker

  Universität Bern




© Marcus Denker
Roadmap



>    Research

>    Teaching and Advising Students

>    Open Source Involvement

>    Future



© Marcus Denker                       2
Roadmap



>    Research

>    Teaching and Advising Students

>    Open Source Involvement

>    Future



© Marcus Denker                       3
The Systems of the Future...




>    ... are getting larger and more complex

>    ... are getting more and more dependent on each other

>    ... thus are working in a changing environment




© Marcus Denker                                              4
Three Research Directions




>    Reflective System

>    Context Oriented Programming

>    Virtual Machines




© Marcus Denker                     5
1. Reflective Systems




                  Program                  Description




                            Query and Change


© Marcus Denker                                          6
Sub-Method Reflection



>    Method are Objects
     — e.g in Smalltalk


>    No high-level model for sub-method elements
     — Message sends
     — Assignments
     — Variable access


>    Structural reflection stops at the granularity of methods


© Marcus Denker                                                 7
Sub-Method Reflection



>    Many tools work on sub method level
     — Profiler, Refactoring Tool, Debugger, Type Checker

>    Communication between tools needed
     — Example: Code coverage

>    All tools use different representations
     — Tools are harder to build
     — Communication not possible


© Marcus Denker                                            8
Solution: Reflective Methods


> Annotated, persistent AST
> Bytecode generated on demand and cached


    :ReflectiveMethod                                           :CompiledMethod
                     annotation               compiledMethod

                                                               #(12 13 45 38 98 128
                     annotation
                                  reflectiveMethod              84 72 42 77 22 28 59
                                                                 32 7 49 51 87 64)




             Tools                                                     VM



© Marcus Denker                                                                       9
Implementation: Persephone



>    Implementation of Reflective Methods for Squeak

>    Smalltalk compiler generates Reflective Methods
     — Translated to bytecode on demand

>    Open Compiler: Plugins
     — Called before code generation
     — Transform a copy of the AST

                           Marcus Denker, Stéphane Ducasse, Adrian Lienhard
                           Philippe Marschall: Sub-Method Reflection
                           Journal of Object Technology, vol. 6, no. 9,
© Marcus Denker                                                           10
Example: Pluggable Type-System


>    Example for textual annotations


      bitFromBoolean: aBoolean <:type: Boolean :>
      ^ (aBoolean ifTrue: [1] ifFalse: [0]) <:type: Integer :>



> Optional, pluggable type-system
> Types stored as annotations in the Reflective Methods

                  Niklaus Haldiman, Marcus Denker, Oscar Nierstrasz:
                  “Practical, Pluggable Types for a Dynamic Language,”
                  (Journal of Computer Languages, Systems and Structures, 2009)

© Marcus Denker                                                                   11
Example: Partial Behavioral Reflection


>    Joined Project with University of Chile

> Realized Reflex for a dynamic languages
> Support unanticipated use.


              Marcus Denker, Stéphane Ducasse and Éric Tanter:
              “Runtime Bytecode Transformation for Smalltalk”
              (Journal of Computer Languages, Systems and Structures, 2006)


              David Röthlisberger, Marcus Denker and Éric Tanter:
              “Unanticipated Partial Behavioral Reflection: Adapting
              Applications at Runtime”
              (Journal of Computer Languages, Systems and Structures, 2008)

© Marcus Denker                                                               12
Using Sub-method Structure




>    Realized Reflex model on top of sub-method reflection

>    Very good performance
                                                  meta-object


                          links
                                                   activation
                                                   condition
                                                  source code
                                                     (AST)


© Marcus Denker                                                 13
Feature Annotations



>   Features modeled                                               instruction is
                                                                    meta-object
    as traces
                         links

>   Many Problems
                                                                    source code
    — Space                                                            (AST)
    — Merging Traces

>   Solution: annotate
    structure
                                 Marcus Denker, Orla Greevy, Oscar Nierstrasz:
                                 Supporting Feature Analysis with Runtime
                                 Annotations (PCODA 2007)

© Marcus Denker                                                                  14
2. Context Oriented Programming




>    Software needs to work in changing environments

>    Code to deal with context specific behavior spread all
     over the system

>    No representation of context

                  Martin von Löwis, Marcus Denker and Oscar Nierstrasz:
                  Context-Oriented Programming: Beyond Layers
                  (ICDL 2007)

© Marcus Denker                                                           15
Context-Aware Aspects




>    Aspects: modularizing crosscutting concerns

>    Context code crosscuts application code

                  Éric Tanter, Kris Gybels, Marcus Denker and Alexandre Bergel:
                  “Context-Aware Aspects”
                  (Software Composition (SC 2006), LNCS, vol. 4089)



© Marcus Denker                                                                   16
ChangeBoxes



>    Programming Languages do not model change

>    Changeboxes:
     — All changes to code are recorded
     — Execution of old versions



                  Marcus Denker, Tudor Gîrba, Adrian Lienhard, Oscar Nierstrasz,
                  Lukas Renggli and Pascal Zumkehr:
                  “Encapsulating and Exploiting Change with Changeboxes”
                  (ICDL 2007)


© Marcus Denker                                                                    17
MetaContext




>    Problem: applying behavioral reflection on system
     classes (Numbers, Array...).

>    Reason: meta-object call recursion

>    Solution: meta-execution context
                  Marcus Denker, Mathieu Suen and Stéphane Ducasse:
                  “The Meta in Meta-object Architectures”
                  (Proceedings of TOOLS EUROPE 2008, LNBIP, vol. 11)


© Marcus Denker                                                        18
3. Virtual Machines




>    Late-bind compilation for dynamic languages

>    Provide virtual, easy to change “hardware”




© Marcus Denker                                    19
Squeak J3




>    Just-In-Time Compiler for Squeak Smalltalk

>    Ported from PowerPC to Intel
     — 2000/2001 while at Disney


                              Marcus Denker:
                              Entwurf von Optimierungen für Squeak
                              (Studienarbeit, University of Karlsruhe, 2002)


© Marcus Denker                                                                20
Bytecode-to-Bytecode optimization


>    Virtual Machines are very complex
     — Especially dynamic Optimizers

> Idea: Move optimization out of the VM
> AOStA: Eliot Miranda, 2002/2003


>    My Masterʼs Thesis, 2004
     — Prototype for Squeak.

                  Marcus Denker:
                  Erweiterung eines statischen Übersetzers zu einem
                  Laufzeitübersetzungssystem
                  (Masters thesis, University of Karlsruhe, 2004)

© Marcus Denker                                                       21
Interpreter Inline Caches




>    Bring some ideas of high-performance JIT Compilers
     back to simple Interpreters

>    Interesting for Bytecode-to-Bytecode optimization

                  Michael Haupt, Robert Hirschfeld and Marcus Denker:
                  Type feedback for bytecode interpreters
                  (ICOOOLPS'2007)



© Marcus Denker                                                         22
Roadmap



>    Research

>    Teaching and Advising Students

>    Open Source Involvement

>    Future



© Marcus Denker                       23
Students




>    5 Master Projects, 1 Bachelor co-advised
     — Students contributed to research
     — 4 published as papers at conferences
     — 2 later extended to Journals

>    Google Summer of Code




© Marcus Denker                                 24
Courses and Lectures

>    Assistant
     — Dynamic Object-Oriented Programming with Smalltalk (2006,
       2007)
     — Smalltalk (2004). (Prof. Stephane Ducasse)


>    Lectures given as part of courses:
     — HPI Germany
     — Bern
     — University of Chile

>    Current: Compiler Construction, University Bern
     — Two Lectures on SSA and Optimizations

© Marcus Denker                                                    25
Roadmap



>    Research

>    Teaching and Advising Students

>    Open Source Involvement

>    Future



© Marcus Denker                       26
Squeak




>    Open Source Smalltalk System
     — Alan Kay, Dan Ingalls

>    Responsible for Version 3.9

>    Co-Founder Squeak Foundation
     — Board Member till 2007



                                    60.000 Downloads
© Marcus Denker                                        27
eToys


 >     Programming for Children

 >     On the OLPC ($100 Laptop)

 >     Based on Squeak




       — Worked with Alan Kayʼs group on Squeak
       — Founder, Squeak Germany e.V.
       — Translated Book “Powerful Ideas in the Classroom”

© Marcus Denker                                              28
Roadmap



>    Research

>    Teaching and Advising Students

>    Open Source Involvement

>    Future



© Marcus Denker                       29
Future Research




>    Context and Reflection

>    Bio-Inspired Reflective Languages

>    Compiler for Dynamic Languages




© Marcus Denker                         30
Context and Reflection




>    Reflection is powerful, but dangerous.

>    How can we control reflective structural change?

>    Continue work started with ChangeBoxes and
     MetaContext




© Marcus Denker                                        31
Runtime Compilers




>    Back to Bytecode-to-Bytecode Optimization

>    SIStA: Son-of-AOStA
     — revisit work done on AOStA

>    Research: Integrate with Reflection Framework




© Marcus Denker                                     32
Bio-Inspired Reflective Languages




>    Complex, ever-evolving, dynamic Systems?
     — They are everywhere!



>    Idea: <CENSORED> as a concept for reflective
     languages




© Marcus Denker                                    33
Future Teaching




>    Continue with advising Master and Bachelor Students

>    Possible Courses at University of Chile:
     —    Programming Languages
     —    Software Engineering
     —    Compiler Construction
     —    Virtual Machines




© Marcus Denker                                            34
Future Open Source



>    Pharo: Squeak, rebooted
     — Professional Development
     — Stable basis for Research
     — INRIA, France



>    Squeak by Example, OLPC Edition
     — SBE Focusing on Squeak for OLPC
     — Programming beyond eToys



© Marcus Denker                          35
Questions?




© Marcus Denker   36

More Related Content

What's hot

Design of digital video watermarking scheme using matlab simulink
Design of digital video watermarking scheme using matlab simulinkDesign of digital video watermarking scheme using matlab simulink
Design of digital video watermarking scheme using matlab simulink
eSAT Publishing House
 
Binary translation
Binary translationBinary translation
Binary translation
GFI Software
 
Christian Morbidoni (Net7) - WP3
Christian Morbidoni (Net7) - WP3Christian Morbidoni (Net7) - WP3
Christian Morbidoni (Net7) - WP3
Digitised Manuscripts to Europeana
 
Comparison of SVD & Pseudo Random Sequence based methods of Image Watermarking
Comparison of SVD & Pseudo Random Sequence based methods of Image WatermarkingComparison of SVD & Pseudo Random Sequence based methods of Image Watermarking
Comparison of SVD & Pseudo Random Sequence based methods of Image Watermarking
ijsrd.com
 
Digital Implementation of Artificial Neural Network for Function Approximatio...
Digital Implementation of Artificial Neural Network for Function Approximatio...Digital Implementation of Artificial Neural Network for Function Approximatio...
Digital Implementation of Artificial Neural Network for Function Approximatio...
IOSR Journals
 
Aw2419401943
Aw2419401943Aw2419401943
Aw2419401943
IJMER
 
Chapter 5 software design
Chapter 5   software designChapter 5   software design
Chapter 5 software design
Goutam Majumder
 
G0523444
G0523444G0523444
G0523444
IOSR Journals
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
ijceronline
 
Ph.D. Dissertation
Ph.D. DissertationPh.D. Dissertation
Ph.D. Dissertation
Sumant Tambe
 
Blind Image Watermarking Based on Chaotic Maps
Blind Image Watermarking Based on Chaotic MapsBlind Image Watermarking Based on Chaotic Maps
Blind Image Watermarking Based on Chaotic Maps
ITIIIndustries
 
RDB - Repairable Database Systems
RDB - Repairable Database SystemsRDB - Repairable Database Systems
RDB - Repairable Database Systems
Alexey Smirnov
 

What's hot (12)

Design of digital video watermarking scheme using matlab simulink
Design of digital video watermarking scheme using matlab simulinkDesign of digital video watermarking scheme using matlab simulink
Design of digital video watermarking scheme using matlab simulink
 
Binary translation
Binary translationBinary translation
Binary translation
 
Christian Morbidoni (Net7) - WP3
Christian Morbidoni (Net7) - WP3Christian Morbidoni (Net7) - WP3
Christian Morbidoni (Net7) - WP3
 
Comparison of SVD & Pseudo Random Sequence based methods of Image Watermarking
Comparison of SVD & Pseudo Random Sequence based methods of Image WatermarkingComparison of SVD & Pseudo Random Sequence based methods of Image Watermarking
Comparison of SVD & Pseudo Random Sequence based methods of Image Watermarking
 
Digital Implementation of Artificial Neural Network for Function Approximatio...
Digital Implementation of Artificial Neural Network for Function Approximatio...Digital Implementation of Artificial Neural Network for Function Approximatio...
Digital Implementation of Artificial Neural Network for Function Approximatio...
 
Aw2419401943
Aw2419401943Aw2419401943
Aw2419401943
 
Chapter 5 software design
Chapter 5   software designChapter 5   software design
Chapter 5 software design
 
G0523444
G0523444G0523444
G0523444
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 
Ph.D. Dissertation
Ph.D. DissertationPh.D. Dissertation
Ph.D. Dissertation
 
Blind Image Watermarking Based on Chaotic Maps
Blind Image Watermarking Based on Chaotic MapsBlind Image Watermarking Based on Chaotic Maps
Blind Image Watermarking Based on Chaotic Maps
 
RDB - Repairable Database Systems
RDB - Repairable Database SystemsRDB - Repairable Database Systems
RDB - Repairable Database Systems
 

Viewers also liked

Talk: Practical, Pluggable Types
Talk: Practical, Pluggable TypesTalk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
Marcus Denker
 
AOSTA
AOSTAAOSTA
Seaside: Agile Web Application Development with Squeak
Seaside: Agile Web Application Development with SqueakSeaside: Agile Web Application Development with Squeak
Seaside: Agile Web Application Development with Squeak
Marcus Denker
 
Pharo. One Year Later
Pharo. One Year LaterPharo. One Year Later
Pharo. One Year Later
Marcus Denker
 
Mlk ppt
Mlk pptMlk ppt
Mlk ppt
klotzman
 
Boostrapping a Smalltalk
Boostrapping a SmalltalkBoostrapping a Smalltalk
Boostrapping a Smalltalk
Marcus Denker
 
Presentation Social Media
Presentation Social MediaPresentation Social Media
Presentation Social Media
Claudia Dieterle
 
Social Media - Understanding what the Hype is all about
Social Media - Understanding what the Hype is all aboutSocial Media - Understanding what the Hype is all about
Social Media - Understanding what the Hype is all about
WSICorne
 
Squeak and Croquet
Squeak and CroquetSqueak and Croquet
Squeak and Croquet
Marcus Denker
 
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
Marcus Denker
 

Viewers also liked (10)

Talk: Practical, Pluggable Types
Talk: Practical, Pluggable TypesTalk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
 
AOSTA
AOSTAAOSTA
AOSTA
 
Seaside: Agile Web Application Development with Squeak
Seaside: Agile Web Application Development with SqueakSeaside: Agile Web Application Development with Squeak
Seaside: Agile Web Application Development with Squeak
 
Pharo. One Year Later
Pharo. One Year LaterPharo. One Year Later
Pharo. One Year Later
 
Mlk ppt
Mlk pptMlk ppt
Mlk ppt
 
Boostrapping a Smalltalk
Boostrapping a SmalltalkBoostrapping a Smalltalk
Boostrapping a Smalltalk
 
Presentation Social Media
Presentation Social MediaPresentation Social Media
Presentation Social Media
 
Social Media - Understanding what the Hype is all about
Social Media - Understanding what the Hype is all aboutSocial Media - Understanding what the Hype is all about
Social Media - Understanding what the Hype is all about
 
Squeak and Croquet
Squeak and CroquetSqueak and Croquet
Squeak and Croquet
 
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
 

Similar to Presentation about my Research

Reflection
ReflectionReflection
Reflection
Marcus Denker
 
Reflectivity Demo
Reflectivity DemoReflectivity Demo
Reflectivity Demo
Marcus Denker
 
Lecture: Reflection
Lecture: ReflectionLecture: Reflection
Lecture: Reflection
Marcus Denker
 
Reflection and Context
Reflection and ContextReflection and Context
Reflection and Context
Marcus Denker
 
Sub-Method Reflection
Sub-Method ReflectionSub-Method Reflection
Sub-Method Reflection
Marcus Denker
 
Beyond Text - Methods as Objects
Beyond Text - Methods as ObjectsBeyond Text - Methods as Objects
Beyond Text - Methods as Objects
Marcus Denker
 
The Reflectivity
The ReflectivityThe Reflectivity
The Reflectivity
ESUG
 
Demo: Reflectivity
Demo: ReflectivityDemo: Reflectivity
Demo: Reflectivity
Marcus Denker
 
Software Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience ReportSoftware Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience Report
Marcus Denker
 
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionUnanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
Marcus Denker
 
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionUnanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
ESUG
 
Unstuck
UnstuckUnstuck
Unstuck
Marcus Denker
 
Refactoring
RefactoringRefactoring
Refactoring
Marcus Denker
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
Radu_Negulescu
 
The meta of Meta-object Architectures
The meta of Meta-object ArchitecturesThe meta of Meta-object Architectures
The meta of Meta-object Architectures
Marcus Denker
 
micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...
eProsima
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
Araf Karsh Hamid
 
Doing Dropbox the Native Cloud Native Way
Doing Dropbox the Native Cloud Native WayDoing Dropbox the Native Cloud Native Way
Doing Dropbox the Native Cloud Native Way
Minio
 
08 refactoring
08 refactoring08 refactoring
08 refactoring
The World of Smalltalk
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
Amr E. Mohamed
 

Similar to Presentation about my Research (20)

Reflection
ReflectionReflection
Reflection
 
Reflectivity Demo
Reflectivity DemoReflectivity Demo
Reflectivity Demo
 
Lecture: Reflection
Lecture: ReflectionLecture: Reflection
Lecture: Reflection
 
Reflection and Context
Reflection and ContextReflection and Context
Reflection and Context
 
Sub-Method Reflection
Sub-Method ReflectionSub-Method Reflection
Sub-Method Reflection
 
Beyond Text - Methods as Objects
Beyond Text - Methods as ObjectsBeyond Text - Methods as Objects
Beyond Text - Methods as Objects
 
The Reflectivity
The ReflectivityThe Reflectivity
The Reflectivity
 
Demo: Reflectivity
Demo: ReflectivityDemo: Reflectivity
Demo: Reflectivity
 
Software Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience ReportSoftware Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience Report
 
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionUnanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
 
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionUnanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
 
Unstuck
UnstuckUnstuck
Unstuck
 
Refactoring
RefactoringRefactoring
Refactoring
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
 
The meta of Meta-object Architectures
The meta of Meta-object ArchitecturesThe meta of Meta-object Architectures
The meta of Meta-object Architectures
 
micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Doing Dropbox the Native Cloud Native Way
Doing Dropbox the Native Cloud Native WayDoing Dropbox the Native Cloud Native Way
Doing Dropbox the Native Cloud Native Way
 
08 refactoring
08 refactoring08 refactoring
08 refactoring
 
SE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design PatternsSE2_Lec 19_Design Principles and Design Patterns
SE2_Lec 19_Design Principles and Design Patterns
 

More from Marcus Denker

Soil And Pharo
Soil And PharoSoil And Pharo
Soil And Pharo
Marcus Denker
 
ConstantBlocks in Pharo11
ConstantBlocks in Pharo11ConstantBlocks in Pharo11
ConstantBlocks in Pharo11
Marcus Denker
 
Demo: Improved DoIt
Demo: Improved DoItDemo: Improved DoIt
Demo: Improved DoIt
Marcus Denker
 
First Class Variables as AST Annotations
First Class Variables as AST AnnotationsFirst Class Variables as AST Annotations
First Class Variables as AST Annotations
Marcus Denker
 
Supporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo SupportSupporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo Support
Marcus Denker
 
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"
Marcus Denker
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
Marcus Denker
 
Variables in Pharo
Variables in PharoVariables in Pharo
Variables in Pharo
Marcus Denker
 
Lecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinksLecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinks
Marcus Denker
 
Improving code completion for Pharo
Improving code completion for PharoImproving code completion for Pharo
Improving code completion for Pharo
Marcus Denker
 
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinksVUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
Marcus Denker
 
Slot Composition
Slot CompositionSlot Composition
Slot Composition
Marcus Denker
 
Lecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinksLecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinks
Marcus Denker
 
PHARO IOT
PHARO IOTPHARO IOT
PHARO IOT
Marcus Denker
 
Open-Source: An Infinite Game
Open-Source: An Infinite GameOpen-Source: An Infinite Game
Open-Source: An Infinite Game
Marcus Denker
 
Lecture: MetaLinks
Lecture: MetaLinksLecture: MetaLinks
Lecture: MetaLinks
Marcus Denker
 
PharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to PharoPharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to Pharo
Marcus Denker
 
Feedback Loops in Practice
Feedback Loops in PracticeFeedback Loops in Practice
Feedback Loops in Practice
Marcus Denker
 
Pharo6 - ESUG17
Pharo6 - ESUG17Pharo6 - ESUG17
Pharo6 - ESUG17
Marcus Denker
 
Pharo6
Pharo6Pharo6

More from Marcus Denker (20)

Soil And Pharo
Soil And PharoSoil And Pharo
Soil And Pharo
 
ConstantBlocks in Pharo11
ConstantBlocks in Pharo11ConstantBlocks in Pharo11
ConstantBlocks in Pharo11
 
Demo: Improved DoIt
Demo: Improved DoItDemo: Improved DoIt
Demo: Improved DoIt
 
First Class Variables as AST Annotations
First Class Variables as AST AnnotationsFirst Class Variables as AST Annotations
First Class Variables as AST Annotations
 
Supporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo SupportSupporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo Support
 
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Variables in Pharo
Variables in PharoVariables in Pharo
Variables in Pharo
 
Lecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinksLecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinks
 
Improving code completion for Pharo
Improving code completion for PharoImproving code completion for Pharo
Improving code completion for Pharo
 
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinksVUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
 
Slot Composition
Slot CompositionSlot Composition
Slot Composition
 
Lecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinksLecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinks
 
PHARO IOT
PHARO IOTPHARO IOT
PHARO IOT
 
Open-Source: An Infinite Game
Open-Source: An Infinite GameOpen-Source: An Infinite Game
Open-Source: An Infinite Game
 
Lecture: MetaLinks
Lecture: MetaLinksLecture: MetaLinks
Lecture: MetaLinks
 
PharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to PharoPharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to Pharo
 
Feedback Loops in Practice
Feedback Loops in PracticeFeedback Loops in Practice
Feedback Loops in Practice
 
Pharo6 - ESUG17
Pharo6 - ESUG17Pharo6 - ESUG17
Pharo6 - ESUG17
 
Pharo6
Pharo6Pharo6
Pharo6
 

Recently uploaded

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 

Recently uploaded (20)

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 

Presentation about my Research

  • 1. Marcus Denker Universität Bern © Marcus Denker
  • 2. Roadmap > Research > Teaching and Advising Students > Open Source Involvement > Future © Marcus Denker 2
  • 3. Roadmap > Research > Teaching and Advising Students > Open Source Involvement > Future © Marcus Denker 3
  • 4. The Systems of the Future... > ... are getting larger and more complex > ... are getting more and more dependent on each other > ... thus are working in a changing environment © Marcus Denker 4
  • 5. Three Research Directions > Reflective System > Context Oriented Programming > Virtual Machines © Marcus Denker 5
  • 6. 1. Reflective Systems Program Description Query and Change © Marcus Denker 6
  • 7. Sub-Method Reflection > Method are Objects — e.g in Smalltalk > No high-level model for sub-method elements — Message sends — Assignments — Variable access > Structural reflection stops at the granularity of methods © Marcus Denker 7
  • 8. Sub-Method Reflection > Many tools work on sub method level — Profiler, Refactoring Tool, Debugger, Type Checker > Communication between tools needed — Example: Code coverage > All tools use different representations — Tools are harder to build — Communication not possible © Marcus Denker 8
  • 9. Solution: Reflective Methods > Annotated, persistent AST > Bytecode generated on demand and cached :ReflectiveMethod :CompiledMethod annotation compiledMethod #(12 13 45 38 98 128 annotation reflectiveMethod 84 72 42 77 22 28 59 32 7 49 51 87 64) Tools VM © Marcus Denker 9
  • 10. Implementation: Persephone > Implementation of Reflective Methods for Squeak > Smalltalk compiler generates Reflective Methods — Translated to bytecode on demand > Open Compiler: Plugins — Called before code generation — Transform a copy of the AST Marcus Denker, Stéphane Ducasse, Adrian Lienhard Philippe Marschall: Sub-Method Reflection Journal of Object Technology, vol. 6, no. 9, © Marcus Denker 10
  • 11. Example: Pluggable Type-System > Example for textual annotations bitFromBoolean: aBoolean <:type: Boolean :> ^ (aBoolean ifTrue: [1] ifFalse: [0]) <:type: Integer :> > Optional, pluggable type-system > Types stored as annotations in the Reflective Methods Niklaus Haldiman, Marcus Denker, Oscar Nierstrasz: “Practical, Pluggable Types for a Dynamic Language,” (Journal of Computer Languages, Systems and Structures, 2009) © Marcus Denker 11
  • 12. Example: Partial Behavioral Reflection > Joined Project with University of Chile > Realized Reflex for a dynamic languages > Support unanticipated use. Marcus Denker, Stéphane Ducasse and Éric Tanter: “Runtime Bytecode Transformation for Smalltalk” (Journal of Computer Languages, Systems and Structures, 2006) David Röthlisberger, Marcus Denker and Éric Tanter: “Unanticipated Partial Behavioral Reflection: Adapting Applications at Runtime” (Journal of Computer Languages, Systems and Structures, 2008) © Marcus Denker 12
  • 13. Using Sub-method Structure > Realized Reflex model on top of sub-method reflection > Very good performance meta-object links activation condition source code (AST) © Marcus Denker 13
  • 14. Feature Annotations > Features modeled instruction is meta-object as traces links > Many Problems source code — Space (AST) — Merging Traces > Solution: annotate structure Marcus Denker, Orla Greevy, Oscar Nierstrasz: Supporting Feature Analysis with Runtime Annotations (PCODA 2007) © Marcus Denker 14
  • 15. 2. Context Oriented Programming > Software needs to work in changing environments > Code to deal with context specific behavior spread all over the system > No representation of context Martin von Löwis, Marcus Denker and Oscar Nierstrasz: Context-Oriented Programming: Beyond Layers (ICDL 2007) © Marcus Denker 15
  • 16. Context-Aware Aspects > Aspects: modularizing crosscutting concerns > Context code crosscuts application code Éric Tanter, Kris Gybels, Marcus Denker and Alexandre Bergel: “Context-Aware Aspects” (Software Composition (SC 2006), LNCS, vol. 4089) © Marcus Denker 16
  • 17. ChangeBoxes > Programming Languages do not model change > Changeboxes: — All changes to code are recorded — Execution of old versions Marcus Denker, Tudor Gîrba, Adrian Lienhard, Oscar Nierstrasz, Lukas Renggli and Pascal Zumkehr: “Encapsulating and Exploiting Change with Changeboxes” (ICDL 2007) © Marcus Denker 17
  • 18. MetaContext > Problem: applying behavioral reflection on system classes (Numbers, Array...). > Reason: meta-object call recursion > Solution: meta-execution context Marcus Denker, Mathieu Suen and Stéphane Ducasse: “The Meta in Meta-object Architectures” (Proceedings of TOOLS EUROPE 2008, LNBIP, vol. 11) © Marcus Denker 18
  • 19. 3. Virtual Machines > Late-bind compilation for dynamic languages > Provide virtual, easy to change “hardware” © Marcus Denker 19
  • 20. Squeak J3 > Just-In-Time Compiler for Squeak Smalltalk > Ported from PowerPC to Intel — 2000/2001 while at Disney Marcus Denker: Entwurf von Optimierungen für Squeak (Studienarbeit, University of Karlsruhe, 2002) © Marcus Denker 20
  • 21. Bytecode-to-Bytecode optimization > Virtual Machines are very complex — Especially dynamic Optimizers > Idea: Move optimization out of the VM > AOStA: Eliot Miranda, 2002/2003 > My Masterʼs Thesis, 2004 — Prototype for Squeak. Marcus Denker: Erweiterung eines statischen Übersetzers zu einem Laufzeitübersetzungssystem (Masters thesis, University of Karlsruhe, 2004) © Marcus Denker 21
  • 22. Interpreter Inline Caches > Bring some ideas of high-performance JIT Compilers back to simple Interpreters > Interesting for Bytecode-to-Bytecode optimization Michael Haupt, Robert Hirschfeld and Marcus Denker: Type feedback for bytecode interpreters (ICOOOLPS'2007) © Marcus Denker 22
  • 23. Roadmap > Research > Teaching and Advising Students > Open Source Involvement > Future © Marcus Denker 23
  • 24. Students > 5 Master Projects, 1 Bachelor co-advised — Students contributed to research — 4 published as papers at conferences — 2 later extended to Journals > Google Summer of Code © Marcus Denker 24
  • 25. Courses and Lectures > Assistant — Dynamic Object-Oriented Programming with Smalltalk (2006, 2007) — Smalltalk (2004). (Prof. Stephane Ducasse) > Lectures given as part of courses: — HPI Germany — Bern — University of Chile > Current: Compiler Construction, University Bern — Two Lectures on SSA and Optimizations © Marcus Denker 25
  • 26. Roadmap > Research > Teaching and Advising Students > Open Source Involvement > Future © Marcus Denker 26
  • 27. Squeak > Open Source Smalltalk System — Alan Kay, Dan Ingalls > Responsible for Version 3.9 > Co-Founder Squeak Foundation — Board Member till 2007 60.000 Downloads © Marcus Denker 27
  • 28. eToys > Programming for Children > On the OLPC ($100 Laptop) > Based on Squeak — Worked with Alan Kayʼs group on Squeak — Founder, Squeak Germany e.V. — Translated Book “Powerful Ideas in the Classroom” © Marcus Denker 28
  • 29. Roadmap > Research > Teaching and Advising Students > Open Source Involvement > Future © Marcus Denker 29
  • 30. Future Research > Context and Reflection > Bio-Inspired Reflective Languages > Compiler for Dynamic Languages © Marcus Denker 30
  • 31. Context and Reflection > Reflection is powerful, but dangerous. > How can we control reflective structural change? > Continue work started with ChangeBoxes and MetaContext © Marcus Denker 31
  • 32. Runtime Compilers > Back to Bytecode-to-Bytecode Optimization > SIStA: Son-of-AOStA — revisit work done on AOStA > Research: Integrate with Reflection Framework © Marcus Denker 32
  • 33. Bio-Inspired Reflective Languages > Complex, ever-evolving, dynamic Systems? — They are everywhere! > Idea: <CENSORED> as a concept for reflective languages © Marcus Denker 33
  • 34. Future Teaching > Continue with advising Master and Bachelor Students > Possible Courses at University of Chile: — Programming Languages — Software Engineering — Compiler Construction — Virtual Machines © Marcus Denker 34
  • 35. Future Open Source > Pharo: Squeak, rebooted — Professional Development — Stable basis for Research — INRIA, France > Squeak by Example, OLPC Edition — SBE Focusing on Squeak for OLPC — Programming beyond eToys © Marcus Denker 35