Difference between revisions of "Publications/demaille.09.sac"
From LRDE
(Created page with "{{Publication | published = true | date = 2008-10-11 | authors = Akim Demaille, Roland Levillain, Benoît Sigoure | title = TWEAST: A Simple and Effective Technique to Impleme...") |
|||
Line 7: | Line 7: | ||
| pages = 1924 to 1929 |
| pages = 1924 to 1929 |
||
| address = Waikiki Beach, Honolulu, Hawaii, USA |
| address = Waikiki Beach, Honolulu, Hawaii, USA |
||
− | | |
+ | | lrdeprojects = Tiger |
− | | urllrde = 200903-SAC |
||
| abstract = ASTs are commonly used to represent an input/output program in compilers and language processing tools. Many of the tasks of these tools consist in generating and rewriting ASTs. Such an approach can become tedious and hard to maintain for complex operations, namely program transformation, optimization, instrumentation, etc. On the other hand, concrete syntax provides a natural and simpler representation of programs, but it is not usually available as a direct feature of the aforementioned tools. We propose a simple technique to implement AST generation and rewriting in general purpose languages using concrete syntax. Our approach relies on extensions made in the scanner and the parser and the use of objects supporting partial parsing called Text With Embedded Abstract Syntax Trees (TWEASTS). A compiler for a simple language (Tiger) written in Cxx serves as an example, featuring transformations in concrete syntax: syntactic desugaringoptimization, code instrumentation such as bounds-checkingetc. Extensions of this technique to provide a full-fledged concrete-syntax rewriting framework are presented as well. |
| abstract = ASTs are commonly used to represent an input/output program in compilers and language processing tools. Many of the tasks of these tools consist in generating and rewriting ASTs. Such an approach can become tedious and hard to maintain for complex operations, namely program transformation, optimization, instrumentation, etc. On the other hand, concrete syntax provides a natural and simpler representation of programs, but it is not usually available as a direct feature of the aforementioned tools. We propose a simple technique to implement AST generation and rewriting in general purpose languages using concrete syntax. Our approach relies on extensions made in the scanner and the parser and the use of objects supporting partial parsing called Text With Embedded Abstract Syntax Trees (TWEASTS). A compiler for a simple language (Tiger) written in Cxx serves as an example, featuring transformations in concrete syntax: syntactic desugaringoptimization, code instrumentation such as bounds-checkingetc. Extensions of this technique to provide a full-fledged concrete-syntax rewriting framework are presented as well. |
||
| lrdeslides = http://www.lrde.epita.fr/dload/papers/demaille.09.sac.slides.pdf |
| lrdeslides = http://www.lrde.epita.fr/dload/papers/demaille.09.sac.slides.pdf |
||
| lrdepaper = http://www.lrde.epita.fr/dload/papers/demaille.09.sac.pdf |
| lrdepaper = http://www.lrde.epita.fr/dload/papers/demaille.09.sac.pdf |
||
− | | lrdeprojects = Tiger |
||
| lrdenewsdate = 2008-10-11 |
| lrdenewsdate = 2008-10-11 |
||
| type = inproceedings |
| type = inproceedings |
||
Line 27: | Line 25: | ||
address = <nowiki>{</nowiki>Waikiki Beach, Honolulu, Hawaii, USA<nowiki>}</nowiki>, |
address = <nowiki>{</nowiki>Waikiki Beach, Honolulu, Hawaii, USA<nowiki>}</nowiki>, |
||
month = mar, |
month = mar, |
||
− | project = <nowiki>{</nowiki>Tiger<nowiki>}</nowiki>, |
||
abstract = <nowiki>{</nowiki>ASTs are commonly used to represent an input/output |
abstract = <nowiki>{</nowiki>ASTs are commonly used to represent an input/output |
||
program in compilers and language processing tools. Many of |
program in compilers and language processing tools. Many of |
Revision as of 12:14, 26 April 2016
- Authors
- Akim Demaille, Roland Levillain, Benoît Sigoure
- Where
- Proceedings of the 24th Annual ACM Symposium on Applied Computing (SAC'09)
- Place
- Waikiki Beach, Honolulu, Hawaii, USA
- Type
- inproceedings
- Projects
- Tiger
- Date
- 2008-10-11
Abstract
ASTs are commonly used to represent an input/output program in compilers and language processing tools. Many of the tasks of these tools consist in generating and rewriting ASTs. Such an approach can become tedious and hard to maintain for complex operations, namely program transformation, optimization, instrumentation, etc. On the other hand, concrete syntax provides a natural and simpler representation of programs, but it is not usually available as a direct feature of the aforementioned tools. We propose a simple technique to implement AST generation and rewriting in general purpose languages using concrete syntax. Our approach relies on extensions made in the scanner and the parser and the use of objects supporting partial parsing called Text With Embedded Abstract Syntax Trees (TWEASTS). A compiler for a simple language (Tiger) written in Cxx serves as an example, featuring transformations in concrete syntax: syntactic desugaringoptimization, code instrumentation such as bounds-checkingetc. Extensions of this technique to provide a full-fledged concrete-syntax rewriting framework are presented as well.
Documents
Bibtex (lrde.bib)
@InProceedings{ demaille.09.sac, author = {Akim Demaille and Roland Levillain and Beno\^it Sigoure}, title = {{TWEAST}: A Simple and Effective Technique to Implement Concrete-Syntax {AST} Rewriting Using Partial Parsing}, booktitle = {Proceedings of the 24th Annual ACM Symposium on Applied Computing (SAC'09)}, pages = {1924--1929}, year = 2009, address = {Waikiki Beach, Honolulu, Hawaii, USA}, month = mar, abstract = {ASTs are commonly used to represent an input/output program in compilers and language processing tools. Many of the tasks of these tools consist in generating and rewriting ASTs. Such an approach can become tedious and hard to maintain for complex operations, namely program transformation, optimization, instrumentation, etc. On the other hand, \emph{concrete syntax} provides a natural and simpler representation of programs, but it is not usually available as a direct feature of the aforementioned tools. We propose a simple technique to implement AST generation and rewriting in general purpose languages using concrete syntax. Our approach relies on extensions made in the scanner and the parser and the use of objects supporting partial parsing called Text With Embedded Abstract Syntax Trees (TWEASTS). A compiler for a simple language (Tiger) written in \Cxx serves as an example, featuring transformations in concrete syntax: syntactic desugaring, optimization, code instrumentation such as bounds-checking, etc. Extensions of this technique to provide a full-fledged concrete-syntax rewriting framework are presented as well.} }