Multiparadigm Design Environments

Abstract : The goal of the research under the Multiparadigm Design Environments project was to develop prototype environments to support the design of complex software and VLSI systems. Research on this project has produced the following results: (1) New methods for programming in terms of conceptual models; (2) Design of object-oriented languages; (3) Compiler optimization and analysis techniques for high-level languages, including object-oriented languages; (4) Design of an object-oriented database, including development of query languages and optimization methods; (5) Development of operating system support for parallel programming; (6) Algorithm development for I/O efficiency and incremental computation; (7) Determining the computational complexity of ML type inference; (8) A new architecture for programmable systolic arrays; and (9) New parallel algorithms for the graph partitioning problem and proof that key heuristics for it, including simulated annealing, are P-complete. We experimented with object-based methods for programming directly in terms of conceptual models, object-oriented language design, computer program optimization, and object-oriented database construction. We also examined the expressive power and optimization of database/programming languages, and the expression and exploitation of parallelism. The theoretical and experimental fruits of this research are being widely distributed and used, and we expect these results to have a strong influence on future design environments.