u/celeritasCeleryin r/ProgrammingLanguages • Recommends
#interpreters#starlark#neilmitchell
Cheaply writing a fast interpreter - Neil Mitchell
2K subscribers • 1 video on Hallway
- Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
- Presented by Neil Mitchell
Intermediate. Assumes working knowledge.
8.9K views5 years ago2 recommendations
Systems programmingProgramming languagesCompilers and interpretersPerformance and optimizationPython
Neil Mitchell explores techniques for implementing interpreters efficiently, comparing AST interpretation, bytecode, and closure generation using Starlark.
For dynamic languages, there are well known approaches to achieve maximum performance, e.g. JIT. But such approaches are often very expensive to implement and maintain. In this talk we'll look at ways of implementing interpreters for less frequently used languages, which necessarily trade off performance vs implementation effort. As an example, we will consider the Starlark configuration language, a deterministic subset of Python used by the build systems Buck and Bazel. We'll cover techniques such direct AST interpretation, bytecode, closure generation - comparing the effort and performance of each approach. London Performance Summit 2nd edition @perfsummit1 #londonperfsummitWhy it's here
2 people recommend thisWhat people say. Recommended for its surprising insights into the relative performance of different interpreter implementations.
u/mamcxin r/ProgrammingLanguages • Mentions
On “Orion, a purely functionnal Lisp written in Rust.”
u/mamcxin r/ProgrammingLanguages • Mentions
On “Writing a Register Based VM”
u/mamcxin r/ProgrammingLanguages • Mentions
On “Big update to Enso 2.0 - a textual/visual programming language.”
u/mamcxin r/ProgrammingLanguages • Mentions
On “Wondering about design decisions”
u/everything-narrativein r/ProgrammingLanguages • Mentions
On “April 2022 monthly "What are you working on?" thread”
u/mamcxin r/ProgrammingLanguages • Mentions
On “Does it make sense to write an interpreter in a non-GC programming language (like Rust or C)?”