Enviar pesquisa
Carregar
The Reflectivity
•
1 gostou
•
447 visualizações
E
ESUG
Seguir
The Reflectivity. Marcus Denker. ESUG 2007, Lugano
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 12
Baixar agora
Baixar para ler offline
Recomendados
Demo: Reflectivity
Demo: Reflectivity
Marcus Denker
Reflectivity Demo
Reflectivity Demo
Marcus Denker
Compilation
Compilation
David Halliday
Compilation in c
Compilation in c
JosephBonillaArcinie
Java
Java
kasthurimukila
Active Object
Active Object
melbournepatterns
Multiprocessing.pptx
Multiprocessing.pptx
MaheshGour5
35c
35c
Sireesh K
Recomendados
Demo: Reflectivity
Demo: Reflectivity
Marcus Denker
Reflectivity Demo
Reflectivity Demo
Marcus Denker
Compilation
Compilation
David Halliday
Compilation in c
Compilation in c
JosephBonillaArcinie
Java
Java
kasthurimukila
Active Object
Active Object
melbournepatterns
Multiprocessing.pptx
Multiprocessing.pptx
MaheshGour5
35c
35c
Sireesh K
Starting fresh every morning
Starting fresh every morning
ESUG
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
ESUG
Glass
Glass
ESUG
News from Squeak
News from Squeak
ESUG
Modular ObjectLens
Modular ObjectLens
ESUG
Gstreamer
Gstreamer
ESUG
SCL
SCL
ESUG
Stateful Traits
Stateful Traits
ESUG
Spyware-ridden software development
Spyware-ridden software development
ESUG
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Reflection
Reflection
Marcus Denker
Sub-method Structural and Behavioral Reflection
Sub-method Structural and Behavioral Reflection
Marcus Denker
Talk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
Marcus Denker
Reflection and Context
Reflection and Context
Marcus Denker
Presentation about my Research
Presentation about my Research
Marcus Denker
Beyond Text - Methods as Objects
Beyond Text - Methods as Objects
Marcus Denker
Refactoring
Refactoring
Marcus Denker
Sub-Method Reflection
Sub-Method Reflection
Marcus Denker
Practical, Pluggable Types
Practical, Pluggable Types
Marcus Denker
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
ESUG
Unstuck
Unstuck
Marcus Denker
Mais conteúdo relacionado
Destaque
Starting fresh every morning
Starting fresh every morning
ESUG
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
ESUG
Glass
Glass
ESUG
News from Squeak
News from Squeak
ESUG
Modular ObjectLens
Modular ObjectLens
ESUG
Gstreamer
Gstreamer
ESUG
SCL
SCL
ESUG
Stateful Traits
Stateful Traits
ESUG
Spyware-ridden software development
Spyware-ridden software development
ESUG
Destaque
(9)
Starting fresh every morning
Starting fresh every morning
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
Glass
Glass
News from Squeak
News from Squeak
Modular ObjectLens
Modular ObjectLens
Gstreamer
Gstreamer
SCL
SCL
Stateful Traits
Stateful Traits
Spyware-ridden software development
Spyware-ridden software development
Semelhante a The Reflectivity
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Reflection
Reflection
Marcus Denker
Sub-method Structural and Behavioral Reflection
Sub-method Structural and Behavioral Reflection
Marcus Denker
Talk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
Marcus Denker
Reflection and Context
Reflection and Context
Marcus Denker
Presentation about my Research
Presentation about my Research
Marcus Denker
Beyond Text - Methods as Objects
Beyond Text - Methods as Objects
Marcus Denker
Refactoring
Refactoring
Marcus Denker
Sub-Method Reflection
Sub-Method Reflection
Marcus Denker
Practical, Pluggable Types
Practical, Pluggable Types
Marcus Denker
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
ESUG
Unstuck
Unstuck
Marcus Denker
Software Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience Report
Marcus Denker
08 refactoring
08 refactoring
The World of Smalltalk
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
Marcus Denker
DDD, CQRS and testing with ASP.Net MVC
DDD, CQRS and testing with ASP.Net MVC
Andy Butland
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"
Marcus Denker
Stoop 305-reflective programming5
Stoop 305-reflective programming5
The World of Smalltalk
Developing multi-platform microservices using .NET core
Developing multi-platform microservices using .NET core
Dror Helper
Semelhante a The Reflectivity
(20)
Lecture: Reflection
Lecture: Reflection
Lecture: Reflection
Lecture: Reflection
Reflection
Reflection
Sub-method Structural and Behavioral Reflection
Sub-method Structural and Behavioral Reflection
Talk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
Reflection and Context
Reflection and Context
Presentation about my Research
Presentation about my Research
Beyond Text - Methods as Objects
Beyond Text - Methods as Objects
Refactoring
Refactoring
Sub-Method Reflection
Sub-Method Reflection
Practical, Pluggable Types
Practical, Pluggable Types
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
Unstuck
Unstuck
Software Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience Report
08 refactoring
08 refactoring
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
DDD, CQRS and testing with ASP.Net MVC
DDD, CQRS and testing with ASP.Net MVC
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"
Stoop 305-reflective programming5
Stoop 305-reflective programming5
Developing multi-platform microservices using .NET core
Developing multi-platform microservices using .NET core
Mais de ESUG
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
Technical documentation support in Pharo
Technical documentation support in Pharo
ESUG
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
Garbage Collector Tuning
Garbage Collector Tuning
ESUG
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
thisContext in the Debugger
thisContext in the Debugger
ESUG
Websockets for Fencing Score
Websockets for Fencing Score
ESUG
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
Mais de ESUG
(20)
Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
Technical documentation support in Pharo
Technical documentation support in Pharo
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
Garbage Collector Tuning
Garbage Collector Tuning
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
thisContext in the Debugger
thisContext in the Debugger
Websockets for Fencing Score
Websockets for Fencing Score
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
Último
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
johnbeverley2021
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Jeffrey Haguewood
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
apidays
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
WSO2
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
Último
(20)
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
The Reflectivity
1.
© Marcus Denker The
Reflectivity Marcus Denker with: Philippe Marschall David Röthlisberger Nik Haldiman / Stefan Reichhart Adrian Lienhard / Lukas Renggli Eric Tanter Stephane Ducasse Oscar Nierstrasz
2.
© Marcus Denker Structural
Reflection > Structure modeled as objects — Classes, methods are objects — Causally connected > Uses: — Development environments — Language extensions and experiments
3.
© Marcus Denker Methods
and Reflection > Method are Objects > No high-level model for sub-method elements — Message sends — Assignments — Variable access > Structural reflection stops at the granularity of methods
4.
© 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
5.
© 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
6.
© Marcus Denker Reflectivity >
Implementation of Reflective Methods for Squeak Smalltalk > Smalltalk Compiler generates Reflective Methods — Translated to Bytecode on demand > Open Compiler: Plugins — Generator plugin: called before code generation – Transform a copy of the AST — Analysis plugin: called after name analysis
7.
© Marcus Denker DEMO
I > Show invalidation of code > Show assert Demo
8.
© Marcus Denker Reflective
Methods: Annotations > Source visible annotations — extended Smalltalk syntax > Source invisible annotations — Reflective API — Can reference any object > Every node can be annotated > Semantics: Compiler Plugins (9 raisedTo: 10000) <:evaluateAtCompiletime:>
9.
© 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
10.
© Marcus Denker Reflex:
Partial Behavioral Reflection > Hooksets: collection of operation occurrences > Links — Bind hooksets to metaobjects — Define Protocol between base and meta > Goals — Highly selective reification — Flexiblel metalevel engineering – Protocol specification – Cross-cutting hooksets activation condition hookset metaobject links Tanter, OOPSLA03
11.
© Marcus Denker Links
as Annotations Meta Link > Links can be annotations on the AST
12.
© Marcus Denker Demo
II: Geppetto > Show Bounce Demo
Baixar agora