On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Static scheduling of synchronous data flow programs for digital signal processing
IEEE Transactions on Computers
Structure and interpretation of computer programs
Structure and interpretation of computer programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Challenges in type systems research
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Elements of ML programming (ML97 ed.)
Elements of ML programming (ML97 ed.)
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Tractable Constraints in Finite Semilattices
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Hierarchical finite state machines with multiple concurrency models
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Structured Component Composition Frameworks for Embedded System Design
HiPC '02 Proceedings of the 9th International Conference on High Performance Computing
System-Level Types for Component-Based Design
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Hi-index | 0.00 |
We present the design and implementation of the type system for Ptolemy II, which is a tool for component-based heterogeneous modeling and design. This type system combines static typing with run-time type checking. It supports polymorphic typing of components, and allows automatic lossless type conversion at run-time. To achieve this, we use a lattice to model the lossless type conversion relation among types, and use inequalities defined over the type lattice to specify type constraints in components and across components. The system of inequalities can be solved efficiently, with existence and uniqueness of a solution guaranteed by fixed-point theorems. This type system increases the safety and flexibility of the design environment, promotes component reuse, and helps simplify component development and optimization. The infrastructure we have built is generic in that it is not bound to one particular type lattice. The type system can be extended in two ways: by adding more types to the lattice, or by using different lattices to model different system properties. Higher-order function types and extended types can be accommodated in this way.