System-Level Types for Component-Based Design

  • Edward A. Lee
  • Yuhong Xiong
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2211)


We present a framework to extend the concept of type systems in programming languages to capture the dynamic interaction in component-based design, such as the communication protocols between components. In our system, the interaction types and the dynamic behavior of components are defined using interface automata - an automata-based formalism. 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 this relation can be described using a partial order. This system-level 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 environment, Ptolemy II, and discuss the trade-offs in the design of system-level type systems.


Model Check Type System Communication Protocol Communicate Sequential Process Type Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    L. Cardelli and P. Wegner, “On Understanding Types, Data Abstraction, and Polymorphism,” ACM Computing Surveys, Vol.17, No.4, Dec. 1985.Google Scholar
  2. 2.
    B. A. Davey and H. A. Priestly, Introduction to Lattices and Order, Cambridge University Press, 1990.Google Scholar
  3. 3.
    J. Davis II, C. Hylands, B. Kienhuis, E.A. Lee, J. Liu, X. Liu, L. Muliadi, S. Neuendorffer, J. Tsay, B. Vogel, and Y. Xiong, “Heterogeneous Concurrent Modeling and Design in Java,” Technical Memorandum UCB/ERL M01/12, EECS, University of California, Berkeley, March 15, 2001. ( Scholar
  4. 4.
    L. de Alfaro and T. A. Henzinger, “Interface Automata,” to appear in Proc. of the Joint 8th European Software Engineering Conference and 9th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (ESEC/FSE 01), Austria, 2001.Google Scholar
  5. 5.
    C. A. R. Hoare, “Communicating Sequential Processes,” Communications of the ACM, 28(8), August 1978.Google Scholar
  6. 6.
    G. Kahn, “The Semantics of a Simple Language for Parallel Programming,” Proc. of the IFIP Congress 74, North-Holland Publishing Co., 1974.Google Scholar
  7. 7.
    G. Kahn and D. B. MacQueen, “Coroutines and Networks of Parallel Processes,” Information Processing 77, B. Gilchrist, editor, North-Holland Publishing Co., 1977.Google Scholar
  8. 8.
    E. A. Lee, “Computing for Embedded Systems,” IEEE Instrumentation and Measurement Technology Conference, Budapest, Hungary, May 21-23, 2001.Google Scholar
  9. 9.
    E. A. Lee and D. G. Messerschmitt, “Synchronous Data Flow,” Proc. of the IEEE, Sept., 1987.Google Scholar
  10. 10.
    E. A. Lee and Yuhong Xiong, “System-Level Types for Component-Based Design,” Technical Memorandum UCB/ERL M00/8, EECS, University of California, Berkeley, Feb. 29, 2000. ( Scholar
  11. 11.
    N. Lynch and M. Tuttle, “Hierarchical Correctness Proofs for Distributed Algorithms,” Proc. 6th ACM Symp. Principles of Distributed Computing, pp 137–151, 1981.Google Scholar
  12. 12.
    J. C. Mitchell, “Coercion and Type Inference,” 11th Annual ACM Symposium on Principles of Programming Languages, 175–185, 1984.Google Scholar
  13. 13.
    M. Odersky, “Challenges in Type System Research,” ACM Computing Surveys, 28(4), 1996.Google Scholar
  14. 14.
    H. Xi and F. Pfenning, “Eliminating Array Bound Checking Through Dependent Types,” Proc. of ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI’ 98), pp. 249–257, Montreal, June, 1998.Google Scholar
  15. 15.
    Y. Xiong and E. A. Lee, “An Extensible Type System for Component-Based Design,” 6th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Berlin, Germany, March/April 2000. LNCS 1785.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Edward A. Lee
    • 1
  • Yuhong Xiong
    • 1
  1. 1.Department of Electrical Engineering and Computer SciencesUniversity of California, BerkeleyBerkeleyUSA

Personalised recommendations