Suche senden
Hochladen
Reflectivity Demo
•
1 gefällt mir
•
755 views
Marcus Denker
Folgen
Reflectivity Demo (Dyla07, ECOOP 2007)
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 13
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Demo: Reflectivity
Demo: Reflectivity
Marcus Denker
Beyond Text - Methods as Objects
Beyond Text - Methods as Objects
Marcus Denker
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
Marcus Denker
Synopsis on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ...
Synopsis on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ...
Nikhil Jain
Multiprocessing -Interprocessing communication and process sunchronization,se...
Multiprocessing -Interprocessing communication and process sunchronization,se...
Neena R Krishna
Context-Oriented Programming: Beyond Layers
Context-Oriented Programming: Beyond Layers
ESUG
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]
Ravindra Raju Kolahalam
Inter process communication
Inter process communication
RJ Mehul Gadhiya
Empfohlen
Demo: Reflectivity
Demo: Reflectivity
Marcus Denker
Beyond Text - Methods as Objects
Beyond Text - Methods as Objects
Marcus Denker
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
Marcus Denker
Synopsis on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ...
Synopsis on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ...
Nikhil Jain
Multiprocessing -Interprocessing communication and process sunchronization,se...
Multiprocessing -Interprocessing communication and process sunchronization,se...
Neena R Krishna
Context-Oriented Programming: Beyond Layers
Context-Oriented Programming: Beyond Layers
ESUG
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]
Ravindra Raju Kolahalam
Inter process communication
Inter process communication
RJ Mehul Gadhiya
Practical Object-Oriented Back-in-Time Debugging
Practical Object-Oriented Back-in-Time Debugging
lienhard
Unstuck
Unstuck
Marcus Denker
Software Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience Report
Marcus Denker
Reflection
Reflection
Marcus Denker
Fosdem 13: Pharo 2.0 update
Fosdem 13: Pharo 2.0 update
Marcus Denker
Pharo ESUG
Pharo ESUG
Marcus Denker
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
Marcus Denker
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Reflection and Context
Reflection and Context
Marcus Denker
The Reflectivity
The Reflectivity
ESUG
Sub-Method Reflection
Sub-Method Reflection
Marcus Denker
Presentation about my Research
Presentation about my Research
Marcus Denker
Sub-method Structural and Behavioral Reflection
Sub-method Structural and Behavioral Reflection
Marcus Denker
Refactoring
Refactoring
Marcus Denker
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
ESUG
Talk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
Marcus Denker
08 refactoring
08 refactoring
The World of Smalltalk
Practical, Pluggable Types
Practical, Pluggable Types
Marcus Denker
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
ESUG
The meta of Meta-object Architectures
The meta of Meta-object Architectures
Marcus Denker
Behavioral Reflection
Behavioral Reflection
Marcus Denker
Weitere ähnliche Inhalte
Andere mochten auch
Practical Object-Oriented Back-in-Time Debugging
Practical Object-Oriented Back-in-Time Debugging
lienhard
Unstuck
Unstuck
Marcus Denker
Software Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience Report
Marcus Denker
Reflection
Reflection
Marcus Denker
Fosdem 13: Pharo 2.0 update
Fosdem 13: Pharo 2.0 update
Marcus Denker
Pharo ESUG
Pharo ESUG
Marcus Denker
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
Marcus Denker
Andere mochten auch
(7)
Practical Object-Oriented Back-in-Time Debugging
Practical Object-Oriented Back-in-Time Debugging
Unstuck
Unstuck
Software Evolution from the Field: an Experience Report
Software Evolution from the Field: an Experience Report
Reflection
Reflection
Fosdem 13: Pharo 2.0 update
Fosdem 13: Pharo 2.0 update
Pharo ESUG
Pharo ESUG
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
Ähnlich wie Reflectivity Demo
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Lecture: Reflection
Lecture: Reflection
Marcus Denker
Reflection and Context
Reflection and Context
Marcus Denker
The Reflectivity
The Reflectivity
ESUG
Sub-Method Reflection
Sub-Method Reflection
Marcus Denker
Presentation about my Research
Presentation about my Research
Marcus Denker
Sub-method Structural and Behavioral Reflection
Sub-method Structural and Behavioral Reflection
Marcus Denker
Refactoring
Refactoring
Marcus Denker
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
ESUG
Talk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
Marcus Denker
08 refactoring
08 refactoring
The World of Smalltalk
Practical, Pluggable Types
Practical, Pluggable Types
Marcus Denker
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
ESUG
The meta of Meta-object Architectures
The meta of Meta-object Architectures
Marcus Denker
Behavioral Reflection
Behavioral Reflection
Marcus Denker
Stoop 305-reflective programming5
Stoop 305-reflective programming5
The World of Smalltalk
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
Radu_Negulescu
Lecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinks
Marcus Denker
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"
Marcus Denker
DDD, CQRS and testing with ASP.Net MVC
DDD, CQRS and testing with ASP.Net MVC
Andy Butland
Ähnlich wie Reflectivity Demo
(20)
Lecture: Reflection
Lecture: Reflection
Lecture: Reflection
Lecture: Reflection
Reflection and Context
Reflection and Context
The Reflectivity
The Reflectivity
Sub-Method Reflection
Sub-Method Reflection
Presentation about my Research
Presentation about my Research
Sub-method Structural and Behavioral Reflection
Sub-method Structural and Behavioral Reflection
Refactoring
Refactoring
Unanticipated Partial Behavioral Reflection
Unanticipated Partial Behavioral Reflection
Talk: Practical, Pluggable Types
Talk: Practical, Pluggable Types
08 refactoring
08 refactoring
Practical, Pluggable Types
Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
TypePlug -- Practical, Pluggable Types
The meta of Meta-object Architectures
The meta of Meta-object Architectures
Behavioral Reflection
Behavioral Reflection
Stoop 305-reflective programming5
Stoop 305-reflective programming5
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
Lecture. Advanced Reflection: MetaLinks
Lecture. Advanced Reflection: MetaLinks
Lecture: "Advanced Reflection: MetaLinks"
Lecture: "Advanced Reflection: MetaLinks"
DDD, CQRS and testing with ASP.Net MVC
DDD, CQRS and testing with ASP.Net MVC
Mehr von Marcus Denker
Soil And Pharo
Soil And Pharo
Marcus Denker
ConstantBlocks in Pharo11
ConstantBlocks in Pharo11
Marcus Denker
Demo: Improved DoIt
Demo: Improved DoIt
Marcus Denker
First Class Variables as AST Annotations
First Class Variables as AST Annotations
Marcus Denker
Supporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo Support
Marcus Denker
thisContext in the Debugger
thisContext in the Debugger
Marcus Denker
Variables in Pharo
Variables in Pharo
Marcus Denker
Improving code completion for Pharo
Improving code completion for Pharo
Marcus Denker
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
Marcus Denker
Slot Composition
Slot Composition
Marcus Denker
Lecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinks
Marcus Denker
PHARO IOT
PHARO IOT
Marcus Denker
Open-Source: An Infinite Game
Open-Source: An Infinite Game
Marcus Denker
Lecture: MetaLinks
Lecture: MetaLinks
Marcus Denker
PharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to Pharo
Marcus Denker
Feedback Loops in Practice
Feedback Loops in Practice
Marcus Denker
Pharo6 - ESUG17
Pharo6 - ESUG17
Marcus Denker
Pharo6
Pharo6
Marcus Denker
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
Marcus Denker
Perfection & Feedback Loops or: why worse is better
Perfection & Feedback Loops or: why worse is better
Marcus Denker
Mehr von Marcus Denker
(20)
Soil And Pharo
Soil And Pharo
ConstantBlocks in Pharo11
ConstantBlocks in Pharo11
Demo: Improved DoIt
Demo: Improved DoIt
First Class Variables as AST Annotations
First Class Variables as AST Annotations
Supporting Pharo / Getting Pharo Support
Supporting Pharo / Getting Pharo Support
thisContext in the Debugger
thisContext in the Debugger
Variables in Pharo
Variables in Pharo
Improving code completion for Pharo
Improving code completion for Pharo
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
VUB Brussels Lecture 2019: Advanced Reflection: MetaLinks
Slot Composition
Slot Composition
Lecture: Advanced Reflection. MetaLinks
Lecture: Advanced Reflection. MetaLinks
PHARO IOT
PHARO IOT
Open-Source: An Infinite Game
Open-Source: An Infinite Game
Lecture: MetaLinks
Lecture: MetaLinks
PharoTechTalk: Contributing to Pharo
PharoTechTalk: Contributing to Pharo
Feedback Loops in Practice
Feedback Loops in Practice
Pharo6 - ESUG17
Pharo6 - ESUG17
Pharo6
Pharo6
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
Perfection & Feedback Loops or: why worse is better
Perfection & Feedback Loops or: why worse is better
Kürzlich hochgeladen
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
mohitsingh558521
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Raghuram Pandurangan
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
LoriGlavin3
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
LoriGlavin3
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Alan Dix
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
LoriGlavin3
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
LoriGlavin3
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
BkGupta21
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Lars Bell
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
MounikaPolabathina
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Kürzlich hochgeladen
(20)
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Reflectivity Demo
1.
The Reflectivity
Marcus Denker with: David Röthlisberger Philippe Marschall Nik Haldiman Adrian Lienhard / Lukas Renggli Eric Tanter Stephane Ducasse Oscar Nierstrasz © Marcus Denker
2.
Structural Reflection >
Structure modeled as objects — e.g. Classes, methods — Causally connected > Uses: — Development environments — Language extensions and experiments © Marcus Denker
3.
Methods and 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
4.
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
5.
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
6.
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 © Marcus Denker
7.
DEMO I >
Show invalidation of code > Show assert Demo © Marcus Denker
8.
Reflective Methods: Annotations >
Source visible annotations — extended Smalltalk syntax (9 raisedTo: 10000) <:evaluateAtCompiletime:> > Source invisible annotations — Reflective API — Can reference any object > Every node can be annotated > Semantics: Compiler Plugins © Marcus Denker
9.
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 © Marcus Denker
10.
Reflex: Partial Behavioral
Reflection > Hooksets: collection of operation occurrences > Links — Bind hooksets to metaobjects — Define Protocol between base and meta metaobject > Goals — Highly selective reification links activation condition — Flexiblel metalevel engineering – Protocol specification hookset – Cross-cutting hooksets Tanter, OOPSLA03 © Marcus Denker
11.
Links as Annotations >
Links can be annotations on the AST Meta Link © Marcus Denker
12.
Demo II: Geppetto >
Show Bounce Demo > Show Coverage Demo © Marcus Denker
13.
Future Work >
Optimize Size of AST Representation — Simpler AST — AST Compression > Contextual Reifications — Context depended Links > Beyond Text — Store only AST (no text) — Build text from annotated AST © Marcus Denker
Jetzt herunterladen