My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
PeopleInvolved  
The people behind Teyjus
Updated Feb 4, 2010 by gopalan....@gmail.com

The People Involved with the Teyjus Project

The Teyjus project, led by Gopalan Nadathur, has spanned over a decade and has involved people at least four different universities at different times. This project has also released two implementations of Lambda Prolog that are quite different in detail even though they have a common core of ideas.

The abstract machine, compilation methods and techniques for realizing modularity that underlie the first version of the Teyjus system were designed by Gopalan Nadathur. Bharat Jayaraman and Keehang Kwon contributed valuable ideas in the early stages of the development of the abstract machine. The implementation of these three components, and of the concomitant higher-order unification procedure, in the system were due to Gopalan Nadathur. A preliminary version of the loader was implemented by Guanshan Tong. Dustin Mitchell modified the low-level representation of Lambda Prolog types and terms towards realizing portability and also implemented the changed representation. The disassembler, the front-end for the system and the implementation of many builtins, especially those dealing with I/O, were due to him. Finally, he also undertook the rationalization and re-organization of many components of the project and its documentation. Shyan-Ming Perng provided initial implementations of many of the arithmetic and logical builtins and also of routines for reading and writing terms. Matt Fowles, Andrew Gacek, Kenton Varda and Xiaochu Qi contributed to the project web page, to the maintenance and improvement of the system and to the consistency of the distribution code.

The design of the new virtual machine and the implementation of the second version of Teyjus began around 2004. The first step in this direction was the enunciation by Gopalan Nadathur and Natalie Linnell of an algorithm for pattern unification that could be used in a low-level implementation. Orienting computation around this algorithm, Xiaochu Qi restructured the earlier abstract machine and redesigned the instruction set. She also developed a method for mapping this machine onto existing hardware that has ensured its portability across a wide variety of architectures with different underlying word sizes. An important part of the new scheme is the treatment of types. Gopalan Nadathur and Xiaochu Qi developed the initial ideas. Zach Snow has contributed to these subsequently and is also responsible for their implementation. Ideas pertaining to separate compilation and the associated linking and loading components of the system were developed by Steven Holte and Gopalan Nadathur. Xiaochu Qi directed the implementation of the core of the system---the simulator, the compiler, the linker and the loader---and wrote all of the simulator and disassembler code and substantial parts of the compiler. Gopalan Nadathur and Zach Snow contributed to the compiler, the front-end being written mainly by the latter. Steven Holte is responsible for the linker and the loader. Andrew Gacek has been the "systems guru" throughout the project, the person we have all turned to whenever there has been a high-level design question. He has also taken over the direction of the project from August 2007 when Xiaochu Qi left to take up a "real" job, and has contributed in innumerable ways such as fixing bugs, perceiving the need for and building utilities such as the dependency analyzer for Teyjus modules, checking actual portability for the code, setting up the google repository and getting all of us to use it and designing the distribution tarball. The actual release of the system owes a lot to his efforts.

An indispensable part of the release of a large system such as Teyjus is its testing. The first version has benefitted from the patience of a large number of users who were also kind enough to provide us feedback. We mention a few, knowing surely that we make a mistake by leaving out many others: Amy Felty, Gary Leavens, Chuck Liang, Dale Miller, Markus Mottl, Frank Pfenning, Jeff Polakow, Jeremie Wajs and many people from the LambdaCLAM project, including Louis Denis, Alan Smaill and Jeurgen Zimmer. Dale Miller has also checked out the new system prior to its release.


Sign in to add a comment
Powered by Google Project Hosting