Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf 2016 - Implementing Virtual Machines in Ruby (and C) by Eleanor McHugh Most of us who've played games or worked in any one of a number of popular programming languages will have used virtual machines but unless we've taken a course in programming language design we probably have only a loose idea of what these are and how they work. In this talk I'll look at the various parts necessary to model a computer-like machine in code, borrowing ideas as I go from real-world hardware design. We'll use a mixture of C and Ruby as our modelling languages: C is the lingua franca of the VM world whilst Ruby is the language which brought us monkey-patching...
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In her talk at RubyConf 2016, Eleanor McHugh delves into the intricacies of implementing virtual machines (VMs) using Ruby and C, which cater to both philosophical and technical dimensions of computer languages. The session aims to demystify the concept of virtual machines for attendees who may have some exposure but lack deep understanding. Throughout the presentation, Eleanor highlights the significance of various components necessary for modeling a computer-like machine in code. Key points discussed include: - **Understanding Virtual Machines**: Eleanor explains what a virtual machine is and how they are essential in various programming languages and game emulators, often without users realizing it. - **Machine Philosophy**: The talk touches on a whimsical view of machines having opinions, emphasizing the need for human empathy during the creation of software. - **Types of Virtual Machines**: She outlines various VMs like the JVM, .NET CLR, SECD machine, and C virtual machine, and their roles in programming language execution. - **Hands-on Demos**: Eleanor showcases practical examples, including building simple VMs using C and Ruby, where she introduces basic operations like push, add, and print. - **Memory Management**: Memory challenges in programming are discussed, emphasizing the importance of handling and storing state, stack management, and the execution flow through dispatch loops. - **Optimization Techniques**: She shares insights on optimizing code execution through techniques such as direct threading, explaining how this can lead to efficiency gains. In addition to theoretical discussions, Eleanor shares anecdotes from her programming experiences and nostalgia surrounding older languages and platforms, highlighting the evolution of computing practices. She creatively relates modern programming challenges back to foundational concepts found in retro gaming and older languages like BASIC. The talk concludes with Eleanor encouraging developers to deepen their understanding of virtual machines and their implementations in various programming languages, suggesting that deeper knowledge could lead to improved programming practices and innovative creations. Overall, attendees are left with a blend of philosophical insight into machines and practical knowledge on virtual machine implementation, fostering a richer understanding of the subject matter.
Suggest modifications
Cancel