SlideShare a Scribd company logo
1 of 26
Intermediate Language Designof High-level Language VMs Towards Comprehensive Concurrency Support Michael Haupt HassoPlattner Institute University of Potsdam Theo D’Hondt Software Languages Lab VrijeUniversiteitBrussel Stefan Marr Software Languages Lab VrijeUniversiteitBrussel VMIL Workshop, 25th October 2009, Orlando, Florida
Agenda Motivation Survey Design Concurrency Support Conclusion Outlook 10/27/09 2 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Motivation VMs support concurrency insufficiently! Why? Because, we want multi-language VMs Fast JITs, great GCs How to design an intermediate language? To our knowledge No surveys No overview of design space/tradeoffs 10/27/09 3 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Survey Design How to design an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 4
Survey Design 10/27/09 5 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey All trademarks and logos are the property of their respective owners.
Survey Criteria Specification vs. implementation Abstraction level of intermediate language Machine model Representation, instruction encoding Instruction categories Arithmetic & logic, control flow, stack, … Optimizations 10/27/09 6 Survey Design
Survey 10/27/09 7 Survey Design
Survey 10/27/09 8 Survey Design
Survey 10/27/09 9 Survey Design
Survey 10/27/09 10 Survey Design
Survey 10/27/09 11 Survey Design
Survey 10/27/09 12 Survey Design
Concurrency support How to support concurrency in an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 13
Reminder: Motivation VMs support concurrency insufficiently! Why? Because, we want multi-language VMs Fast JITs Great GCs ,[object Object],10/27/09 14 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
10/27/09 15 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Why Concurrency in ILs?
Concurrency Support in the IL? 10/27/09 16 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey
Concurrency Support in the IL? 10/27/09 17 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey only 6 out of 17
Survey Criteria - Concurrency Concurrency support Concurrency model Included instructions Standard library (stdlib) 10/27/09 18 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Common Language Infrastructure volatile.(prefix instruction) marks a subsequent pointer reference Synchronized methods Memory model Atomic read or write of certain aligned data Standard library Memory barriers, atomic updates Parallel loops, futures,… 10/27/09 19 Concurrency Support
Dis VM (spec. 4th ed.) Inspired by CommunicatingSequentialProcesses spawn – new thread new* – new channel recv, send – on given channel alt, nbalt – send or receive                          on ready channel Memory model unspecified 10/27/09 20 Concurrency Support
Erlang Actors model send, wait, wait_timeout remove_message timeout Pure, functional language No memory model specified Only high-level constructs in stdlib. 10/27/09 21 Concurrency Support
Java Virtual Machine monitorenter/-exit For synchronized blocks Synchronized methods Memory model Standard library Low- and high-level constructs DalvikVM promises the same 10/27/09 22 Concurrency Support
Mozart LOCKTHREAD No unlock Implicit support Data-flow variables, distribution Standard library High-level constructs Futures, stream channels,… 10/27/09 23 Concurrency Support
Conclusion Wide range of supported models No notion of multiple models Often limited to implicit semantics or guaranties Often most functionality in standard library 10/27/09 24 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Outlook Multi-language VMs have to Enable language designer to invent new constructs/concepts Provide low- and high-level constructs Low-level: Memory barriers, atomic updates, … High-level: Tuplespaces, STM, Actors, … Open question: tradeoffs IL vs. stdlib. 10/27/09 25 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
Discussion 10/27/09 26 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009

More Related Content

Viewers also liked

Top down and botttom up Parsing
Top down     and botttom up ParsingTop down     and botttom up Parsing
Top down and botttom up Parsing
Gerwin Ocsena
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
Abha Damani
 
Intermediate code- generation
Intermediate code- generationIntermediate code- generation
Intermediate code- generation
rawan_z
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools ppt
Halai Hansika
 

Viewers also liked (20)

Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2Lecture 11 semantic analysis 2
Lecture 11 semantic analysis 2
 
Module 11
Module 11Module 11
Module 11
 
Ch5a
Ch5aCh5a
Ch5a
 
Top down and botttom up Parsing
Top down     and botttom up ParsingTop down     and botttom up Parsing
Top down and botttom up Parsing
 
Software tools
Software toolsSoftware tools
Software tools
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
Different types of Editors in Linux
Different types of Editors in LinuxDifferent types of Editors in Linux
Different types of Editors in Linux
 
Lex (lexical analyzer)
Lex (lexical analyzer)Lex (lexical analyzer)
Lex (lexical analyzer)
 
Intermediate code- generation
Intermediate code- generationIntermediate code- generation
Intermediate code- generation
 
Interpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratchInterpreter, Compiler, JIT from scratch
Interpreter, Compiler, JIT from scratch
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
 
Phases of the Compiler - Systems Programming
Phases of the Compiler - Systems ProgrammingPhases of the Compiler - Systems Programming
Phases of the Compiler - Systems Programming
 
Specification-of-tokens
Specification-of-tokensSpecification-of-tokens
Specification-of-tokens
 
Embedded System Tools ppt
Embedded System Tools  pptEmbedded System Tools  ppt
Embedded System Tools ppt
 
Back patching
Back patchingBack patching
Back patching
 
Type checking in compiler design
Type checking in compiler designType checking in compiler design
Type checking in compiler design
 
The dag representation of basic blocks
The dag representation of basic blocksThe dag representation of basic blocks
The dag representation of basic blocks
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 
Lecture 16 17 code-generation
Lecture 16 17 code-generationLecture 16 17 code-generation
Lecture 16 17 code-generation
 
Run time administration
Run time administrationRun time administration
Run time administration
 

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

Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
deimos
 
AmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_SuiteAmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_Suite
Yogesh Kulkarni
 
Net framework
Net frameworkNet framework
Net framework
jhsri
 
Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?
Flink Forward
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
SIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
SIVAJISADHANA
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
SIVAJISADHANA
 

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

Bay NET Aug 19 2009 presentation ppt
Bay  NET Aug 19 2009 presentation pptBay  NET Aug 19 2009 presentation ppt
Bay NET Aug 19 2009 presentation ppt
 
BCA IPU VB.NET UNIT-I
BCA IPU VB.NET UNIT-IBCA IPU VB.NET UNIT-I
BCA IPU VB.NET UNIT-I
 
Moving Rich Internet Applications into the Cloud: Seven Challenges
Moving Rich Internet Applications into the Cloud: Seven ChallengesMoving Rich Internet Applications into the Cloud: Seven Challenges
Moving Rich Internet Applications into the Cloud: Seven Challenges
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 
E4 UI Demos
E4 UI DemosE4 UI Demos
E4 UI Demos
 
Folt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universitiesFolt - Open TMS - A presentation for universities
Folt - Open TMS - A presentation for universities
 
AmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_SuiteAmitFru_Multiprotocol_Testing_Suite
AmitFru_Multiprotocol_Testing_Suite
 
FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkit
 
Net framework
Net frameworkNet framework
Net framework
 
Automated mobile application porting
Automated mobile application portingAutomated mobile application porting
Automated mobile application porting
 
Webinar - KQStor ZFS port on Linux
Webinar - KQStor ZFS port on LinuxWebinar - KQStor ZFS port on Linux
Webinar - KQStor ZFS port on Linux
 
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM ConnectionsSutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
Sutol - A Hitchhiker’s Guide to troubleshooting IBM Connections
 
Bringing You Up to Date with LE for z/VSE
Bringing You Up to Date with LE for z/VSEBringing You Up to Date with LE for z/VSE
Bringing You Up to Date with LE for z/VSE
 
Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?Alexander Kolb – Flink. Yet another Streaming Framework?
Alexander Kolb – Flink. Yet another Streaming Framework?
 
Introduction to .net
Introduction to .net Introduction to .net
Introduction to .net
 
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
Encapsulation and Locality: A Foundation for Concurrency Support in Multi-Lan...
 
Intermediate Languages
Intermediate LanguagesIntermediate Languages
Intermediate Languages
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 
New microsoft office word document
New microsoft office word documentNew microsoft office word document
New microsoft office word document
 

More from Stefan Marr

Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Tracing versus Partial Evaluation: Which Meta-Compilation Approach is Better ...
Stefan Marr
 
Building High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low EffortBuilding High-Performance Language Implementations With Low Effort
Building High-Performance Language Implementations With Low Effort
Stefan Marr
 
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Mul...
Stefan Marr
 
Sly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of ProgrammingSly and the RoarVM: Exploring the Manycore Future of Programming
Sly and the RoarVM: Exploring the Manycore Future of Programming
Stefan Marr
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
Stefan Marr
 

More from Stefan Marr (20)

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

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

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

  • 1. Intermediate Language Designof High-level Language VMs Towards Comprehensive Concurrency Support Michael Haupt HassoPlattner Institute University of Potsdam Theo D’Hondt Software Languages Lab VrijeUniversiteitBrussel Stefan Marr Software Languages Lab VrijeUniversiteitBrussel VMIL Workshop, 25th October 2009, Orlando, Florida
  • 2. Agenda Motivation Survey Design Concurrency Support Conclusion Outlook 10/27/09 2 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 3. Motivation VMs support concurrency insufficiently! Why? Because, we want multi-language VMs Fast JITs, great GCs How to design an intermediate language? To our knowledge No surveys No overview of design space/tradeoffs 10/27/09 3 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 4. Survey Design How to design an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 4
  • 5. Survey Design 10/27/09 5 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey All trademarks and logos are the property of their respective owners.
  • 6. Survey Criteria Specification vs. implementation Abstraction level of intermediate language Machine model Representation, instruction encoding Instruction categories Arithmetic & logic, control flow, stack, … Optimizations 10/27/09 6 Survey Design
  • 7. Survey 10/27/09 7 Survey Design
  • 8. Survey 10/27/09 8 Survey Design
  • 9. Survey 10/27/09 9 Survey Design
  • 10. Survey 10/27/09 10 Survey Design
  • 11. Survey 10/27/09 11 Survey Design
  • 12. Survey 10/27/09 12 Survey Design
  • 13. Concurrency support How to support concurrency in an intermediate language? 10/27/09 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 13
  • 14.
  • 15. 10/27/09 15 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Why Concurrency in ILs?
  • 16. Concurrency Support in the IL? 10/27/09 16 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey
  • 17. Concurrency Support in the IL? 10/27/09 17 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009 Dis VM 4th ed. OTP R12 Dalvik VM 1.0 5.1 CLI/ECMA-355 1.3 JVM spec. 1.4 6.0 svn 2.6 Ruby 1.8/1.9 Rubinius V8 svn 4.4 Squeak 3.9 TraceMonkey only 6 out of 17
  • 18. Survey Criteria - Concurrency Concurrency support Concurrency model Included instructions Standard library (stdlib) 10/27/09 18 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 19. Common Language Infrastructure volatile.(prefix instruction) marks a subsequent pointer reference Synchronized methods Memory model Atomic read or write of certain aligned data Standard library Memory barriers, atomic updates Parallel loops, futures,… 10/27/09 19 Concurrency Support
  • 20. Dis VM (spec. 4th ed.) Inspired by CommunicatingSequentialProcesses spawn – new thread new* – new channel recv, send – on given channel alt, nbalt – send or receive on ready channel Memory model unspecified 10/27/09 20 Concurrency Support
  • 21. Erlang Actors model send, wait, wait_timeout remove_message timeout Pure, functional language No memory model specified Only high-level constructs in stdlib. 10/27/09 21 Concurrency Support
  • 22. Java Virtual Machine monitorenter/-exit For synchronized blocks Synchronized methods Memory model Standard library Low- and high-level constructs DalvikVM promises the same 10/27/09 22 Concurrency Support
  • 23. Mozart LOCKTHREAD No unlock Implicit support Data-flow variables, distribution Standard library High-level constructs Futures, stream channels,… 10/27/09 23 Concurrency Support
  • 24. Conclusion Wide range of supported models No notion of multiple models Often limited to implicit semantics or guaranties Often most functionality in standard library 10/27/09 24 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 25. Outlook Multi-language VMs have to Enable language designer to invent new constructs/concepts Provide low- and high-level constructs Low-level: Memory barriers, atomic updates, … High-level: Tuplespaces, STM, Actors, … Open question: tradeoffs IL vs. stdlib. 10/27/09 25 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009
  • 26. Discussion 10/27/09 26 IL Design For VMs, Stefan Marr, VMIL, Oct. 2009

Editor's Notes

  1. 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
  2. Concurrency support for intermediate language
  3. Let’s try to find an answer for this basic question
  4. 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
  5. CLI and JVM are only VMs here which are used as multi-langueVMs
  6. DisVMOnly SpecificationMem-mem model
  7. 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.
  8. Another interesting approach
  9. How to approach VM design when you want a JIT
  10. Lets now focus on the concurrency support
  11. VM support for concurrency as it is today is insufficientOur basic idea: Add support to the IL
  12. But lets come back to our survey.So what is the state of the art to concurrency support in Ils?
  13. 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
  14. Basic Question for the Survey:How do VMs support concurrency models today?
  15. Atomic: native word size 32/64bit, no update
  16. Split up slide
  17. 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