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
730
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
880
Implementation of LMNtal Model Checkers: A Metaprogramming Approach, Yutaro Tsunekawa
meta
0
790
Virtual Values for Taint and Information Flow Analysis, Thomas H. Austin
meta
0
790
Evolution of Metaprograms: XSLT as a Metaprogramming Language, Vadim Zaytsev
meta
0
650
Declaratively Specifying Security Policies For Web Applications, Angel Luis Scull Pupo
meta
0
560
ChromaKey: Towards Extensible Reflective Architectures, Pablo Inostroza
meta
0
440
Other Decks in Research
See All in Research
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
390
病院向け生成AIプロダクト開発の実践と課題
hagino3000
0
570
[Devfest Incheon 2025] 모두를 위한 친절한 언어모델(LLM) 학습 가이드
beomi
2
1.5k
[チュートリアル] 電波マップ構築入門 :研究動向と課題設定の勘所
k_sato
0
330
湯村研究室の紹介2025 / yumulab2025
yumulab
0
320
生成的情報検索時代におけるAI利用と認知バイアス
trycycle
PRO
0
390
討議:RACDA設立30周年記念都市交通フォーラム2026
trafficbrain
0
580
Upgrading Multi-Agent Pathfinding for the Real World
kei18
0
470
【NICOGRAPH2025】Photographic Conviviality: ボディペイント・ワークショップによる 同時的かつ共生的な写真体験
toremolo72
0
200
Akamaiのキャッシュ効率を支えるAdaptSizeについての論文を読んでみた
bootjp
1
510
姫路市 -都市OSの「再実装」-
hopin
0
1.7k
2025-11-21-DA-10th-satellite
yegusa
0
130
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
860
AI: The stuff that nobody shows you
jnunemaker
PRO
3
390
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
720
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
410
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
200
Optimizing for Happiness
mojombo
378
71k
A designer walks into a library…
pauljervisheath
210
24k
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 ◦