Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Capability Safe Reflection for the Wyvern Langu...
Search
Meta Workshop
October 30, 2016
Research
0
700
Capability Safe Reflection for the Wyvern Language, Esther Wang
Meta Workshop
October 30, 2016
Tweet
Share
More Decks by Meta Workshop
See All by Meta Workshop
AST Specialisation and Partial Evaluation for Easy High-Performance Metaprogramming, Chris Seaton
meta
0
840
Implementation of LMNtal Model Checkers: A Metaprogramming Approach, Yutaro Tsunekawa
meta
0
760
Virtual Values for Taint and Information Flow Analysis, Thomas H. Austin
meta
0
730
Evolution of Metaprograms: XSLT as a Metaprogramming Language, Vadim Zaytsev
meta
0
610
Declaratively Specifying Security Policies For Web Applications, Angel Luis Scull Pupo
meta
0
530
ChromaKey: Towards Extensible Reflective Architectures, Pablo Inostroza
meta
0
420
Other Decks in Research
See All in Research
A scalable, annual aboveground biomass product for monitoring carbon impacts of ecosystem restoration projects
satai
3
130
【緊急警告】日本の未来設計図 ~沈没か、再生か。国民と断行するラストチャンス~
yuutakasan
0
140
在庫管理のための機械学習と最適化の融合
mickey_kubo
3
1.1k
When Submarine Cables Go Dark: Examining the Web Services Resilience Amid Global Internet Disruptions
irvin
0
260
能動適応的実験計画
masakat0
2
690
「どう育てるか」より「どう働きたいか」〜スクラムマスターの最初の一歩〜
hirakawa51
0
450
数理最適化に基づく制御
mickey_kubo
6
700
EarthMarker: A Visual Prompting Multimodal Large Language Model for Remote Sensing
satai
3
380
Adaptive fusion of multi-modal remote sensing data for optimal sub-field crop yield prediction
satai
3
230
Creation and environmental applications of 15-year daily inundation and vegetation maps for Siberia by integrating satellite and meteorological datasets
satai
3
160
Trust No Bot? Forging Confidence in AI for Software Engineering
tomzimmermann
1
250
LLM-as-a-Judge: 文章をLLMで評価する@教育機関DXシンポ
k141303
3
840
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
695
190k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
860
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Become a Pro
speakerdeck
PRO
29
5.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Fireside Chat
paigeccino
37
3.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
A designer walks into a library…
pauljervisheath
207
24k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Transcript
None
• • • ◦ ◦ •
• ◦ • •
• ◦ • ◦ • •
• • • ◦ ◦ •
• • • ◦ ◦ ◦
type List = def append[T](object:T) : Unit def get[T](index:Integer) :
T def make[T]() : List = new /* ... Object definition ... */ val myList : List = make[Integer]()
• ◦ ◦ • ◦ ◦
• • • ◦ ◦ •
• ◦ • • •
resource module wyvern/reflection/full def reflect[T](obj:T) : Object def reflectType[T]() :
Type
module wyvern/reflection/dynamic resource type Object module wyvern/reflection/static type Type type
Method type Variable type Field
val listObj:Object = \ reflect[List](List.make[Integer]().add(1)) val listType:Type = listObj.typeOf() val
getMethod:Method = listType.methodByName(“get”) listObj.invoke(getMethod, List.make().add(0))
• ◦ • ◦ • ◦
• • • ◦ ◦ •
• ◦ ◦ ◦ •
resource type Object = ... def viewAtType(t:Type) : Object
resource module wyvern/reflection/limited def reflect[T](obj:T) : Object def reflectType[T]() :
Type • viewAtType reflect • •
• • • ◦ ◦ •
• • ◦ ◦ •
• ◦ ◦ viewAtType ◦
None
• ◦ ◦ viewAtType ◦