A type-level approach to component prototyping

Detalhes bibliográficos
Autor(a) principal: Barbosa, L. S.
Data de Publicação: 2007
Outros Autores: Cunha, Jácome Miguel Costa, Visser, Joost
Idioma: eng
Título da fonte: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Texto Completo: http://hdl.handle.net/1822/36548
Resumo: 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 typelevel programming with two effects. Firstly, wiring between components is computed during compilation. Secondly, the well-formedness of the component compositions is guarded byHaskell’s strong type system.
id RCAP_a1cb2f11822918f29d0a8705d383041c
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/36548
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling A type-level approach to component prototypingHaskellType-level programmingMealy machineCoalgebraCombinator libraryEngenharia e Tecnologia::Outras Engenharias e TecnologiasAlgebraic 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 typelevel programming with two effects. Firstly, wiring between components is computed during compilation. Secondly, the well-formedness of the component compositions is guarded byHaskell’s strong type system.Fundação para a Ciência e a Tecnologia, Portugal, under grant number SFRH/BD/30231/2006.ACMUniversidade do MinhoBarbosa, L. S.Cunha, Jácome Miguel CostaVisser, Joost20072007-01-01T00:00:00Zconference paperinfo:eu-repo/semantics/publishedVersionapplication/pdfhttp://hdl.handle.net/1822/36548eng978-1-59593-720-910.1145/1294917.1294920info:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-11T07:32:45Zoai:repositorium.sdum.uminho.pt:1822/36548Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T16:31:08.460787Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv A type-level approach to component prototyping
title A type-level approach to component prototyping
spellingShingle A type-level approach to component prototyping
Barbosa, L. S.
Haskell
Type-level programming
Mealy machine
Coalgebra
Combinator library
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
title_short A type-level approach to component prototyping
title_full A type-level approach to component prototyping
title_fullStr A type-level approach to component prototyping
title_full_unstemmed A type-level approach to component prototyping
title_sort A type-level approach to component prototyping
author Barbosa, L. S.
author_facet Barbosa, L. S.
Cunha, Jácome Miguel Costa
Visser, Joost
author_role author
author2 Cunha, Jácome Miguel Costa
Visser, Joost
author2_role author
author
dc.contributor.none.fl_str_mv Universidade do Minho
dc.contributor.author.fl_str_mv Barbosa, L. S.
Cunha, Jácome Miguel Costa
Visser, Joost
dc.subject.por.fl_str_mv Haskell
Type-level programming
Mealy machine
Coalgebra
Combinator library
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
topic Haskell
Type-level programming
Mealy machine
Coalgebra
Combinator library
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
description 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 typelevel programming with two effects. Firstly, wiring between components is computed during compilation. Secondly, the well-formedness of the component compositions is guarded byHaskell’s strong type system.
publishDate 2007
dc.date.none.fl_str_mv 2007
2007-01-01T00:00:00Z
dc.type.driver.fl_str_mv conference paper
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/1822/36548
url http://hdl.handle.net/1822/36548
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 978-1-59593-720-9
10.1145/1294917.1294920
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv ACM
publisher.none.fl_str_mv ACM
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833595992877826048