Behavioral Types for Component-Based Design

We present a framework to extend the concept of type systems in programming languages to capture the dynamic interaction in component-bas ed design, including the communication protocols between components. Our system is based on a light-weight formalism - interface automata. We first propose some extensions to the theory of interface automata to make them more powerful, then use the extended theory to establish a behavioral-level type system. In our system, the interaction types and the dynamic behavior of components are defined using interface automata, and type checking, which checks the compatibility of a component with a certain interaction type, is conducted through automata composition. Our type system is polymorphic in that a component may be compatible with more than one interaction type. We show that a subtyping relation exists among various interaction types and that this relation can be described using a partial order. This behavioral type order can be used to facilitate the design of polymorphic components and simplify type checking. In addition to static type checking, we also propose to extend the use of interface automata to the on-line reflection of component states and to run-time type checking. We illustrate our framework using a component-based design environ- ment, Ptolemy II, and discuss the trade-offs in the design of behavioral type systems.

[1]  Edward A. Lee,et al.  Structure and interpretation of signals and systems , 2002 .

[2]  Edward A. Lee,et al.  System-Level Types for Component-Based Design , 2001, EMSOFT.

[3]  Gaetano Borriello,et al.  Communication Synthesis for Embedded Systems with Global Considerations , 1997, CODES.

[4]  Volker Gruhn Proceedings of the joint 8th European Software Engineering Conference (ESEC) and 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-9) : ESEC/FSE 2001, Vienna, Austria, September 10-14, 2001 , 2001 .

[5]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[6]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[7]  Elie Najm,et al.  Infinite types for distributed object interfaces , 1999, FMOODS.

[8]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[9]  Edward A. Lee,et al.  Ptolemy II, Heterogeneous Concurrent Modeling and Design in JAVA , 2001 .

[10]  Frank Pfenning,et al.  Eliminating array bound checking through dependent types , 1998, PLDI.

[11]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[12]  Gaetano Borriello,et al.  Synthesis of the hardware/software interface in microcontroller-based systems , 1992, 1992 IEEE/ACM International Conference on Computer-Aided Design.

[13]  Martin Odersky Challenges in type systems research , 1996, CSUR.

[14]  Franz Puntigam Types for Active Objects Based on Trace Semantics , 1997 .

[15]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[16]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

[17]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[18]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[19]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[20]  Gaetano Borriello,et al.  Interface co-synthesis techniques for embedded systems , 1995, ICCAD.

[21]  Luciano Lavagno,et al.  Interface synthesis: a vertical slice from digital logic to software components , 1998, ICCAD '98.

[22]  Gilles Kahn,et al.  Coroutines and Networks of Parallel Processes , 1977, IFIP Congress.

[23]  Jr. Allen B. Tucker,et al.  The Computer Science and Engineering Handbook , 1997 .

[24]  D. Walker,et al.  A Calculus of Mobile Processes, Part I , 1989 .

[25]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[26]  Alberto L. Sangiovanni-Vincentelli,et al.  Automatic synthesis of interfaces between incompatible protocols , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[27]  Marco Platzner,et al.  Synthesis of interfaces and communication in reconfigurable embedded systems , 2000 .

[28]  Tammy Noergaard,et al.  Embedded Software , 2009, Encyclopedia of Biometrics.

[29]  Jürgen Teich,et al.  Rapid prototyping of dataflow programs on hardware/software architectures , 1998, Proceedings of the Thirty-First Hawaii International Conference on System Sciences.

[30]  Elie Najm,et al.  Explicit Behavioral Typing for Object Interfaces , 1999, ECOOP Workshops.

[31]  Edward A. Lee,et al.  An Extensible Type System for Component-Based Design , 2000, TACAS.