SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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 simulinkeSAT Publishing House
 
Binary translation
Binary translationBinary translation
Binary translationGFI Software
 
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 Watermarkingijsrd.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
Aw2419401943IJMER
 
Chapter 5 software design
Chapter 5   software designChapter 5   software design
Chapter 5 software designGoutam Majumder
 
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. DissertationSumant 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 MapsITIIIndustries
 
RDB - Repairable Database Systems
RDB - Repairable Database SystemsRDB - Repairable Database Systems
RDB - Repairable Database SystemsAlexey Smirnov
 

Was ist angesagt? (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
 

Andere mochten auch

Talk: Practical, Pluggable Types
Talk: Practical, Pluggable TypesTalk: Practical, Pluggable Types
Talk: Practical, Pluggable TypesMarcus Denker
 
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 SqueakMarcus Denker
 
Pharo. One Year Later
Pharo. One Year LaterPharo. One Year Later
Pharo. One Year LaterMarcus Denker
 
Boostrapping a Smalltalk
Boostrapping a SmalltalkBoostrapping a Smalltalk
Boostrapping a SmalltalkMarcus Denker
 
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 aboutWSICorne
 
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakMarcus Denker
 

Andere mochten auch (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
 

Ähnlich wie Presentation about my Research

Reflection and Context
Reflection and ContextReflection and Context
Reflection and ContextMarcus Denker
 
Sub-Method Reflection
Sub-Method ReflectionSub-Method Reflection
Sub-Method ReflectionMarcus Denker
 
Beyond Text - Methods as Objects
Beyond Text - Methods as ObjectsBeyond Text - Methods as Objects
Beyond Text - Methods as ObjectsMarcus Denker
 
The Reflectivity
The ReflectivityThe Reflectivity
The ReflectivityESUG
 
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 ReportMarcus Denker
 
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionUnanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionMarcus Denker
 
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionUnanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral ReflectionESUG
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignRadu_Negulescu
 
The meta of Meta-object Architectures
The meta of Meta-object ArchitecturesThe meta of Meta-object Architectures
The meta of Meta-object ArchitecturesMarcus 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 AppsAraf 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 WayMinio
 
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 PatternsAmr E. Mohamed
 

Ähnlich wie 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
 
Demo: Reflectivity
Demo: ReflectivityDemo: Reflectivity
Demo: Reflectivity
 
The Reflectivity
The ReflectivityThe Reflectivity
The 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
 

Mehr von Marcus Denker

ConstantBlocks in Pharo11
ConstantBlocks in Pharo11ConstantBlocks in Pharo11
ConstantBlocks in Pharo11Marcus Denker
 
First Class Variables as AST Annotations
First Class Variables as AST AnnotationsFirst Class Variables as AST Annotations
First Class Variables as AST AnnotationsMarcus Denker
 
Supporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo SupportSupporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo SupportMarcus 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 DebuggerMarcus Denker
 
Lecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinksLecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinksMarcus Denker
 
Improving code completion for Pharo
Improving code completion for PharoImproving code completion for Pharo
Improving code completion for PharoMarcus 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: MetaLinksMarcus Denker
 
Lecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinksLecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinksMarcus Denker
 
Open-Source: An Infinite Game
Open-Source: An Infinite GameOpen-Source: An Infinite Game
Open-Source: An Infinite GameMarcus Denker
 
PharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to PharoPharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to PharoMarcus Denker
 
Feedback Loops in Practice
Feedback Loops in PracticeFeedback Loops in Practice
Feedback Loops in PracticeMarcus Denker
 

Mehr von 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
 

Kürzlich hochgeladen

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Kürzlich hochgeladen (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

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