Font Size: a A A

An efficient and portable implementation of a concurrent constraint language

Posted on:1998-06-19Degree:Ph.DType:Dissertation
University:The University of ArizonaCandidate:Gudeman, David AlanFull Text:PDF
GTID:1468390014476121Subject:Computer Science
Abstract/Summary:
This dissertation describes a sequential implementation of a concurrent constraint programing language called Janus. The language implemented is somewhat different from the original Janus; it is a flat guarded language with assignment, similar to Strand and to FGHC. This implementation, called jc (Janus Compiler) compiles Janus source code to C, and then calls a C compiler to compile the C code. This technique gives us most of the performance benefits of compiling to machine code, but also has the portability of an interpreter.; There are some special problems involved in the implementation of a language like Janus. First, Janus data is dynamically typed. Therefore each data value must carry type information and in principle every operation must check this type information in order to operate correctly. Second, procedure calls are much more common in Janus than in most other languages since every conditional and every loop must be coded as a call to a procedure. Third, Janus has the ability to suspend if a variable is evaluated before it is assigned a value.; The jc implementation addresses these problems with a set of novel design decisions and optimization techniques. It was our goal to ensure, as far as possible, that programs that do not make essential use of the special features of Janus should not pay the performance penalty of having those features available. In particular, a program that is a fairly direct translation of a C program to Janus should execute about as fact as the original C program did.
Keywords/Search Tags:Janus, Implementation, Language, Program
Related items