A Low-level Approach to Reuse for Programming-Language Infrastructure

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=g9_xp0shPns



Duration: 1:11:20
66 views
0


New ideas in programming languages are best evaluated experimentally. But experimental evaluation is helpful only if there is an implementation that is efficient enough to encourage programmers to use the new features. Ideally, language researchers would build efficient implementations by reusing existing infrastructure, but existing infrastructures do not serve researchers well: in high-level infrastructures, many high-level features are built in and can't be changed, and in low-level infrastructures, it is hard to support important *run-time* services such as garbage collection, exceptions, and so on. I am proposing a different approach: for reuse with many languages, an infrastructure needs *two* low-level interfaces: a compile-time interface and a *run-time* interface. If both interfaces provide appropriate mechanisms, the mechanisms can be composed to build many high-level abstractions, leaving the semantics and cost model up to the client. In this talk, I will illustrate these ideas with examples drawn from two parts of the C-- language infrastructure: exception dispatch and procedure calls. I will focus on the mechanisms that make it possible for you to choose the semantics and cost model you want. For exceptions, these mechanisms are drawn from both compile-time and run-time interfaces, and together they enable you to duplicate all the established techniques for implementing exceptions. For procedure calls, the mechanisms are quite different; rather than provide low-level mechanisms that combine to form different kinds of procedure calls, I have found it necessary to extend the compile-time interface to enable direct control of the semantics and cost of procedure calls. I will also sketch some important unsolved problems regarding mechanisms to support advanced control features such as threads and first-class continuations.




Other Videos By Microsoft Research


2016-09-06Hyperparameter and Kernel Learning for Graph Based Semi-Supervised Classification
2016-09-06Multi-Engine Machine Translation Guided by Explicit Word Matching
2016-09-06Using Compression Models to Filter Spam; Exploiting Structural Information for Categorization
2016-09-06The Man Who Knew Too Much: Alan Turing and the Invention of the Computer [1/4]
2016-09-06Estimation of intrinsic dimensionality using high-rate vector quantization
2016-09-06Abducted: How People Come to Believe They Were Kidnapped by Aliens [1/11]
2016-09-06Spontaneous Speech: Challenges and Opportunities for Parsing
2016-09-06Some Recent Advances in Gaussian Mixture Modeling for Speech Recognition
2016-09-06How to Survive a Robot Uprising: Tips to Defend Yourself Against The Coming Rebellion
2016-09-06Body for Life for Women
2016-09-06A Low-level Approach to Reuse for Programming-Language Infrastructure
2016-09-06Sensor Networks Workshop 05 - Short Talks (See Abstract)
2016-09-06Sensor Networks Workshop 05 - Keynote
2016-09-06The Search: How Google and Its Rivals Rewrote the Rules of Business and Transformed Our Culture
2016-09-06Zero Configuration Networking with Bonjour [1/2]
2016-09-06Correlation decay in statistical physics and applications to counting problems
2016-09-06Spook: Science Tackles the Afterlife
2016-09-06Garbage-First Garbage Collection (and a Related Compiler Optimizaton) [1/2]
2016-09-06Anansi Boys and Mirrormask
2016-09-06LogTM: Log-based Transactional Memory
2016-09-06Sensor Networks Workshop 05 - Environmentally Immersive Programming



Tags:
microsoft research