Browsing by Author "Mernik, Marjan"
Now showing 1 - 10 of 14
Results Per Page
Sort Options
- 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.
- AspectLISA: an aspect-oriented compiler construction system based on attribute grammarsPublication . Rebernak, Damijan; Mernik, Marjan; Henriques, Pedro Rangel; Pereira, Maria JoãoThe use of object-oriented techniques and concepts, like encapsulation and inheritance, greatly improves language specifications towards better modularity, reusability and extensibility. Additional improvements can be achieved with aspect-oriented techniques since semantic aspects also crosscut many language constructs. Indeed, aspect-oriented constructs have been already added to some language specifications. The LISA compiler construction system follows an object-oriented approach and has already implemented mechanisms for inheritance, modularity and extensibility. Adding aspects to LISA will lead to more reusable language specifications. In the paper, aspectoriented attribute grammars are introduced, and the underlying ideas are incorporated into AspectLISA, an aspect-oriented compiler generator based on attribute grammars.
- Automatic generation of language-based toolsPublication . Henriques, Pedro Rangel; Pereira, Maria João; Mernik, Marjan; Lenic, Mitja; Advicausevic, Enis; Zumer, ViljemMany tools can be automatically derived from formal language definitions, such as compilers/interpreters, editors, analyzers, visualizers/animators, etc. Some examples of language-based tools generated automatically by the LISA system are described in the paper. In addition the specification of an algorithm animator and program visualizer, Alma, generated from an extended LISA input-grammar is discussed; LISA principles and code are reused in Alma implementation.
- Automatic generation of language-based tools using the LISA systemPublication . Henriques, Pedro Rangel; Pereira, Maria João; Mernik, Marjan; Lenic, Mitja; Gray, Jeff; Wu, HuiMany tools have been constructed using different formal methods to process various parts of a language specification (e.g. scanner generators, parser generators and compiler generators). The automatic generation of a complete compiler was the primary goal of such systems, but researchers recognised the possibility that many other language-based tools could be generated from formal language specifications. Such tools can be generated automatically whenever they can be described by a generic fixed part that traverses the appropriate data structures generated by a specific variable part, which can be systematically derivable from the language specifications. The paper identifies generic and specific parts for various language-based tools. Several language-based tools are presented in the paper, which are automatically generated using an attribute grammar-based compiler generator called LISA. The generated tools that are described in the paper include editors, inspectors, debuggers and visualisers/animators. Because of their complexity of construction, special emphasis is given to visualisers/animators, and the unique contribution of our approach toward generating such tools.
- 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.
- 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.
- Grammatical approach to problem solvingPublication . Henriques, Pedro Rangel; Kosar, Tomaz; Mernik, Marjan; Pereira, Maria João; Zumer, ViljemThe paper presents a grammatical approach to problem solving. It supports for-mal software, specification using attribute grammars, from, which, a rapid prototype can be generated as well the incremental, software development. Domain concepts and relationships among them. have to be identified from a problem statement and represented as a context-free grammar. The obtained context-free grammar describes the syntax of a dowain-specific language whose semantics is the same as the functionality of the system under implementation. The semantics of this language is then described using attribute grammars from which a compiler is automatically generated. The execution of a particular programme written in a domain-specific language corresponds to the execution of a prototype of a system on a particular use-case.
- Influence of domain-specific notation to program understandingPublication . Kosar, Tomaz; Mernik, Marjan; Crepinsek, Matej; Henriques, Pedro Rangel; Cruz, Daniela; Pereira, Maria João; Oliveira, NunoApplication libraries are the most commonly used implementation approach to solve problems in general-purpose languages. Their competitors are domain-specific languages, which can provide notation close to the problem domain. We carried out an empirical study on comparing domain-specific languages and application libraries regarding program understanding. In this paper, one case study is presented. Over 3000 lines of code were studied and more than 86 pages long questionnaires were answered by end-users, answering questions on learning, perceiving and evolving programs written in domain specific language as well as general-purpose language using application library. In this paper, we present comparison results on end-users’ correctness and consumed time. For domain specific language and application library same problem domain has been used – a well-known open source graph description language, DOT.
- Program comprehension for domain-specific languagesPublication . Pereira, Maria João; Mernik, Marjan; Cruz, Daniela; Henriques, Pedro RangelIn the past, we have been looking for program comprehension tools that are able to interconnect operational and behavioral views, aiming at aiding the software analyst to relate problem and program domains in order to reach a full understanding of software systems. In this paper we are concerned with Program Comprehension issues applied to Domain Specific Languages (DSLs). We are now willing to understand how techniques and tools for the comprehension of traditional programming languages fit in the understanding of DSLs. Being the language tailored for the description of problems in a specific domain, we believe that specific visualizations (at a higher abstraction level, closer to the problem level) could and should be defined to enhance the comprehension of the descriptions in that particular domain.
- Software development with grammatical approachPublication . Kosar, Tomaz; Mernik, Marjan; Zumer, Viljem; Henriques, Pedro Rangel; Pereira, Maria JoãoThe paper presents a grammatical approach to problem solving. It supports formal software specification using attribute grammars, from which a rapid prototype can be generated, as well as the incremental software development. Domain concepts and relationships among them have to be identified from a problem statement and represented as a context-free grammar. The obtained context-free grammar describes the syntax of a domain-specific language whose semantics is the same as the functionality of the system under implementation. The semantics of this language is then described using attribute grammars from which a compiler is automatically generated. The execution of a particular program written in that domain-specific language corresponds to the execution of a prototype of the system on a particular use-case.