IMAGO Prolog and its compilation
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  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) . The MLVM adopts a novel memory management approach, such as the single stack scheme and Chronological Garbage Collection (CGC) . 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.