NMSU logo Programming Languages, Environments, and Automatic Software Engineering Laboratory

Jon Cook jcook@cs.nmsu.edu
Clinton Jeffery jeffery@cs.nmsu.edu

The PLEASE Lab conducts active research in areas including programming languages, automatic debugging, and component based software engineering.

Projects Students Seminars

Dynamic Dynamic Loader (DDL) (Cook, Abbas, Tambe)

While new software languages and environments, such as Java, offer rich support for software introspection, manipulation, and evolution, there is still much traditional software that is compiled into platform specific executables and runs in a context that does not easily o er such luxuries. Yet even in these environments, mechanisms such as dynamic link libraries do over the potential of building more control over the deployed and running system, and can o er opportunities for supporting dynamic evolution of such systems.

This project is our initial explorations into building such support. Our approach is to extend the GNU open-source dynamic loader to give the deployer control over the configuration of the system, and to be able to dynamically evolve that system. Applications of this capability include runtime monitoring, dynamic analysis, and online program evolution.

Unicon Programming Language (Jeffery, Clayton, et al)

Unicon is the world's first goal-directed object-oriented language. It is described extensively over at Source Forge, and benefits from the work of collaborators from many countries.

Unicron: a Virtual Computer Science Community (Jeffery et al)

Unicron is a modern 3D cartoon-like interactive environment in which users can collaborate on software development and computer science education tasks. The first Unicron implementation will model NMSU's computer science department, with classrooms, labs, hallways and offices.

UFO: The Unicon/FOrman Project (Jeffery, M. Auguston of NPS)

We are addressing one of the most challenging and long standing problems in Software Development - debugging automation. Every textbook on Software Engineering tells that testing and debugging of a software system takes 50% and more of the total development effort. Modern debuggers, like xgdb provide convenient user graphical interface and tracing means, static analysers like lint could detect some common language misuses, and commercially available tools for dynamic error detection like Insure++ or Purify can detect some typical run time bugs like dangling pointers or memory leaks, but the most challenging part of the debugging - the reasoning about the information supplied by the debugging tools is still a prerogative of a human and there is no tool support for this activity.

We suggest to proceed further towards design of intelligent debugging tools. The approach is based on precise program behavior models in terms ov event traces and debugging rules and strategies supported by debugging automation tools will be essentially tools for performing computations over event traces.

One of our first endeavours is to come up with an Encyclopedia of Automatic Debugging, comprising both textual and formal descriptions of automatically detectable generic bugs. As a target language for our research we are using the Unicon programming language. A first paper on UFO is available at http://www.cs.nmsu.edu/TechReports/2002/004.pdf

A substantial collection of links to the current research in debugging autmation is available at the Algorithmic and Automatic Debugging page.

PLEASE Students

The lab depends on the research contributions of graduate and undergraduate students. Here are some of them:

Current Students

Student Topic
Naoman Abbas
Reliable evolution with DDL
Sumant Tambe
DDL Framework
Mayur Palankar
Efficient hardware assisted data break points

Former Students

Keshava Reddy Kottapally a JavaSpace-based framework for mobile agents
Naomi Martinez very high level 3D graphics for Unicon
Scott Underwood automatic debugging using UFO

PLEASE Seminars

The PLEASE lab holds casual seminars on a variety of software engineering topics.

Date Speaker Title Abstract
6/17/04 Sumant Tambe
Dynamic Dynamic Loader (DDL) Framework Architecture We are constructing an extensible, tool-plugin framework to support program monitoring, introspection and evolution. This talk described the architecture of the DDL framework along with how tools and Redirection Library interact using Redirection Library API to carry out their tasks.
3/12/04 Dr. Jonathan Cook
Table-based Redirection
Dr. Cook explained concept of table-based redirection and what needs to be done to support it in DDL infrastructure.
More seminars to be added.


Seminars in year 2002



Last Updated: July 18, 2004