2005
Authors
Barbosa, A; Cunha, A; Pinto, JS;
Publication
ACM SIGPLAN NOTICES
Abstract
This paper explores sonic ideas concerning the time-analysis of functional programs defined by instantiating typical recursion patterns such as folds, unfolds. and hylomorphisms. The concepts in this paper are illustrated through a rich set of examples in the Haskell programming language. We concentrate on unfolds and folds (also known as anamorphisms and catamorphisms respectively) of recursively defined types, as well as the more general hylomorphism pattern. For the latter, we use as case-studies two famous sorting algorithms, mergesort and quicksort. Even though time analysis is not compositional, we argue that splitting functions to expose the explicit construction of the recursion tree and its later consumption helps with this analysis.
2005
Authors
Cunha, A; Pinto, JS;
Publication
FUNDAMENTA INFORMATICAE
Abstract
Functional programs are particularly well suited to formal manipulation by equational reasoning. In particular, it is straightforward to use calculational methods for program transformation. Well-known transformation techniques, like tupling or the introduction of accumulating parameters, can be implemented using calculation through the use of the fusion (or promotion) strategy. In this paper we revisit this transformation method, but, unlike most of the previous work on this subject, we adhere to a pure point-free calculus that emphasizes the advantages of equational reasoning. We focus on the accumulation strategy initially proposed by Bird, where the transformed programs are seen as higher-order folds calculated systematically from a specification. The machinery of the calculus is expanded with higher-order point-free operators that simplify the calculations. A substantial number of examples (both classic and new) are fully developed, and we introduce several shortcut optimization rules that capture typical transformation patterns.
2005
Authors
Jo, CH; Mernik, M; Bryant, BR; Ancona, M; Auguston, M; Cheung, SC; Debray, SK; Doh, KG; Gabbrielli, M; Harris, T; Heering, J; Jeffery, C; Johnstone, A; Leung, HF; Lins, RD; Logozzo, F; Martinez Lopez, PE; Meijer, E; Michaelson, G; Pareja Flores, C; Saraiva, J; Sloane, T; Wile, D; Winkler, J;
Publication
Proceedings of the ACM Symposium on Applied Computing
Abstract
2005
Authors
Campos, JC; Harrison, MD;
Publication
Encyclopedia of Human Computer Interaction
Abstract
2005
Authors
Alves, TL; Silva, PF; Visser, J; Oliveira, JN;
Publication
FM 2005: FORMAL METHODS, PROCEEDINGS
Abstract
We constructed a tool, called VooDooM, which converts datatypes in VDM-SL into SQL relational data models. The conversion involves transformation of algebraic types to maps and products, and pointer introduction. The conversion is specified as a theory of refinement by calculation. The implementation technology is strategic term rewriting in Haskell, as supported by the Strafunski bundle. Due to these choices of theory and technology, the road from theory to practise is straightforward.
2005
Authors
Cruz, AM; Barbosa, LS; Oliveira, JN;
Publication
JOURNAL OF UNIVERSAL COMPUTER SCIENCE
Abstract
This paper addresses objectification, a formal specification technique which inspects the potential for object-orientation of a declarative model and brings the 'implicit objects' explicit. Criteria for such objectification are formalized and implemented in a runnable prototype tool which embeds VDM-SL into VDM++. The paper also includes a quick presentation of a (coinductive) calculus of such generated objects, framed as generalised Moore machines.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.