Coordination languages and their significance
Communications of the ACM
Inside OLE (2nd ed.)
Component-oriented software technology
Object-oriented software composition
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
COBRA fundamentals and programming
COBRA fundamentals and programming
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Universal coalgebra: a theory of systems
Theoretical Computer Science - Modern algebra and its applications
Communication and Concurrency
Professional Dcom Programming
Applying Enterprise Javabeans: Component-Based Development for the J2ee Platform
Applying Enterprise Javabeans: Component-Based Development for the J2ee Platform
Functional Programming with Overloading and Higher-Order Polymorphism
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Topological Skeletons in Haskell#
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
Scripting COM Components in Haskell
ICSR '98 Proceedings of the 5th International Conference on Software Reuse
Journal of Functional Programming
Faking it Simulating dependent types in Haskell
Journal of Functional Programming
Functional pearl: implicit configurations--or, type classes reflect the values of types
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Strongly typed heterogeneous collections
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Components as coalgebras: the refinement dimension
Theoretical Computer Science - Algebraic methodology and software technology
Strong types for relational databases
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Transposing partial components: an exercise on coalgebraic refinement
Theoretical Computer Science - Components and objects
A perspective on component refinement
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Hi-index | 0.00 |
Algebraic theories for modeling components and their interactions offer abstraction over the specifics of component states and interfaces. For example, such theories deal with forms of sequential composition of two components in a manner independent of the type of data stored in the states of the components, and independent of the number and types of methods offered by the interfaces of the combinators. General purpose programming languages do not offer this level of abstraction, which implies that a gap must be bridged when turning component models into implementations. In this paper, we present an approach to prototyping of component-based systems that employs so-called type-level programming (or compile-time computation) to bridge the gap between abstract component models and their type-safe implementation in a functional programming language. We demonstrate our approach using Barbosa's model of components as generalized Mealy machines. For this model, we develop a combinator library in Haskell, which uses type-level programming with two effects. Firstly, wiring between components is computed during compilation. Secondly, the well-formedness of the component compositions is guarded by Haskell's strong type system.