Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by HASLab

2007

Combining formal methods and functional strategies regarding the reverse engineering of interactive applications

Authors
Silva, JC; Campos, JC; Saraiva, J;

Publication
Interactive Systems: Design, Specification, and Verification

Abstract
Graphical user interfaces (GUls) make software easy to use by providing the user with visual controls. Therefore, correctness of GUI's code is essential to the correct execution of the overall software. Models can help in the evaluation of interactive applications by allowing designers to concentrate on its more important aspects. This paper describes our approach to reverse engineer an abstract model of a user interface directly from the GUI's legacy code. We also present results from a case study. These results are encouraging and give evidence that the goal of reverse engineering user interfaces can be met with more work on this technique.

2007

A Shortcut Fusion Rule for Circular Program Calculation

Authors
Fernandes, JP; Pardo, A; Saraiva, J;

Publication
HASKELL'07: PROCEEDINGS OF THE ACM SIGPLAN 2007 HASKELL WORKSHOP

Abstract
Circular programs are a powerful technique to express multiple traversal algorithms as a single traversal function in a lazy setting. In this paper, we present a shortcut deforestation technique to calculate circular programs. The technique we propose takes as input the composition of two functions, such that the first builds an intermediate structure and some additional context information which are then processed by the second one, to produce the final result. Our transformation into circular programs achieves intermediate structure deforestation and multiple traversal elimination. Furthermore, the calculated programs preserve the termination properties of the original ones.

2007

Tools and libraries to model and manipulate circular programs

Authors
Fernandes, JP; Saraiva, J;

Publication
Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation

Abstract
This paper presents techniques to model circular lazy programs in a strict, purely functional setting. Circular lazy programs model any algorithm based on multiple traversals over a recursive data structure as a single traversal function. Such elegant and concise circular programs are defined in a (strict or lazy) functional language and they are transformed into efficient strict and deforested, multiple traversal programs by using attribute grammars-based techniques. Moreover, we use standard slicing techniques to slice such circular lazy programs. We have expressed these transformations as an Haskell library and two tools have been constructed: the HaCirc tool that refactors Haskell lazy circular programs into strict ones, and the OCirc tool that extends Ocaml with circular definitions allowing programmers to write circular programs in Ocaml notation, which are transformed into strict Ocaml programs before they are executed. The first benchmarks of the different implementations are presented and show that for algorithms relying on a large number of traversals the resulting strict, deforested programs are more efficient than the lazy ones, both in terms of runtime and memory consumption. Copyright © 2007 ACM.

2007

Report on selected papers from LDTA 2003

Authors
Bryant, BR; Saraiva, J;

Publication
SCIENCE OF COMPUTER PROGRAMMING

Abstract

2007

Integration of RE and MDE paradigms: the projectIT approach and tools

Authors
da Silva, AR; Saraiva, J; Ferreira, D; Silva, R; Videira, C;

Publication
IET SOFTWARE

Abstract
The suggestion that in software development projects the emphasis must be on the project management (RE), requirements engineering, and design activities, and consequently efforts in production activities - such as traditional software programming and testing - should be minimised and performed as automatically as possible is discussed. The ProjectIT approach that integrates contributions from the RE and model-driven engineering communities is also discussed. The goal with requirement specification is not just in managing textual specifications, but also to obtain a consistent requirements document that is in conformance with a domain-specific language, and that can be re-used to increase the design and development activities in the context of model driven and code generation techniques. Furthermore, the feasibility and benefits of this approach by presenting a proof-of-concept case study are discussed, in which the orchestration of the concepts and concrete components related with the ProjectIT approach, the PIT-RSL, XIS and PIT-TSL languages and the ProjectIT-Studio CASE tool is emphasised. A practical demonstration of the approach including the description of the system requirements, the design of the system, the use of code generation techniques, and how they integrate to improve and accelerate the software engineering lifecycle is presented.

2007

Selected papers from SBLP 2007: The 11th Brazilian Symposium on Programming Languages J.UCS special issue

Authors
Bigonha, RS; Musicante, MA; Pardo, A; Garcia, A; Martini, A; Moreira, AF; De Melo, ACV; Du Bois, AR; Santos, A; Camarao, C; Rubira, C; Braga, C; Naumann, D; Haeusler, EH; De Carvalho Junior, FH; Cafezeiro, I; Palsberg, J; Jeuring, J; Saraiva, J; Guimaraes, J; Labra, J; Fiadeiro, JL; Figueiredo, L; Barbosa, LS; Menezes, LC; Maia, M; De Valente, MTO; Bigonha, MAS; Benton, N; Rodriguez, N; Borba, P; Mosses, PD; Lins, RD; Cerqueira, R; Lima, RM; Ierusalimschy, R; Rigo, S; De Schneider, SM; Soares, S; Dascalu, S; Thompson, S; Vene, V; Costa, V; Iorio, VD;

Publication
JOURNAL OF UNIVERSAL COMPUTER SCIENCE

Abstract

  • 228
  • 262