Browsing by Author "Cruz, Daniela"
Now showing 1 - 10 of 32
Results Per Page
Sort Options
- 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.
- Applying program comprehension techniques to Karel robot programsPublication . Oliveira, Nuno; Henriques, Pedro Rangel; Cruz, Daniela; Pereira, Maria João; Mernik, Marjan; Kosar, Tomaz; Crepinsek, MatejAbstract—In the context of program understanding, a challenge research topic1 is to learn how techniques and tools for the comprehension of General-Purpose Languages (GPLs) can be used or adjusted to the understanding of Domain-Specific Languages (DSLs). Being DSLs tailored for the description of problems within a specific domain, it becomes easier to improve these tools with specific visualizations (at a higher abstraction level, closer to the problem level) in order to understand the DSLs programs. In this paper, comprehension techniques will be applied to Karel language. This will allow us to explore the creation of problem domain visualizations for this language and to combine both problem and program domains in order to reach a full understanding of Karel programs.
- Choosing grammars to support language processing coursesPublication . Pereira, Maria João; Oliveira, Nuno; Cruz, Daniela; Henriques, Pedro RangelTeaching Language Processing courses is a hard task. The level of abstraction inherent to some of the basic concepts in the area and the technical skills required to implement efficient processors are responsible for the number of students that do not learn the subject and do not succeed to finish the course. In this paper we intend to list the main concepts involved in Language Processing subject, and identify the skills required to learn them. In this context, it is feasible to identify the difficulties that lead students to fail. This enables us to suggest some pragmatic ways to overcome those troubles. We will focus on the grammars suitable to motivate students and help them to learn easily the basic concepts. After identifying the characteristics of such grammars, some examples are presented to make concrete and clear our proposal. The contribution of this paper is the systematic way we approach the process of teaching Language Processing courses towards a successful learning activity.
- Code inspection approaches for program visualizationPublication . Cruz, Daniela; Berón, Mario; Henriques, Pedro Rangel; Pereira, Maria JoãoThe aim of this paper is to show the approaches involved in the implementation of two tools of PCVIA project that can be used for Program Comprehension. Both tools use known compiler techniques to inspect code in order to visualize and understand programs’ execution but one of them modifies the source code and the other not. In the non-invasive approach, we convert the source program into an internal decorated (or attributed) abstract syntax tree and then we visualize the structure traversing it, and applying visualization rules at each node according to a pre-defined rule-base. No changes are made in the source code, and the execution is simulated. In the invasive approach, we traverse the source program and instrument it with inspection functions. Those functions, also known as inspectors, provide information about the function-call flow and data usage at runtime (during the actual program execution). This information is collected and gathered in an information repository that is then displayed in a suitable form for navigation. These two different approaches are used respectively by Alma (generic program animation system) and CEAR (C Rooting Algorithm Visualization tool). For each tool several examples of visualization are shown in order to discuss the information that is included in the visualizations, visualization types and the use of Program Animation for Program Comprehension.
- Comparing general-purpose and domain-specific languages: an empirical studyPublication . Kosar, Tomaz; Oliveira, Nuno; Mernik, Marjan; Pereira, Maria João; Crepinsek, Matej; Cruz, Daniela; Henriques, Pedro RangelMany domain-specific languages, that try to bring feasible alternatives for existing solutions while simplifying programming work, have come up in recent years. Although, these little languages seem to be easy to use, there is an open issue whether they bring advantages in comparison to the application libraries, which are the most commonly used implementation approach. In this work, we present an experiment, which was carried out to compare such a domain-specific language with a comparable application library. The experiment was conducted with 36 programmers, who have answered a questionnaire on both implementation approaches. The questionnaire is more than 100 pages long. For a domain-specific language and the application library, the same problem domain has been used – construction of graphical user interfaces. In terms of a domain-specific language, XAML has been used and C# Forms for the application library. A cognitive dimension framework has been used for a comparison between XAML and C# Forms.
- Comparing generators for language-based toolsPublication . Cruz, Daniela; Pereira, Maria João; Berón, Mario; Fonseca, Ruben; Henriques, Pedro RangelThe first step in any language development project is the Compiler Generator choice. Nowadays there are many offers, based on translation grammars, attribute grammars or other language specification formalisms. To make up a decision, more factors than just the tool user-friendliness and the processor’s quality should be taken into account. To aid the language developer, we analyze in this paper three Compiler Generators. The traditional and well known YACC, and two more recent ones, LISA and AnTLR-3. The first produces a Syntax-Directed Translator, while the others generate a Semantic-Directed Translator based on attribute evaluation. Moreover both the AG-based generators also produce other Language-based Tools that are mentioned and compared.
- Comparison of XAML and C# frorms using cognitive dimensions frameworkPublication . Mernik, Marjan; Kosar, Tomaz; Crepinsek, Matej; Henriques, Pedro Rangel; Cruz, Daniela; Pereira, Maria João; Oliveira, NunoMany domain-specific languages arise in the past years, trying to bring feasible alternatives for existing solutions with purpose to simplify programmers work. Although these little languages seem to be easier to use, there is an open issue whether they bring advantages comparing to most commonly used implementation approach, application libraries. In this work we present an experiment, carried out to compare such domain-specific language with comparable application library. The experiment was conducted with 36 programmers, which were answering questions on more than 100 long pages on both implementation approaches. For domain-specific language and application library the same problem domain has been used { construction of graphical user interfaces. In terms of domain-specific language, XAML has been used and C# Forms for application library. For comparison of XAML and C# Forms cognitive dimension framework has been used.
- Constructing program animations using a pattern-based approachPublication . Cruz, Daniela; Henriques, Pedro Rangel; Pereira, Maria JoãoThe aim of this paper is to discuss how our pattern-based strategy for the visualization of data and control flow can effectively be used to animate the program and exhibit its behavior. That result allows us to propose its use for Program Comprehension. The animator uses well known compiler techniques to inspect the source code in order to extract the necessary information to visualize it and understand program execution. We convert the source program into an internal decorated (or attributed) abstract syntax tree and then we visualize the structure by traversing it, and applying visualization rules at each node according to a pre-defined rule-base. In order to calculate the next step in the program execution, a set of rewriting rules are applied to the tree. The visualization of this new tree is shown and the program animation is constructed using an iterative process. No changes are made in the source code, and the execution is simulated step by step. Several examples of visualization are shown to illustrate the approach and support our idea of applying it in the context of a Program Comprehension environment.
