Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
L. Cardelli and P. Wegner, “On Understanding Types, Data Abstraction, and Polymorphism,” ACM Computing Surveys, Vol.17, No.4, Dec. 1985.
B. A. Davey and H. A. Priestly, Introduction to Lattices and Order, Cambridge University Press, 1990.
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. (http://ptolemy.eecs.berkeley.edu/publications/papers/01/HMAD/)
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.
C. A. R. Hoare, “Communicating Sequential Processes,” Communications of the ACM, 28(8), August 1978.
G. Kahn, “The Semantics of a Simple Language for Parallel Programming,” Proc. of the IFIP Congress 74, North-Holland Publishing Co., 1974.
G. Kahn and D. B. MacQueen, “Coroutines and Networks of Parallel Processes,” Information Processing 77, B. Gilchrist, editor, North-Holland Publishing Co., 1977.
E. A. Lee, “Computing for Embedded Systems,” IEEE Instrumentation and Measurement Technology Conference, Budapest, Hungary, May 21-23, 2001.
E. A. Lee and D. G. Messerschmitt, “Synchronous Data Flow,” Proc. of the IEEE, Sept., 1987.
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. (http://ptolemy.eecs.berkeley.edu/publications/papers/00/systemLevel/)
N. Lynch and M. Tuttle, “Hierarchical Correctness Proofs for Distributed Algorithms,” Proc. 6th ACM Symp. Principles of Distributed Computing, pp 137–151, 1981.
J. C. Mitchell, “Coercion and Type Inference,” 11th Annual ACM Symposium on Principles of Programming Languages, 175–185, 1984.
M. Odersky, “Challenges in Type System Research,” ACM Computing Surveys, 28(4), 1996.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lee, E.A., Xiong, Y. (2001). System-Level Types for Component-Based Design. In: Henzinger, T.A., Kirsch, C.M. (eds) Embedded Software. EMSOFT 2001. Lecture Notes in Computer Science, vol 2211. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45449-7_16
Download citation
DOI: https://doi.org/10.1007/3-540-45449-7_16
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42673-8
Online ISBN: 978-3-540-45449-6
eBook Packages: Springer Book Archive