MANOOL
MANOOL is Not an Object-Oriented Language!”

Native Run-time Performance for Dynamic Programming Languages

Updated:

Presentation for the StrangeLoop conference Sep-Oct'21 (CFP talk submission, prospective)

Abstract

Much has been told about advantages and disadvantages of static vs dynamic type checking, without reaching a definitive conclusion. Being a low-budget project, the programming language MANOOL has to seek major conceptual economy, leading to a compact implementation. For instance, MANOOL is a homoiconic language (like Lisp or Tcl). On the other hand, its design and implementation simplicity is the most compelling reason for the dynamic typing choice.

Static type checking is often associated with languages that admit high-performance implementations (e.g., C or Java), but this does not always has to be the case. For instance, sophisticated dynamic specialization (e.g., in case of JavaScript/V8 or LuaJIT) bridges the performance gap between static and dynamic typing languages. Unfortunately, such techniques may be prohibitively expensive for a small project like MANOOL, while being still insufficient to reach the highest possible run-time performance (achievable for C/C++).

Despite of dynamic typing, MANOOL is specifically designed to admit effective static optimizations and thus, nearly native run-time performance. While not a new idea (e.g., Julia has the necessary properties for that), it seems that it has been underexplored so far in mainstream programming (and hopefully, MANOOL has a more general-purpose design than Julia).

You will learn about the overall architecture of MANOOL and its compiler, the intermediate representations, the sources of inefficiencies in high-level dynamic languages (including the dynamic typing), and how they can be overcome. No prior knowledge of modern compiler technology is required.

About the presenter

Alexey Protasov

Alex is an enthusiastic independent developer with Russian origins living in Medellin, Colombia. He constantly dreams with “better” programming languages and has over 30 years of experience with designing and implementing languages and development tools — he offered in the past a shareware visual programming tool, worked in the area of compilers at Intel and Sun Microsystems, and taught compiler construction and the theory of formal languages at a university.

Alex speaks Spanish, English, and Russian. When he is not working on programming languages, he likes swimming, traveling, and dancing (Salsa, Porro, Merengue, Cumbia, etc.).

What will the attendee learn? — Comments for reviewers

Presentation outline

Updated: