2011
Authors
Cunha, A; Pacheco, H;
Publication
Electr. Notes Theor. Comput. Sci.
Abstract
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerplate. This code simply traverses non-interesting parts of the data, and rapidly becomes a maintainability problem. Many generic programming libraries have been proposed to address this issue. Most of them allow the user to specify the behavior just for the interesting bits of the structure, and provide traversal combinators to "scrap the boilerplate". The expressive power of these libraries usually comes at the cost of efficiency, since runtime checks are used to detect where to apply the type-specific behavior. In previous work we have developed an effective rewrite system for specialization and optimization of generic programs. In this paper we extend it to also cover recursive data types. The key idea is to specialize traversal combinators using well-known recursion patterns, such as folds or paramorphisms. These are ruled by a rich set of algebraic laws that enable aggressive optimizations. We present a type-safe encoding of this rewrite system in Haskell, based on recent language extensions such as type-indexed type families.
2011
Authors
Pacheco, H; Cunha, A;
Publication
Proceedings of the 2011 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2011, Austin, TX, USA, January 24-25, 2011
Abstract
This paper presents an equational calculus to reason about bidirectional transformations specified in the point-free style. In particular, it focuses on the so-called lenses as a bidirectional idiom, and shows that many standard laws characterising point-free combinators and recursion patterns are also valid in that setting. A key result is that uniqueness also holds for bidirectional folds and unfolds, thus unleashing the power of fusion as a program optimisation technique. A rewriting system for automatic lens optimisation is also presented, to prove the usefulness of the proposed calculus. © 2011 ACM.
2011
Authors
Cunha, A; Visser, J;
Publication
SCIENCE OF COMPUTER PROGRAMMING
Abstract
Various programming languages allow the construction of structure-shy programs. Such programs are defined generically for many different datatypes and only specify specific behavior for a few relevant subtypes. Typical examples are XML query languages that allow selection of subdocuments without exhaustively specifying intermediate element tags. Other examples are languages and libraries for polytypic or strategic functional programming and for adaptive object-oriented programming. In this paper, we present an algebraic approach to transformation of declarative structure-shy programs, in particular for strategic functions and XML queries. We formulate a rich set of algebraic laws, not just for transformation of structure-shy programs, but also for their conversion into structure-sensitive programs and vice versa. We show how subsets of these laws can be used to construct effective rewrite systems for specialization, generalization, and optimization of structure-shy programs. We present a type-safe encoding of these rewrite systems in Haskell which itself uses strategic functional programming techniques. We discuss the application of these rewrite systems for XPath query optimization and for query migration in the context of schema evolution.
2011
Authors
Barbosa, A; Goncalves, J; Ribeiro, AN; Costa, A;
Publication
EUROCON 2011 - International Conference on Computer as a Tool - Joint with Conftele 2011
Abstract
The transmission of multimedia content between mobile devices is increasingly an area of exploration. The evolution of mobile devices and networks that support them, provide potential to create more sophisticated and innovating services. The fact that the Android platform does not provide the SIP protocol in its architecture, is a limiting factor for the development of new streaming applications. Throughout this paper the Android platform is presented, and more specifically the streaming protocols supported by the current streaming Media Framework. Based on the current Android Media Framework, this paper presents a possible architecture for the integration of the SIP protocol. The integration of this architecture is to surpass the limitations of the current Android platform and promote an improved performance in the current SIP applications, which is reflected in a lower power consumption of the device. © 2011 IEEE.
2011
Authors
Proença, J; Clarke, D; de Vink, EP; Arbab, F;
Publication
Proceedings 10th International Workshop on the Foundations of Coordination Languages and Software Architectures, FOCLASA 2011, Aachen, Germany, 10th September, 2011.
Abstract
Synchronous coordination systems allow the exchange of data by logically indivisible actions involving all coordinated entities. This paper introduces behavioural automata, a logically synchronous coordination model based on the Reo coordination language, which focuses on relevant aspects for the concurrent evolution of these systems. We show how our automata model encodes the Reo and Linda coordination models and how it introduces an explicit predicate that captures the concurrent evolution, distinguishing local from global actions, and lifting the need of most synchronous models to involve all entities at each coordination step, paving the way to more scalable implementations. © J. Proença, D. Clarke, E. de Vink & F. Arbab.
2011
Authors
Clarke, D; Proença, J; Lazovik, A; Arbab, F;
Publication
Sci. Comput. Program.
Abstract
Coordination in Reo emerges from the composition of the behavioural constraints of primitives, such as channels, in a component connector. Understanding and implementing Reo, however, has been challenging due to the interaction of the channel metaphor, which is an inherently local notion, and the non-local nature of the constraints imposed by composition. In this paper, the channel metaphor takes a back seat. We focus on the behavioural constraints imposed by the composition of primitives and phrase the semantics of Reo as a constraint satisfaction problem. Not only does this provide a clear description of the behaviour of Reo connectors in terms of synchronisation and data flow constraints, it also paves the way for new implementation techniques based on constraint satisfaction. We also demonstrate that this approach is more efficient than the existing techniques based on connector colouring.
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.