Presentation about my Research

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Presentation about my Research - Presentation Transcript

    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
    36. Questions? © Marcus Denker 36
    SlideShare Zeitgeist 2009

    + Marcus DenkerMarcus Denker Nominate

    custom

    202 views, 0 favs, 0 embeds more stats

    DCC University of Chile: Presentation about my rese more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 202
      • 202 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 1
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories