On the Performance of Bytecode Interpreters in Prolog

08/28/2020
by   Philipp Körner, et al.
0

The semantics and the recursive execution model of Prolog make it very natural to express language interpreters in form of AST (Abstract Syntax Tree) interpreters where the execution follows the tree representation of a program. An alternative implementation technique is that of bytecode interpreters. These interpreters transform the program into a compact and linear representation before evaluating it and are generally considered to be faster and to make better use of resources. In this paper, we discuss different ways to express the control flow of interpreters in Prolog and present several implementations of AST and bytecode interpreters. On a simple language designed for this purpose, we evaluate whether techniques best known from imperative languages are applicable in Prolog and how well they perform. Our ultimate goal is to assess which interpreter design in Prolog is the most efficient, as we intend to apply these results to a more complex language. However, we believe the analysis in this paper to be of more general interest.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/24/2020

Context-Aware Parse Trees

The simplified parse tree (SPT) presented in Aroma, a state-of-the-art c...
research
09/17/2018

FormuLog: Datalog for static analysis involving logical formulae

Datalog has become a popular language for writing static analyses. Becau...
research
06/28/2022

InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments

Due to the vast number of students enrolled in Massive Open Online Cours...
research
04/24/2015

Using Syntax-Based Machine Translation to Parse English into Abstract Meaning Representation

We present a parser for Abstract Meaning Representation (AMR). We treat ...
research
10/15/2021

Zipping Strategies and Attribute Grammars

Strategic term rewriting and attribute grammars are two powerful program...
research
02/19/2022

Is there an aesthetic component of language?

Speakers of all human languages make use of grammatical devices to expre...
research
07/27/2021

So You Want to Analyze Scheme Programs With Datalog?

Static analysis approximates the results of a program by examining only ...

Please sign up or login with your details

Forgot password? Click here to reset