^ Advanced Collaborative Systems Laboratory (ACSL) M. T. Harandi* U.S. Army Construction Engineering Research Laboratory, DACA88-91-D-0005, DACA 88-91-D-0006; Intel Corp.; Sun Microsystems Inc.; Bull; Fujitsu/Open Systems Solutions; Hewlett-Packard Co.
The Advanced Collaborative Systems Laboratory is a collaborative venture with the U.S. Army Corps of Engineers and various industrial sponsors. The goal of research at ACSL is the development of next-generation environments to address the complex issues associated with understanding and supporting collaborative engineering processes. A particular focus is the development of knowledge-based tools that support collaborative software development processes. This should be viewed as a prototypical area of endeavor rather than a closure of interests. The research has three major thrusts: models and technologies for the support of collaborative activities, development and application of knowledge-based theories and methodologies to increase the level of support that can be provided to users, and development of advanced user-interface management systems.
^ Automated Support for Object-oriented Design Evolution M. T. Harandi* U.S. Army Construction Engineering Research Laboratory, DACA88-94-K-0014
In large-scale software development, design occurs in an evolutionary manner. This is particularly true in object-oriented software development. During the design process many objects, relations, and other aspects of the system will change. Each change would necessitate other changes and may make the system inconsistent. It is usually the designers' responsibility to manage this change process. Managing this process, however, is a tedious and often complicated task. This research is aimed at developing an automated support tool to assist with object change management. Researchers address such issues as types of design change, semantics of change, formalization of change operators, and knowledge required for automated change management.
^ Formalization of Code Reuse through Abstract Algorithms M. T. Harandi,* J. Caplan National Aeronautics and Space Administration, NAG 1-613
This project intends to study the form and use of a new abstraction method using data structure independent algorithm skeletons called task-oriented abstract algorithms (TOAA). These algorithm skeletons represent the essence of a common task, without the details that apply to special cases. Deciding what data structure to use in an abstract algorithm is part of its specialization and implementation information. Reusable software artifacts are most useful when they carry verification information. The proposed method of research is expected to provide partially verified reusable skeletons and correctness preserving specializations that provide the final proof of an implementation. The verification information includes assertions, data invariants, and restrictions on subtasks or data structure operations.
^ Compiling Functional Languages with State S. N. Kamin,* M. Beckman, W. Harrison National Aeronautics and Space Administration, NAG 1-613
The major challenge in bringing functional languages into practice is compiling them into code that matches the efficiency of conventional languages. One approach to doing this is to mix functional and imperative features in a single language. However, such a language is much harder to compile than either a conventional or a functional language. This study is focused on static analysis methods for the compilation of one such language, the Imperative Lambda Calculus.
^ Domain-specific Languages S. N. Kamin* University of Illinois
Domain-specific languages are those computer languages designed for convenience when programming applications in a restricted domain. They are also called special-purpose languages, or simply "minilanguages." In practice, the design of such languages is often ad hoc, or based on the design of outmoded general-purpose languages. However, the most advanced programming language concepts (which frequently involve a trade-off of efficiency for programmer convenience) may be more easily applied in special domains than in general-purpose programming. This project seeks to find ways in which advanced functional programming concepts can be applied to the design of domain-specific languages.
^ Functional Programming and Scientific Computation S. N. Kamin,* U. S. Reddy,* M. Beckman, W. Hsu National Science Foundation, ANTC CCR 93-03043
The goal of this project is the design, implementation (both sequential and parallel), and realistic application of a functional programming language supporting the development of scientific codes. Functional languages are characterized by higher-order functions and lazy evaluation, two features which make them uniquely expressive and elegant, though at times inefficient. Scientific programming, on the other hand, demands great efficiency and has traditionally been done in FORTRAN. Design and implementation issues of these languages will be studied, and an application framework will be developed for the construction of programs in the domain of computerized tomography.