Implementation of the Programming Language Dino -- A Case Study in Dynamic Language Performance
Vladimir N. Makarov

TL;DR
This paper details the implementation and performance optimization of Dino, a dynamic programming language, demonstrating significant speed improvements through various techniques and comparing it with other popular languages across multiple architectures.
Contribution
It presents a comprehensive case study of Dino's implementation, highlighting effective optimization strategies and performance gains, serving as a guide for dynamic language implementors.
Findings
Performance improved 47 times through various optimizations
Dino's performance on x86-64 surpasses some existing languages
Implementation decisions significantly impact dynamic language performance
Abstract
The article gives a brief overview of the current state of programming language Dino in order to see where its stands between other dynamic programming languages. Then it describes the current implementation, used tools and major implementation decisions including how to implement a stable, portable and simple JIT compiler. We study the effect of major implementation decisions on the performance of Dino on x86-64, AARCH64, and Powerpc64. In brief, the performance of some model benchmark on x86-64 was improved by times after moving from a stack based virtual machine to a register-transfer architecture, a further times by adding byte code combining, a further times through the use of JIT, and a further times by performing type inference with byte code specialization, with a resulting overall performance improvement of about…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Formal Methods in Verification
