SlideShare a Scribd company logo
Intermediate Language Designof High-level Language VMsTowards Comprehensive Concurrency SupportMichael HauptHassoPlattner InstituteUniversity of PotsdamTheo D’HondtSoftware Languages LabVrijeUniversiteitBrusselStefan MarrSoftware Languages LabVrijeUniversiteitBrusselVMIL Workshop, 25th October 2009, Orlando, Florida
AgendaMotivationSurvey DesignConcurrency SupportConclusionOutlook10/27/092IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
MotivationVMs support concurrency insufficiently!Why? Because, we want multi-language VMsFast JITs, great GCsHow to design an intermediate language?To our knowledgeNo surveysNo overview of design space/tradeoffs10/27/093IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Survey DesignHow to design an intermediate language?10/27/09IL Design For VMs, Stefan Marr, VMIL, Oct. 20094
Survey Design10/27/095IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Dis VM 4th ed.OTPR12Dalvik VM 1.05.1CLI/ECMA-3551.3JVM spec.1.46.0 svn2.6Ruby 1.8/1.9RubiniusV8 svn4.4Squeak 3.9TraceMonkeyAll trademarks and logos are the property of their respective owners.
Survey CriteriaSpecification vs. implementationAbstraction level of intermediate languageMachine modelRepresentation, instruction encodingInstruction categoriesArithmetic & logic, control flow, stack, …Optimizations10/27/096Survey Design
Survey10/27/097Survey Design
Survey10/27/098Survey Design
Survey10/27/099Survey Design
Survey10/27/0910Survey Design
Survey10/27/0911Survey Design
Survey10/27/0912Survey Design
Concurrency supportHow to support concurrency in an intermediate language?10/27/09IL Design For VMs, Stefan Marr, VMIL, Oct. 200913
Reminder: MotivationVMs support concurrency insufficiently!Why? Because, we want multi-language VMsFast JITsGreat GCsAdd concurrency to intermediate language10/27/0914IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
10/27/0915IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Why Concurrency in ILs?
Concurrency Support in the IL?10/27/0916IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Dis VM 4th ed.OTPR12Dalvik VM 1.05.1CLI/ECMA-3551.3JVM spec.1.46.0 svn2.6Ruby 1.8/1.9RubiniusV8 svn4.4Squeak 3.9TraceMonkey
Concurrency Support in the IL?10/27/0917IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Dis VM 4th ed.OTPR12Dalvik VM 1.05.1CLI/ECMA-3551.3JVM spec.1.46.0 svn2.6Ruby 1.8/1.9RubiniusV8 svn4.4Squeak 3.9TraceMonkeyonly 6 out of 17
Survey Criteria - ConcurrencyConcurrency supportConcurrency modelIncluded instructionsStandard library (stdlib)10/27/0918IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Common Language Infrastructurevolatile.(prefix instruction)marks a subsequent pointer referenceSynchronized methodsMemory modelAtomic read or write of certain aligned dataStandard libraryMemory barriers, atomic updatesParallel loops, futures,…10/27/0919Concurrency Support
Dis VM (spec. 4th ed.)Inspired by CommunicatingSequentialProcessesspawn – new threadnew* – new channelrecv, send – on given channelalt, nbalt – send or receive                          on ready channelMemory model unspecified10/27/0920Concurrency Support
ErlangActors modelsend, wait, wait_timeoutremove_messagetimeoutPure, functional languageNo memory model specifiedOnly high-level constructs in stdlib.10/27/0921Concurrency Support
Java Virtual Machinemonitorenter/-exitFor synchronized blocksSynchronized methodsMemory modelStandard libraryLow- and high-level constructsDalvikVM promises the same10/27/0922Concurrency Support
MozartLOCKTHREADNo unlockImplicit supportData-flow variables, distributionStandard libraryHigh-level constructsFutures, stream channels,…10/27/0923Concurrency Support
ConclusionWide range of supported modelsNo notion of multiple modelsOften limited to implicit semantics or guarantiesOften most functionality in standard library10/27/0924IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
OutlookMulti-language VMs have toEnable language designer to invent new constructs/conceptsProvide low- and high-level constructsLow-level: Memory barriers, atomic updates, …High-level: Tuplespaces, STM, Actors, …Open question: tradeoffs IL vs. stdlib.10/27/0925IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Discussion10/27/0926IL Design For VMs, Stefan Marr, VMIL, Oct. 2009

More Related Content

PDF
Lecture # 1
PPT
C programming
PPT
03 the c language
PPTX
Dynamic language
PPTX
PPTX
Compiler - Computer Programming - UOZ
PPT
Dot net
PDF
UnDeveloper Studio
Lecture # 1
C programming
03 the c language
Dynamic language
Compiler - Computer Programming - UOZ
Dot net
UnDeveloper Studio

Viewers also liked (20)

PPTX
Lecture 11 semantic analysis 2
PPT
Module 11
PPTX
Top down and botttom up Parsing
PPT
Software tools
PPT
Introduction to compiler
PPTX
Different types of Editors in Linux
PPT
Lex (lexical analyzer)
PPTX
Intermediate code- generation
PDF
Interpreter, Compiler, JIT from scratch
PPT
Lexical analyzer
PDF
Phases of the Compiler - Systems Programming
PPTX
Specification-of-tokens
PPTX
Embedded System Tools ppt
PPTX
Back patching
PPTX
Type checking in compiler design
PPTX
The dag representation of basic blocks
PPT
Type Checking(Compiler Design) #ShareThisIfYouLike
PPT
Lecture 16 17 code-generation
PPTX
Run time administration
Lecture 11 semantic analysis 2
Module 11
Top down and botttom up Parsing
Software tools
Introduction to compiler
Different types of Editors in Linux
Lex (lexical analyzer)
Intermediate code- generation
Interpreter, Compiler, JIT from scratch
Lexical analyzer
Phases of the Compiler - Systems Programming
Specification-of-tokens
Embedded System Tools ppt
Back patching
Type checking in compiler design
The dag representation of basic blocks
Type Checking(Compiler Design) #ShareThisIfYouLike
Lecture 16 17 code-generation
Run time administration
Ad

Similar to Intermediate Language Design of High-level Language VMs: Towards Comprehensive Concurrency Support (20)

PDF
Introduction to progamming languages course
PPT
Bay NET Aug 19 2009 presentation ppt
PDF
BCA IPU VB.NET UNIT-I
PPT
Moving Rich Internet Applications into the Cloud: Seven Challenges
PDF
Markus Voelter Textual DSLs
PDF
E4 UI Demos
PDF
Folt - Open TMS - A presentation for universities
PDF
AmitFru_Multiprotocol_Testing_Suite
PDF
FFmpeg - the universal multimedia toolkit
PPT
Net framework
PPT
Automated mobile application porting
PPSX
Webinar - KQStor ZFS port on Linux
PDF
Introduction to .NET Framework and .NET Core
PDF
AI/ML Infra Meetup | A Faster and More Cost Efficient LLM Inference Stack
PDF
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
PDF
Bringing You Up to Date with LE for z/VSE
PDF
Alexander Kolb – Flink. Yet another Streaming Framework?
PPTX
Introduction to .net
PPTX
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
PPTX
Why-Kotlin definition to understand the use of kotin
Introduction to progamming languages course
Bay NET Aug 19 2009 presentation ppt
BCA IPU VB.NET UNIT-I
Moving Rich Internet Applications into the Cloud: Seven Challenges
Markus Voelter Textual DSLs
E4 UI Demos
Folt - Open TMS - A presentation for universities
AmitFru_Multiprotocol_Testing_Suite
FFmpeg - the universal multimedia toolkit
Net framework
Automated mobile application porting
Webinar - KQStor ZFS port on Linux
Introduction to .NET Framework and .NET Core
AI/ML Infra Meetup | A Faster and More Cost Efficient LLM Inference Stack
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Bringing You Up to Date with LE for z/VSE
Alexander Kolb – Flink. Yet another Streaming Framework?
Introduction to .net
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Why-Kotlin definition to understand the use of kotin
Ad

More from Stefan Marr (20)

PPTX
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
PPTX
Seminar on Parallel and Concurrent Programming
PPTX
Optimizing Communicating Event-Loop Languages with Truffle
PPTX
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
PPTX
Why Is Concurrent Programming Hard? And What Can We Do about It?
PPTX
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
PPTX
Building High-Performance Language Implementations With Low Effort
PPTX
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
PPTX
Supporting Concurrency Abstractions in High-level Language Virtual Machines
PDF
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
PDF
Sly and the RoarVM: Parallel Programming with Smalltalk
PDF
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
PDF
Sly and the RoarVM: Exploring the Manycore Future of Programming
PDF
PHP.next: Traits
PDF
The Price of the Free Lunch: Programming in the Multicore Era
PDF
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
PPTX
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
PPTX
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
PDF
VMADL: An Architecture Definition Language for Variability and Composition ...
PPT
Metaprogrammierung und Reflection
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "U...
Seminar on Parallel and Concurrent Programming
Optimizing Communicating Event-Loop Languages with Truffle
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Why Is Concurrent Programming Hard? And What Can We Do about It?
Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and w...
Building High-Performance Language Implementations With Low Effort
Cloud PARTE: Elastic Complex Event Processing based on Mobile Actors
Supporting Concurrency Abstractions in High-level Language Virtual Machines
Identifying A Unifying Mechanism for the Implementation of Concurrency Abstra...
Sly and the RoarVM: Parallel Programming with Smalltalk
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Sly and the RoarVM: Exploring the Manycore Future of Programming
PHP.next: Traits
The Price of the Free Lunch: Programming in the Multicore Era
Locality and Encapsulation: A Foundation for Concurrency Support in Multi-Lan...
Insertion Tree Phasers: Efficient and Scalable Barrier Synchronization for Fi...
Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from...
VMADL: An Architecture Definition Language for Variability and Composition ...
Metaprogrammierung und Reflection

Recently uploaded (20)

PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
Unlocking AI with Model Context Protocol (MCP)
Spectroscopy.pptx food analysis technology
Digital-Transformation-Roadmap-for-Companies.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25-Week II
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
gpt5_lecture_notes_comprehensive_20250812015547.pdf
MYSQL Presentation for SQL database connectivity
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation_ Review paper, used for researhc scholars
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
20250228 LYD VKU AI Blended-Learning.pptx
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
The AUB Centre for AI in Media Proposal.docx

Intermediate Language Design of High-level Language VMs: Towards Comprehensive Concurrency Support

  • 1. Intermediate Language Designof High-level Language VMsTowards Comprehensive Concurrency SupportMichael HauptHassoPlattner InstituteUniversity of PotsdamTheo D’HondtSoftware Languages LabVrijeUniversiteitBrusselStefan MarrSoftware Languages LabVrijeUniversiteitBrusselVMIL Workshop, 25th October 2009, Orlando, Florida
  • 3. MotivationVMs support concurrency insufficiently!Why? Because, we want multi-language VMsFast JITs, great GCsHow to design an intermediate language?To our knowledgeNo surveysNo overview of design space/tradeoffs10/27/093IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 4. Survey DesignHow to design an intermediate language?10/27/09IL Design For VMs, Stefan Marr, VMIL, Oct. 20094
  • 5. Survey Design10/27/095IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Dis VM 4th ed.OTPR12Dalvik VM 1.05.1CLI/ECMA-3551.3JVM spec.1.46.0 svn2.6Ruby 1.8/1.9RubiniusV8 svn4.4Squeak 3.9TraceMonkeyAll trademarks and logos are the property of their respective owners.
  • 6. Survey CriteriaSpecification vs. implementationAbstraction level of intermediate languageMachine modelRepresentation, instruction encodingInstruction categoriesArithmetic & logic, control flow, stack, …Optimizations10/27/096Survey Design
  • 13. Concurrency supportHow to support concurrency in an intermediate language?10/27/09IL Design For VMs, Stefan Marr, VMIL, Oct. 200913
  • 14. Reminder: MotivationVMs support concurrency insufficiently!Why? Because, we want multi-language VMsFast JITsGreat GCsAdd concurrency to intermediate language10/27/0914IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 15. 10/27/0915IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Why Concurrency in ILs?
  • 16. Concurrency Support in the IL?10/27/0916IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Dis VM 4th ed.OTPR12Dalvik VM 1.05.1CLI/ECMA-3551.3JVM spec.1.46.0 svn2.6Ruby 1.8/1.9RubiniusV8 svn4.4Squeak 3.9TraceMonkey
  • 17. Concurrency Support in the IL?10/27/0917IL Design For VMs, Stefan Marr, VMIL, Oct. 2009Dis VM 4th ed.OTPR12Dalvik VM 1.05.1CLI/ECMA-3551.3JVM spec.1.46.0 svn2.6Ruby 1.8/1.9RubiniusV8 svn4.4Squeak 3.9TraceMonkeyonly 6 out of 17
  • 18. Survey Criteria - ConcurrencyConcurrency supportConcurrency modelIncluded instructionsStandard library (stdlib)10/27/0918IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 19. Common Language Infrastructurevolatile.(prefix instruction)marks a subsequent pointer referenceSynchronized methodsMemory modelAtomic read or write of certain aligned dataStandard libraryMemory barriers, atomic updatesParallel loops, futures,…10/27/0919Concurrency Support
  • 20. Dis VM (spec. 4th ed.)Inspired by CommunicatingSequentialProcessesspawn – new threadnew* – new channelrecv, send – on given channelalt, nbalt – send or receive on ready channelMemory model unspecified10/27/0920Concurrency Support
  • 21. ErlangActors modelsend, wait, wait_timeoutremove_messagetimeoutPure, functional languageNo memory model specifiedOnly high-level constructs in stdlib.10/27/0921Concurrency Support
  • 22. Java Virtual Machinemonitorenter/-exitFor synchronized blocksSynchronized methodsMemory modelStandard libraryLow- and high-level constructsDalvikVM promises the same10/27/0922Concurrency Support
  • 23. MozartLOCKTHREADNo unlockImplicit supportData-flow variables, distributionStandard libraryHigh-level constructsFutures, stream channels,…10/27/0923Concurrency Support
  • 24. ConclusionWide range of supported modelsNo notion of multiple modelsOften limited to implicit semantics or guarantiesOften most functionality in standard library10/27/0924IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 25. OutlookMulti-language VMs have toEnable language designer to invent new constructs/conceptsProvide low- and high-level constructsLow-level: Memory barriers, atomic updates, …High-level: Tuplespaces, STM, Actors, …Open question: tradeoffs IL vs. stdlib.10/27/0925IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 26. Discussion10/27/0926IL Design For VMs, Stefan Marr, VMIL, Oct. 2009

Editor's Notes

  • #3: The motivation for this survey is hopefully clear nowToday, I will present here only the survey designAnd the concurrency related features we found in the different VMs
  • #4: Concurrency support for intermediate language
  • #5: Let’s try to find an answer for this basic question
  • #6: 17 VMscommon open source VMsResearch VMsand production VMsOut of the Box: directly usable by the application developer which uses the target language running on top of the VM
  • #9: CLI and JVM are only VMs here which are used as multi-langueVMs
  • #10: DisVMOnly SpecificationMem-mem model
  • #11: Virtual Machine Showdown: Stack Versus Registersby: Yunhe Shi and Kevin Casey and M. Anton Ertl and David GreggIn: ACM Trans. Archit. Code Optim. , Vol. 4 , Nr. 4New York, NY, USA: ACM (2008) , p. 1--36.
  • #12: Another interesting approach
  • #13: How to approach VM design when you want a JIT
  • #14: Lets now focus on the concurrency support
  • #15: VM support for concurrency as it is today is insufficientOur basic idea: Add support to the IL
  • #17: But lets come back to our survey.So what is the state of the art to concurrency support in Ils?
  • #18: 17 VMscommon open source VMsResearch VMsand production VMsOut of the Box: directly usable by the application developer which uses the target language running on top of the VM
  • #19: Basic Question for the Survey:How do VMs support concurrency models today?
  • #20: Atomic: native word size 32/64bit, no update
  • #25: Split up slide
  • #27: I would like to discussion following thingsSuitability of chosen VMsValid reasons to chose JVM over something else? I.e. reasons to not use Lua?-Other platforms then TILE64 or CellBE, which might be interesting?Tradeoffs which should be investigatedThe final goal for my PhD is to cover the concurrency part of ISA/VM design as a cornerstone for multi-paradigm VMs