36
© Marcus Denker Marcus Denker Universität Bern

Presentation about my Research

Embed Size (px)

DESCRIPTION

DCC University of Chile: Presentation about my research (via video conference), 29.10.2008

Citation preview

Page 1: Presentation about my Research

© Marcus Denker

Marcus Denker

Universität Bern

Page 2: Presentation about my Research

© Marcus Denker

Roadmap

> Research

> Teaching and Advising Students

> Open Source Involvement

> Future

2

Page 3: Presentation about my Research

© Marcus Denker

Roadmap

> Research

> Teaching and Advising Students

> Open Source Involvement

> Future

3

Page 4: Presentation about my Research

© Marcus Denker

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

4

Page 5: Presentation about my Research

© Marcus Denker

Three Research Directions

> Reflective System

> Context Oriented Programming

> Virtual Machines

5

Page 6: Presentation about my Research

© Marcus Denker

1. Reflective Systems

6

Program Description

Query and Change

Page 7: Presentation about my Research

© Marcus Denker

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

7

Page 8: Presentation about my Research

© Marcus Denker

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

8

Page 9: Presentation about my Research

© Marcus Denker

Solution: Reflective Methods

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

:ReflectiveMethod

annotation

#(12 13 45 38 98 128 84 72 42 77 22 28 59

32 7 49 51 87 64)

:CompiledMethod

compiledMethod

reflectiveMethodannotation

Tools VM

9

Page 10: Presentation about my Research

© Marcus Denker

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 ReflectionJournal of Object Technology, vol. 6, no. 9,

10

Page 11: Presentation about my Research

© Marcus Denker

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)

11

Page 12: Presentation about my Research

© Marcus Denker

Example: Partial Behavioral Reflection

> Joined Project with University of Chile

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

12

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, Stéphane Ducasse and Éric Tanter:“Runtime Bytecode Transformation for Smalltalk” (Journal of Computer Languages, Systems and Structures, 2006)

Page 13: Presentation about my Research

© Marcus Denker

Using Sub-method Structure

13

> Realized Reflex model on top of sub-method reflection

> Very good performance

source code

(AST)

meta-object

activation

condition

links

Page 14: Presentation about my Research

© Marcus Denker

Feature Annotations

> Features modeled as traces

> Many Problems— Space— Merging Traces

> Solution: annotate structure

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

14

source code

(AST)

instruction is

meta-object

links

Page 15: Presentation about my Research

© Marcus Denker

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

15

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

Page 16: Presentation about my Research

© Marcus Denker

Context-Aware Aspects

> Aspects: modularizing crosscutting concerns

> Context code crosscuts application code

16

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

Page 17: Presentation about my Research

© Marcus Denker

ChangeBoxes

> Programming Languages do not model change

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

17

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

Page 18: Presentation about my Research

© Marcus Denker

MetaContext

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

> Reason: meta-object call recursion

> Solution: meta-execution context

18

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

Page 19: Presentation about my Research

© Marcus Denker

3. Virtual Machines

> Late-bind compilation for dynamic languages

> Provide virtual, easy to change “hardware”

19

Page 20: Presentation about my Research

© Marcus Denker

Squeak J3

> Just-In-Time Compiler for Squeak Smalltalk

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

20

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

Page 21: Presentation about my Research

© Marcus Denker

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.

21

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

Page 22: Presentation about my Research

© Marcus Denker

Interpreter Inline Caches

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

> Interesting for Bytecode-to-Bytecode optimization

22

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

Page 23: Presentation about my Research

© Marcus Denker

Roadmap

> Research

> Teaching and Advising Students

> Open Source Involvement

> Future

23

Page 24: Presentation about my Research

© Marcus Denker

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

24

Page 25: Presentation about my Research

© Marcus Denker

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

25

Page 26: Presentation about my Research

© Marcus Denker

Roadmap

> Research

> Teaching and Advising Students

> Open Source Involvement

> Future

26

Page 27: Presentation about my Research

© Marcus Denker

Squeak

> Open Source Smalltalk System— Alan Kay, Dan Ingalls

> Responsible for Version 3.9

> Co-Founder Squeak Foundation— Board Member till 2007

2760.000 Downloads

Page 28: Presentation about my Research

© Marcus Denker

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”

28

Page 29: Presentation about my Research

© Marcus Denker

Roadmap

> Research

> Teaching and Advising Students

> Open Source Involvement

> Future

29

Page 30: Presentation about my Research

© Marcus Denker

Future Research

> Context and Reflection

> Bio-Inspired Reflective Languages

> Compiler for Dynamic Languages

30

Page 31: Presentation about my Research

© Marcus Denker

Context and Reflection

> Reflection is powerful, but dangerous.

> How can we control reflective structural change?

> Continue work started with ChangeBoxes and MetaContext

31

Page 32: Presentation about my Research

© Marcus Denker

Runtime Compilers

> Back to Bytecode-to-Bytecode Optimization

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

> Research: Integrate with Reflection Framework

32

Page 33: Presentation about my Research

© Marcus Denker

Bio-Inspired Reflective Languages

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

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

33

Page 34: Presentation about my Research

© Marcus Denker

Future Teaching

> Continue with advising Master and Bachelor Students

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

34

Page 35: Presentation about my Research

© Marcus Denker

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

35

Page 36: Presentation about my Research

© Marcus Denker

Questions?

36