Browsing by Author "Henriques, Pedro Rangel"
Now showing 1 - 10 of 114
Results Per Page
Sort Options
- AId: uma Ferramenta para análise de identificadores de programas JavaPublication . Azcurra, Javier; Berón, Mario; Montejano, Germán; Farnese, Augusto; Henriques, Pedro Rangel; Pereira, Maria JoãoAs demandas atuais no desenvolvimento de software implicam uma evolução e manutenção constante do software com menor custo de tempo e recursos [15,16, 17, 18]. A Compreensão de Programas (CP), uma disciplina da Engenharia do Software, fornece os métodos, técnicas e estratégias para levar adiante esta tarefa. Em geral, as técnicas de compreensão fazem uso de duas classes muito importantes de informação: Estática e Dinâmica. Em ambas as classes, há um elemento que é informativo e sempre usado: os identificadores (Id). Estudos indicam que os Ids, mesmo quando abreviados ou compostos, encerram indícios das funcionalidades dos sistemas onde são usados [12, 7, 9, 8]. Por esta razão construir ferramentas de compreensão que automatizem o processo de extração e análise dos identificadores é uma contribuição muito importante para a CP. Neste artigo apresenta-se a AId uma ferramenta que: i) automatiza a recuperação de identificadores encontrados em programas escritos em Java, e ii) aplica algoritmos de análise de identificares a fim de capturar o seu significado com vista a ajudar a compreender o programa.
- AID: una herramienta para el análisis de identificadores en programas JAVAPublication . Azcurra, Javier; Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria JoãoLas demandas actuales en el desarrollo de software implican una evolución y mantenimiento constantes con el menor costo de tiempo y recursos. La Comprensión de Programas (CP) es una disciplina de la Ingeniería de Software (IS) que ofrece Métodos, Técnicas, Estrategias y Herramientas para llevar adelante esas tareas. Generalmente las técnicas de comprensión emplean dos fuentes importantes de información: Estática y Dinámica. En ambas fuentes existe un elemento que brinda información y es muy utilizado: los identificadores (Id). Estudios indican que los Ids contienen indicios sobre las funcionalidades de los sistemas. Por tal motivo, construir herramientas automatizadas de comprensión que puedan extraer y analizar los Ids es un aporte muy importante al área de la CP. En este artículo se presenta AId, una herramienta que extrae y analiza Ids con el propósito de encontrar su significado y de esta forma ayudar a comprender el programa de estudio.
- ALMA versus DDDPublication . Cruz, Daniela; Henriques, Pedro Rangel; Pereira, Maria JoãoTo be a debugger is a good thing! Since the very beginning of the programming activity, debuggers are the most important and widely used tools after editors and compilers; we completely recognize their importance for software development and testing. Debuggers work at machine level, after the compilation of the source program; they deal with assembly, or binary-code, and are mainly data structure inspectors. Alma is a program animator based on its abstract representation. The main idea is to show the algorithm being implemented by the program, independently from the language used to implement it. To say that ALMA is a debugger, with no value added, is not true! ALMA is a source code inspector but it deals with programming concepts instead of machine code. This makes possible to understand the source program at a conceptual level, and not only to fix run time errors. In this paper we compare our visualizer/animator system, ALMA, with one of the most well-known and used debuggers, the graphical version of GDB, the DDD program. The aim of the paper is twofold: the immediate objective is to prove that ALMA provides new features that are not usually offered by debuggers; the main contribution is to recall the concepts of debugger and animator, and clarify the role of both tools in the field of program understanding, or program comprehension.
- An attribute grammar specification of IIS*Case PIM conceptsPublication . Lukovic, Ivan; Pereira, Maria João; Oliveira, Nuno; Cruz, Daniela; Henriques, Pedro RangelIIS*Case is a model driven software tool that provides information system modeling and prototypes generation. It comprises visual and repository based tools for creating various platform independent model (PIM) specifications that are latter transformed into the other, platform specific specifications, and finally to executable programs. Apart from having PIMs stored as repository definitions, we need to have their equivalent representation in the form of a domain specific language. One of the main reasons for this is to allow for checking the formal correctness of PIMs being created. In the paper, we present such a meta-language, named IIS*CDesLang. IIS*CDesLang is specified by an attribute grammar (AG), created under a visual programming environment for AG specifications, named VisualLISA.
- An effective way to teach language processing coursesPublication . Pereira, Maria João; Oliveira, Nuno; Cruz, Daniela; Henriques, Pedro RangelIn this chapter we identify the difficulties that lead students of Language Processing (LP) courses to fail. All of us that teach Language Processing topics are aware of the complexity of this task; we know that a great part of the students will face big difficulties inherent to the level of abstraction associated with some of the basic concepts in the area, and to the technical capacities required to implement efficient processors. A key issue that we have identified along the years we are teaching Language Processing courses is the lack of students’ motivation to learn the main topics. This issue is something that we want to overcome with our proposal. A starting point for this research is to identify the main concepts involved in Language Processing subject, and to understand the skills required to learn them. Considering that a person just learns when is involved in a process we argue that motivation is a crucial factor to engage students in the course work allowing them to achieve the required knowledge acquisition. We will state that motivation is highly dependent on the languages used to work on during the course. So, we discuss the characteristics that a language should have to be a motivating case study. We think that LP teachers should be very careful in their choices and be astute in the way they explore the underlying grammars along the course evolution.
- An Ontology to Understand Programming CocktailsPublication . Neto, Alvaro Costa; Pereira, Maria João Varanda; Henriques, Pedro RangelAn ever-growing landscape of programming technologies (tools, languages, libraries and frameworks) has rapidly become the norm in many domains of computer programming— Web Development being the most noticeable example. The concurrent use of many compartmentalised technologies has advantages: it allows for flexibility in implementation, while also improving reusability. On the other hand, this proliferation tends to create convoluted development workflows that must be (painstakingly) planned, managed and maintained. The combination of multiple languages, libraries, frameworks and tools (Ingredients) in a single project effectively forms a Programming Cocktail, that can rapidly become cognitive and financially onerous. Aiming at understanding these complex situations, an ontology was created to provide a formal and structured analysis of these cocktails. It emerged from a survey of technologies that several companies are currently using to develop their systems, and aims to provide support for better understanding, classifying and characterising Programming Cocktails. This paper presents not only the ontology itself, but also the consequent knowledge that was constructed and structured through its development.
- Análisis de información informal para facilitar la comprensión de programasPublication . Azcurra, Javier; Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria JoãoLa Comprensión de Programas es un area de la Ingenieria de Software cuyo objetivo principal es desarrollar métodos, técnicas y herramientas que faciliten al programador el entendimiento de las funcionalidades de los sistemas de software. Una forma de alcanzar este objetivo consiste en relacionar el Domino del Problema, es decir la salida del sistema, con el dominio del programa, o sea con las partes del programa utilizadas para generar la salida del sistema. La construcción de esta relación representa el principal desafío en el contexto de la Comprensión de Programas. Una solución posible al desafío previamente mencionado consiste en construir una representación para cada dominio y luego vincular ambas representaciones. La representación de ambos dominios se construye en base a la información, estática y dinámica, que se extrae de los mismos. La estrategia de vinculación usa esa información para construir un mapeo entre los elementos de ambos dominios. La información estática se extrae desde el código fuente del sistema usando técnicas de compilación. La información dinámica requiere que el sistema sea modificado sin cambiar su semántica y luego ejecutado. En este artículo se presenta una línea de investigación que se centra en el estudio, creación e implementación de técnicas de extracción de la información estática desde los sistemas de software. Esta información puede ser estrictamente relacionada con el código del programa, o bien con la información informal provista por los programadores a través de comentarios, literales y documentación.
- Animação de algoritmos tornada sistemáticaPublication . Pereira, Maria João; Henriques, Pedro RangelNeste artigo vamos propor a arquitectura do sistema Alma, um sistema para animar algoritmos programados em diferentes linguagens, oferecendo uma interface de visualização controlável pelo utilizador. Assim, o que na nossa opinião caracteriza esta proposta é: a independência relativamente à aplicação e à linguagem de programação; a existência de uma linguagem de visualização versátil (permitindo adaptá-lo às necessidades do utilizador). Como aplicações possíveis do Alma, destacamos: a animação de algoritmos, como apoio ao ensino da programação e como instrumento da didáctica da matemática; a análise de resposta, para apoio à correcção de provas de avaliação; a interpretação (visual) de documentos anotados.
- Applying attribute grammars to teach linguistic rulesPublication . Barros, Patrícia; Pereira, Maria João; Henriques, Pedro RangelAn attribute grammar is a very well known formalism to describe computer languages but it can also be successfully used to describe linguistic phenomena. Since natural languages can also be expressed in grammars it is natural to describe rules using the same formalism. Linguistic teachers of the University Complutense of Madrid started using attribute grammars but they lack a tool that helps them to specify linguistic rules in a friendly and natural way. Therefore we propose a domain specific language (NLSdsl) carefully designed for non-programmers that will be implemented on an AnTLR based system.
- Applying compiler technology to solve genericPublication . Matos, Paulo; Henriques, Pedro RangelCompilers are tools that transform a high level programming languages into assem- bly or binary code. The essential of the process is done by the interpretation and the code generation steps, but nowadays most compilers have also a strong component of code optimization, that explore as much as possible the potential of the computer architectures to which the compiler must generate the code. These optimizations are based on the information provided by several analysis processes. This paper present some of these code analysis and optimizations, and shows how they can be used to solve problems or improve the quality of solutions used at areas such as industrial engineer and planning.