<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\begin{center}
{\Large \bf
Implementation and Performance \\
of \\
Transaction Logic in Prolog \\}
\vspace*{.25in}

for the degree of Master of Science, 1996\\

by\\
\myname\\
Department of Computer Science\\
University of Toronto\\
\vspace*{0.5in}
{\Large\bf Abstract}
\vspace*{.25in}
\end{center}

\noindent
Transaction Logic is a recently proposed logic which accounts for state 
changes in logic programs and databases. With this increase in 
functionality, it can be used in a wide class of applications such as 
in logic programming, graph theory, and AI. 

The contributions of this thesis are twofold. First, we present a Prolog 
implementation of the serial-Horn fragment of Transaction Logic. We 
developed four prototypes, which range from simple but slow, to fast but 
complex. The functionality of the implementation includes queries, 
backtrackable updates, serial execution of transactions, bulk updates,
and procedural constructs, such as iterative loops. Second, we exercise 
and test our implementations on various graph problems. We test several
different Transaction Logic prototypes implemented on top of several 
different Prologs. 
The results effectively compare the query and update performance of 
different Prologs. They also show that with some Prologs, Transaction
Logic programs achieve efficiency comparable to programs with destructive 
updates in procedural programming languages.
</pre></body></html>