IMAGO Prolog and its compilation

Thumbnail Image
Liang, Hua
Journal Title
Journal ISSN
Volume Title
University of Guelph

Most of current Mobile Agent systems are based on scripting or interpreted programming languages that offer portable virtual machines for executing agent code. Mobile agents are able to access many different resources on the Internet, and retrieve, analyze, manipulate, and integrate heterogeneous data and information on demand. These complex behaviors of agents need more expressive power and intelligence provided by their programming language. Naturally, Prolog is one of the best programming languages for the intelligent mobile agent paradigm. IMAGO Prolog [1] is a simplified Prolog with an extended Application Programming Interface (API) to support mobile agent applications. The implementation of IMAGO Prolog is based on a Multi-threading Logic Virtual Machine (MLVM) [2]. The MLVM adopts a novel memory management approach, such as the single stack scheme and Chronological Garbage Collection (CGC) [3]. I designed and implemented the IMAGO Prolog compiler, which translates IMAGO Prolog programs into MLVM bytecodes. The IMAGO Prolog compiler consists of a preprocessor, lexical analyzer, syntax analyzer, code optimizer, code generator and assembler.

Mobile Agent systems, Prolog, programming language, intelligent mobile agent paradigm, IMAGO Prolog [1], Application Programming Interface, mobile agent applications, Multi-threading Logic Virtual Machine, memory management