System-Level Design - Semantics Project

Researchers: Tom Henzinger, Edward A. Lee, Alberto Sangiovanni-Vincentelli, and Kees A. Vissers (Visiting Industrial Fellow)
Advisor:Edward A. Lee

The design of future complex systems will require methods and tools that can span a range of abstractions. In particular the specification at several levels deserves attention. In this research we focus on the syntax and semantic models for system-level design. We divide the problem into parts: abstract syntax, syntactic transformations, concrete syntaxes, type systems, and semantic models. The objective is to achieve agreement within these parts to promote interoperatbility of tools and a deeper understanding of design methodologies.

Rather than a single monolithic specification, we plan to produce a set of specifications that cover orthogonal properties of specification languages. This results in a pragmatic approach to interoperability. For interoperability an essential factor is that the underlying concepts are understood and designed with various degrees of compatibility in mind.

We separate the problem into five parts, where we will address the research issues in (roughly) this order:

  1. Abstract syntax. An abstract syntax defines how a design can be decomposed into interconnected components. The abstract syntax is given in the mathematical language of sets and relations.
  2. Syntactic Transformations. A set of operations transform one design into another. They can be used to model higher-order functions and object-oriented inheritance in an abstract way.
  3. Concrete syntax. A concrete syntax defines how a design and transformations on a design can be represented and manipulated in a persistent, computer-usable format. Examples are XML with associated DTDs, APIs, and netlist formats like EDIF or a VHDL like syntax.
  4. Type systems. A type system imposes constraints on the interconnection of computation, and provides for propagation of constraints through type inference and type resolution. We will give an abstract specification that permits tools to define the type systems they assume.
  5. Semantics. A semantics gives a meaning to an interconnection of components. Examples can be that a connection represents a communication between two processes or a transition between two states. We will give a suite of semantic models applicable to component-based design.

Last updated 11/05/99