The Experts below are selected from a list of 276 Experts worldwide ranked by ideXlab platform

Nirmal Tej Kumar - One of the best experts on this subject based on the ideXlab platform.

Christiano Braga - One of the best experts on this subject based on the ideXlab platform.

  • π towards a simple formal semantic framework for Compiler Construction
    ACM Symposium on Applied Computing, 2019
    Co-Authors: Christiano Braga
    Abstract:

    Compiler Construction is considered an intimidating discipline in Computer Science and related courses. This is perhaps captured quite graphically by the cover of the standard book on the subject, the so-called "Dragon book", by Alfred V. Aho, Jeffrey D. Ullman and later on with Ravi Sethi and Monica S. Lam. There are "red", "green" and "purple dragon" editions, but the Dragon, representing how burdensome people think of the subject, is always there. The aim of this paper is to introduce π, a formal semantic framework for Compiler Construction together with program validation and its implementation in the Maude language that aims at easing the process of Compiler Construction in a rigorous way.

  • SAC - π: towards a simple formal semantic framework for Compiler Construction
    Proceedings of the 34th ACM SIGAPP Symposium on Applied Computing, 2019
    Co-Authors: Christiano Braga
    Abstract:

    Compiler Construction is considered an intimidating discipline in Computer Science and related courses. This is perhaps captured quite graphically by the cover of the standard book on the subject, the so-called "Dragon book", by Alfred V. Aho, Jeffrey D. Ullman and later on with Ravi Sethi and Monica S. Lam. There are "red", "green" and "purple dragon" editions, but the Dragon, representing how burdensome people think of the subject, is always there. The aim of this paper is to introduce π, a formal semantic framework for Compiler Construction together with program validation and its implementation in the Maude language that aims at easing the process of Compiler Construction in a rigorous way.

  • pi towards a simple formal semantic framework for Compiler Construction
    arXiv: Programming Languages, 2018
    Co-Authors: Christiano Braga
    Abstract:

    This paper proposes {\pi}, a formal semantic framework for Compiler Construction together with program validation. {\pi} is comprised by {\pi} Lib, a set of programming languages constructs inspired by Peter Mosses' Component-Based Semantics and {\pi} Automata, an automata-based formalism to describe the operational semantics of programming languages, that generalizes Gordon Plotkin's Interpreting Automata.

  • {\pi}: Towards a Simple Formal Semantic Framework for Compiler Construction
    arXiv: Programming Languages, 2018
    Co-Authors: Christiano Braga
    Abstract:

    This paper proposes {\pi}, a formal semantic framework for Compiler Construction together with program validation. {\pi} is comprised by {\pi} Lib, a set of programming languages constructs inspired by Peter Mosses' Component-Based Semantics and {\pi} Automata, an automata-based formalism to describe the operational semantics of programming languages, that generalizes Gordon Plotkin's Interpreting Automata.

  • Compiler Construction with basic programming languages constructs and generalized interpreting automata
    arXiv: Programming Languages, 2018
    Co-Authors: Christiano Braga
    Abstract:

    We have been developing and applying an approach to teach Compiler Construction that has been showing very promising results (reported by students and the author alike), and we believe that the main reasons for that are: (i) a hands-on approach, in teams, where students actually do the job and classes are essentially meetings to present and discuss the development of their project, very few lectures; (ii) a ludic approach, where they are stimulated, for instance, to create a logo to their project, relating it to things they identify with (such as a warlock on World of Warcraft); the use of real-world project development tools, and share their successes and failures; and, last but not least, (iii) a formal semantic framework that allows for efficient execution and yet a precise way to describe standard components of a Compiler together with additional validation components for programs in the language being compiled. Our formal framework is comprised by Generalized Interpreting Automata, an automata-based formalism to describe the operational semantics of programming languages that generalizes Gordon Plotkin's Interpreting Automata approach, and the Basic Programming Languages Constructs (BPLC) library, a set of programming languages constructs inspired by Peter Mosses' Component-Based Semantics.

Akim Demaille - One of the best experts on this subject based on the ideXlab platform.

  • a set of tools to teach Compiler Construction
    Technical Symposium on Computer Science Education, 2008
    Co-Authors: Akim Demaille, Roland Levillain, Benoit Perrot
    Abstract:

    Compiler Construction is a widely used software engineering exercise, but because most students will not be Compiler writers, care must be taken to make it relevant in a core curriculum. Auxiliary tools, such as generators and interpreters, often hinder the learning: students have to fight tool idiosyncrasies, mysterious errors, and other poorly educative issues. We introduce a set of tools especially designed or improved for Compiler Construction educative projects in C++. We also provide suggestions about new approaches to Compiler Construction. We draw guidelines from our experience to make tools suitable for education purposes.

  • ITiCSE - A set of tools to teach Compiler Construction
    ACM SIGCSE Bulletin, 2008
    Co-Authors: Akim Demaille, Roland Levillain, Benoit Perrot
    Abstract:

    Compiler Construction is a widely used software engineering exercise, but because most students will not be Compiler writers, care must be taken to make it relevant in a core curriculum. Auxiliary tools, such as generators and interpreters, often hinder the learning: students have to fight tool idiosyncrasies, mysterious errors, and other poorly educative issues. We introduce a set of tools especially designed or improved for Compiler Construction educative projects in C++. We also provide suggestions about new approaches to Compiler Construction. We draw guidelines from our experience to make tools suitable for education purposes.

  • making Compiler Construction projects relevant to core curriculums
    Technical Symposium on Computer Science Education, 2005
    Co-Authors: Akim Demaille
    Abstract:

    Having 300 students a year implement a Compiler is a debatable enterprise, since the industry will certainly not recruit them for this competence. Yet we made that decision five years ago, for reasons not related to Compiler Construction. We detail these motivations, the resulting Compiler design, and how we manage the assignment. The project meets its goals, since the majority of former students invariably refer to it as the project that taught them the most.

  • ITiCSE - Making Compiler Construction projects relevant to core curriculums
    Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education - ITiCSE '05, 2005
    Co-Authors: Akim Demaille
    Abstract:

    Having 300 students a year implement a Compiler is a debatable enterprise, since the industry will certainly not recruit them for this competence. Yet we made that decision five years ago, for reasons not related to Compiler Construction. We detail these motivations, the resulting Compiler design, and how we manage the assignment. The project meets its goals, since the majority of former students invariably refer to it as the project that taught them the most.

Marjan Mernik - One of the best experts on this subject based on the ideXlab platform.

  • A tool for Compiler Construction based on aspect-oriented specifications
    31st Annual International Computer Software and Applications Conference (COMPSAC 2007), 2007
    Co-Authors: Damijan Rebernak, Marjan Mernik
    Abstract:

    Aspect-oriented programming (AOP) provides a way to modularize crosscutting concerns. Crosscuting concerns can be found in various representations of software artifacts and in different steps of software life cycle (e.g., source code, models, requirements, language grammars). This paper provides an introduction to the AspectLISA tool and its aspect-oriented specification language for programming language definition and Compiler Construction. AspectLISA is a mature, well-tested system for automatically generating Compilers, interpreters, and other language related tools from formal incremental and reusable aspect-oriented attribute grammar-based specifications. In the paper we discuss about the issues involved in the design and implementation of domain-specific aspect language for Compiler Construction, as well as some benefits of aspect-oriented specifications.

  • COMPSAC (2) - A tool for Compiler Construction based on aspect-oriented specifications
    31st Annual International Computer Software and Applications Conference - Vol. 2 - (COMPSAC 2007), 2007
    Co-Authors: Damijan Rebernak, Marjan Mernik
    Abstract:

    Aspect-oriented programming (AOP) provides a way to modularize crosscutting concerns. Crosscuting concerns can be found in various representations of software artifacts and in different steps of software life cycle (e.g., source code, models, requirements, language grammars). This paper provides an introduction to the AspectLISA tool and its aspect-oriented specification language for programming language definition and Compiler Construction. AspectLISA is a mature, well-tested system for automatically generating Compilers, interpreters, and other language related tools from formal incremental and reusable aspect-oriented attribute grammar-based specifications. In the paper we discuss about the issues involved in the design and implementation of domain-specific aspect language for Compiler Construction, as well as some benefits of aspect-oriented specifications.

  • aspectlisa an aspect oriented Compiler Construction system based on attribute grammars
    Electronic Notes in Theoretical Computer Science, 2006
    Co-Authors: D Rebernak, Marjan Mernik, Pedro Rangel Henriques, Maria Joao Varanda Pereira
    Abstract:

    The 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, aspect-oriented attribute grammars are introduced, and the underlying ideas are incorporated into AspectLISA, an aspect-oriented Compiler generator based on attribute grammars.

  • a two dimensional separation of concerns for Compiler Construction
    ACM Symposium on Applied Computing, 2005
    Co-Authors: Xiaoqing Wu, Suman Roychoudhury, Barrett R Bryant, Jeff Gray, Marjan Mernik
    Abstract:

    During language evolution, Compiler Construction is usually performed along two dimensions: defining new abstract syntax tree (AST) classes, or adding new operations. In order to facilitate such changes, two software design patterns (i.e., the inheritance pattern and the visitor pattern) are widely used to help modularize the language constructs. However, as each design pattern is only suitable for one dimension of extension, neither of these two patterns can independently fulfill the evolution needs during the Compiler Construction process. In this paper, we analyze two dimensions of concerns in Compiler Construction and develop a paradigm allowing Compiler evolution across these two dimensions using both object-orientation and aspect-orientation. Moreover, this approach provides an ability to perform pattern transformation based on pluggable aspects. A simple implementation of an expression language and its possible extension is demonstrated using Java and AspectJ.

  • SAC - A two-dimensional separation of concerns for Compiler Construction
    Proceedings of the 2005 ACM symposium on Applied computing - SAC '05, 2005
    Co-Authors: Xiaoqing Wu, Suman Roychoudhury, Barrett R Bryant, Jeff Gray, Marjan Mernik
    Abstract:

    During language evolution, Compiler Construction is usually performed along two dimensions: defining new abstract syntax tree (AST) classes, or adding new operations. In order to facilitate such changes, two software design patterns (i.e., the inheritance pattern and the visitor pattern) are widely used to help modularize the language constructs. However, as each design pattern is only suitable for one dimension of extension, neither of these two patterns can independently fulfill the evolution needs during the Compiler Construction process. In this paper, we analyze two dimensions of concerns in Compiler Construction and develop a paradigm allowing Compiler evolution across these two dimensions using both object-orientation and aspect-orientation. Moreover, this approach provides an ability to perform pattern transformation based on pluggable aspects. A simple implementation of an expression language and its possible extension is demonstrated using Java and AspectJ.

Martin Ruckert - One of the best experts on this subject based on the ideXlab platform.