Show simple item record

Compiling Prolog to Logic-inference Virtual Machine

dc.contributor.advisorLi, Xining
dc.contributor.authorWang, Yifei (Fred)
dc.date.accessioned2017-06-07T20:07:49Z
dc.date.available2017-06-07T20:07:49Z
dc.date.created1998
dc.date.issued1998
dc.identifier.urihttp://knowledgecommons.lakeheadu.ca/handle/2453/3087
dc.description.abstractThe Logic-inference Virtual Machine (LVM) is a new Prolog execution model consisting of a set of high-level instructions and memory architecture for handling control and unification. Different from the well-known Warren's Abstract Machine [1], which uses Structure Copying method, the LVM adopts a hybrid of Program Sharing [2] and Structure Copying to represent first-order terms. In addition, the LVM employs a single stack paradigm for dynamic memory allocation and embeds a very efficient garbage collection algorithm to reclaim the useless memory cells. In order to construct a complete Prolog system based on the LVM, a corresponding compiler must be written. In this thesis, a design of such LVM compiler is presented and all important components of the compiler are described. The LVM compiler is developed to translate Prolog programs into LVM bytecode instructions, so that a Prolog program is compiled once and can run anywhere. The first version of LVM compiler (about 8000 lines of C code) has been developed. The compilation time is approximately proportional to the size of source codes. About 80 percent of the time are spent on the global analysis. Some compiled programs have been tested under a LVM emulator. Benchmarks show that the LVM system is very promising in memory utilization and performance.
dc.language.isoen_US
dc.subjectProlog (Computer program language)
dc.subjectLogic programming
dc.titleCompiling Prolog to Logic-inference Virtual Machine
dc.typeThesis
etd.degree.nameMaster of Science
etd.degree.levelMaster
etd.degree.disciplineMathematical Sciences
etd.degree.grantorLakehead University


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record