1999
Autores
Saraiva, J; Swierstra, D;
Publicação
COMPILER CONSTRUCTION
Abstract
This paper presents a technique to construct compilers expressed in a strict, purely functional setting. The compilers do not rely on any explicit data structures, like trees, stacks or queues, to efficiently perform the compilation task. They are constructed as a set of functions which are directly called by the parser. An abstract syntax tree is neither constructed nor traversed. Such deforestated compilers are automatically derived from an attribute grammar specification. Furthermore this technique can be used to efficiently implement any multiple traversal algorithm.
2000
Autores
Saraiva, J; Swierstra, D; Kuiper, M;
Publicação
COMPILER CONSTRUCTION, PROCEEDINGS
Abstract
This paper presents a new strict, purely functional implementation of attribute grammars. Incremental evaluation is obtained via standard function memoization. Our new implementation of attribute grammars increases the incremental behaviour of the evaluators by both reducing the memoization overhead and increasing their potential incrementallity. We present also an attribute grammar transformation, which increases the incremental performance of the attribute evaluators after a change that propagates its effects to all parts of the syntax tree. These techniques have been implemented in a purely functional attribute grammar system and the first experimental results are presented.
2008
Autores
Batory, D; Azanza, M; Saraiva, J;
Publicação
MODEL DRIVEN ENGINEERING LANGUAGES AND SYSTEMS, PROCEEDINGS
Abstract
Computational Design (CD) is a paradigm where both program design and program synthesis are computations. CD merges Model Driven Engineering (MDE) which synthesizes programs by transforming models, with Software Product Lines (SPL) where programs are synthesized by composing trans format ions called features. In this paper, basic relationships between MDE and SPL are explored using the language of modern mathematics.
2010
Autores
Silva, JC; Silva, C; Goncalo, R; Saraiva, J; Campos, JC;
Publicação
EICS 2010: PROCEEDINGS OF THE 2010 ACM SIGCHI SYMPOSIUM ON ENGINEERING INTERACTIVE COMPUTING SYSTEMS
Abstract
Graphical user interfaces (GUIs) are critical components of today's software. Developers are dedicating a larger portion of code to implementing them. Given their increased importance, correctness of GUIs code is becoming essential. This paper describes the latest results in the development of GUISurfer, a tool to reverse engineer the GUI layer of interactive computing systems. The ultimate goal of the tool is to enable analysis of interactive system from source code.
2007
Autores
Silva, JC; Campos, JC; Saraiva, J;
Publicação
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.
2011
Autores
Fernandes, JM; Lämmel, R; Saraiva, J; Visser, J;
Publicação
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Abstract
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.