ACM Home Page
Please provide us with feedback. Feedback
A type-level approach to component prototyping
Full text PdfPdf (367 KB)
Source Foundations of Software Engineering archive
International workshop on Synthesis and analysis of component connectors: in conjunction with the 6th ESEC/FSE joint meeting table of contents
Dubrovnik, Croatia
Pages: 23 - 36  
Year of Publication: 2007
ISBN:978-1-59593-720-X
Authors
Luís Barbosa  Univ. do Minho, Portugal
Jácome Cunha  Univ. do Minho, Portugal
Joost Visser  Software Improvement Group, The Netherlands
Sponsors
CEPIS : The Council of European Professional Informatics Societies
ACM: Association for Computing Machinery
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 26,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1294917.1294920
What is a DOI?

ABSTRACT

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
B. Alarcon and S. Lucas. Crossing the Rubicon: from Haskell to .NET through COM. ERCIM News, 63:51--52, October 2005.
 
2
F. Arbab. Abstract Behaviour Types: a Foundation model for components and their composition. In F. S. de Boer, M. Bonsangue, S. Graf, and W.-P. de Roever, editors, Proc. First International Symposium on Formal Methods for Components and Objects (FMCO'02), pages 33--70. Springer Lect. Notes Comp. Sci. (2852), 2003.
 
3
L. S. Barbosa. Towards a Calculus of State-based Software Components. Journal of Universal Computer Science, 9(8):891--909, August 2003.
 
4
L. S. Barbosa. A Perspective on Component Refinement. In F. S. de Boer, M. Bonsangue, S. Graf, and W.-P. de Roever, editors, FMCO'04, Third International Symposium on Formal Methods for Components and Objects -- Revised Lectures, pages 23--48. Springer Lect. Notes Comp. Sci. (3657), 2005.
 
5
L. S. Barbosa and J. N. Oliveira. State-based Components Made Generic. In H. P. Gumm, editor, CMCS'03, Elect. Notes in Theor. Comp. Sci., volume 82.1. Elsevier, 2003.
 
6
 
7
M. A. Barbosa and L. S. Barbosa. A Relational Model for Component Interconnection. Journal of Universal Computer Science, 10(7):808--823, 2004.
 
8
A. Bois, P. Trinder, and H. Loidl. mHaskell: Mobile computation in a purely functional language. Journal of Universal Computer Science, 11(7):1234--1254, 2005.
 
9
 
10
11
 
12
 
13
T. Hallgren. Fun with Functional Dependencies. In Proc. of the Joint CS/CE Winter Meeting, pages 135--145, 2001. Dept. of Computing Science, Chalmers, Göteborg, Sweden.
 
14
 
15
 
16
S. L. P. Jones. Haskell 98: Language and libraries. J. Funct. Program., 13(1):1--255, 2003.
17
 
18
O. Kiselyov and R. Lämmel. Haskell's overlooked object system. Draft of 10 September 2005, 2005.
19
20
 
21
A. Kock. Strong Functors and Monoidal Monads. Archiv für Mathematik, 23:113--120, 1972.
 
22
D. Leijen, E. Meijer, and J. Hook. Haskell as an Automated Controller. In S. D. Swierstra, P. R. Henriques, and J. N. Oliveira, editors, Third International Summer School on Advanced Functional Programming, Braga, pages 268--289. Springer Lect. Notes Comp. Sci. (1608), September 1998.
 
23
 
24
 
25
G. H. Mealy. A Method for Synthesizing Sequential Circuits. Bell Systems Techn. Jour., 34(5):1045--1079, 1955.
 
26
 
27
 
28
O. Nierstrasz and F. Achermann. A Calculus for Modeling Software Components. In F. S. de Boer, M. Bonsangue, S. Graf, and W.-P. de Roever, editors, Proc. First International Symposium on Formal Methods for Components and Objects (FMCO'02), pages 339--360. Springer Lect. Notes Comp. Sci. (2852), 2003.
 
29
 
30
S. Oaks and H. Wong. Jini in a Nutshell. O'Reilly and Associates, 2000.
 
31
G. Papadopoulos and F. Arbab. Coordination Models and Languages. In Advances in Computers -- The Engineering of Large Systems, volume 46, pages 329--400. Centrum voor Wiskunde en Informatica (CWI), 1998.
 
32
D. Parnas. Information Distribution Aspects of Design Methodology. In Information Processing '72, pages 339--344. North-Holland, 1972.
 
33
 
34
 
35
J.-G. Schneider and O. Nierstrasz. Components, Scripts, Glue. In L. Barroca, J. Hall, and P. Hall, editors, Software Architectures -- Advances and Applications, pages 13--25. Springer-Verlag, 1999.
 
36
37
 
38
 
39
P. Wadler and K. Weihe. Component-Based Programming Under Different Paradigms. Technical report, Dagstuhl Seminar 99081, February 1999.

Collaborative Colleagues:
Luís Barbosa: colleagues
Jácome Cunha: colleagues
Joost Visser: colleagues