The STUDIA UNIVERSITATIS BABEŞ-BOLYAI issue article summary

The summary of the selected article appears at the bottom of the page. In order to get back to the contents of the issue this article belongs to you have to access the link from the title. In order to see all the articles of the archive which have as author/co-author one of the authors mentioned below, you have to access the link from the author's name.

 
       
         
    STUDIA INFORMATICA - Issue no. 2 / 2018  
         
  Article:   COMPILER FRONT END FUSION: UNDO DESUGARING IN LANGUAGE PROCESSING TOOLS.

Authors:  ARTÚR POÓR, TAMÁS KOZSIK, MELINDA TÓTH, ISTVÁN BOZÓ.
 
       
         
  Abstract:  
DOI: 10.24193/subbi.2018.2.01

Published Online: 2017-06-19
Published Print: 2017-06-29
pp. 5-20
VIEW PDF: Compiler Front End Fusion: Undo Desugaring in Language Processing Tools

Abstract. Compiler front ends often perform desugaring on the source code while constructing the abstract syntax tree (AST). A programming language processing tool (such as a refactoring tool) working with the desugared AST perceives the code at this abstract level, and loses information on the rich syntax used in the actual source code. This paper discusses the concept of front end fusion, a technique which may help language processing tools to retain the syntactic sugar information on the source code in the presence of desugaring compiler front ends. We propose a hybrid front end created from two separate front ends: one provided by the compiler, which offers type information, and another one, which provides the details of the concrete syntax used in the source code. Specifically, we show how to construct a hybrid front end in a language processing tool for the Scala programming language.
1991 Mathematics Subject Classification. 68P15, 68T05, 62B86.
1998 CR Categories and Descriptors. D.3.4 [Programming languages]: Processors - Compilers.
Key words and phrases. parser, abstract syntax tree, compiler front end, syntactic sugar, desugaring, refactoring.
 
         
     
         
         
      Back to previous page