1 |
Variability-aware parsing in the presence of lexical macros and conditional compilation
|
|
|
|
In: http://www.informatik.uni-marburg.de/%7Ekaestner/oopsla11_typechef.pdf (2011)
|
|
Abstract:
In many projects, lexical preprocessors are used to manage different variants of the project (using conditional compilation) and to define compile-time code transformations (using macros). Unfortunately, while being a simple way to implement variability, conditional compilation and lexical macros hinder automatic analysis, even though such analysis is urgently needed to combat variability-induced complexity. To analyze code with its variability, we need to parse it without preprocessing it. However, current parsing solutions use unsound heuristics, support only a subset of the language, or suffer from exponential explosion. As part of the TypeChef project, we contribute a novel variability-aware parser that can parse almost all unpreprocessed code without heuristics in practicable time. Beyond the obvious task of detecting syntax errors, our parser paves the road for further analysis, such as variability-aware type checking. We implement variability-aware parsers for Java and GNU C and demonstrate practicability by parsing the product line MobileMedia and the entire X86 architecture of the Linux kernel with 6065 variable features.
|
|
Keyword:
C; Categories and Subject Descriptors D.3.4 [Programming Languages; Coding Tools and Techniques General Terms Algorithms; conditional compilation; D.2.3 [Software Engineering; ifdef; Languages; Linux; Performance Keywords parsing; preprocessor; Processors; software product lines; variability
|
|
URL: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.232.4186 http://www.informatik.uni-marburg.de/%7Ekaestner/oopsla11_typechef.pdf
|
|
BASE
|
|
Hide details
|
|
2 |
Variability-aware parsing in the presence of lexical macros and conditional compilation
|
|
|
|
In: http://www.cs.cmu.edu/~ckaestne/pdf/oopsla11_typechef.pdf (2011)
|
|
BASE
|
|
Show details
|
|
3 |
Why Smalltalk wins the host languages shootout
|
|
|
|
In: http://scg.unibe.ch/archive/papers/Reng09bLanguageShootout.pdf (2009)
|
|
BASE
|
|
Show details
|
|
4 |
Parsing and translation of expressions by genetic programming
|
|
|
|
In: http://www.cs.bham.ac.uk/~wbl/biblio/gecco2005/docs/p1681.pdf (2005)
|
|
BASE
|
|
Show details
|
|
5 |
Refactoring via database representation
|
|
|
|
In: http://aszt.inf.elte.hu/~fun_ver/2004/papers/icai2004_paper_divip.pdf (2004)
|
|
BASE
|
|
Show details
|
|
6 |
M.P.: Flexible protocol specification and execution: Applying event calculus planning using commitments
|
|
|
|
In: http://www.cmpe.boun.edu.tr/courses/cmpe593/spring2006/reading/p273-yolum.pdf (2002)
|
|
BASE
|
|
Show details
|
|
7 |
Nomadic Radio: Speech Audio Interaction for Contextual Messaging in Nomadic Environments
|
|
|
|
In: http://www.media.mit.edu/~nitin/NomadicRadio/tochi/tochi2000.ps (2000)
|
|
BASE
|
|
Show details
|
|
8 |
Nomadic Radio: Speech Audio Interaction for Contextual Messaging in Nomadic Environments
|
|
|
|
In: http://www.media.mit.edu/~nitin/projects/NomadicRadio/tochi/tochi99.ps (2000)
|
|
BASE
|
|
Show details
|
|
9 |
Toward Formalizing Structured Analysis
|
|
|
|
In: http://home.deib.polimi.it/baresi/papers/TOSEM.pdf (1998)
|
|
BASE
|
|
Show details
|
|
10 |
A Graphical Environment for the Design of Concurrent Real-Time Systems
|
|
|
|
In: http://lsi.ugr.es/~mcapel/docencia/doctorado/seguro/TL_artl/moserRamaKuttyMelliarDillon97.pdf (1997)
|
|
BASE
|
|
Show details
|
|
11 |
A practical method for LR and LL syntactic error diagnosis and recovery
|
|
|
|
In: http://www.cs.berkeley.edu/~jcondit/pl-prelim/burke87practical.pdf (1987)
|
|
BASE
|
|
Show details
|
|
12 |
Published, produced and distributed by:
|
|
|
|
In: http://www.lclnet.nl/publications/natural-and-flexible-error-recovery.pdf
|
|
BASE
|
|
Show details
|
|
13 |
Analysis and Visualization of Temporal Changes in Bloggers ’ Activities and Interests
|
|
|
|
In: http://www.tkl.iis.u-tokyo.ac.jp/top/modules/newdb/extract/1152/data/PVis2012_MasahikoITOH_r05.pdf
|
|
BASE
|
|
Show details
|
|
14 |
Evolution as a Noun and Evolution as a Verb
|
|
|
|
In: http://www-dse.doc.ic.ac.uk/~mml/feast/papers/pdf/654.pdf
|
|
BASE
|
|
Show details
|
|
15 |
ABSTRACT Towards Supporting On-Demand Virtual Remodularization Using Program Graphs
|
|
|
|
In: http://www.cis.udel.edu/~shepherd/shepherdAosd2006.pdf
|
|
BASE
|
|
Show details
|
|
16 |
The Use of Application Domain Knowledge (and Other Techniques) for Facilitating Requirements Capture
|
|
|
|
In: http://www.soi.city.ac.uk/homes/till/wp31.ps
|
|
BASE
|
|
Show details
|
|
17 |
Finding Common Ground: Choose, Assert, and Assume
|
|
|
|
In: http://cs.oregonstate.edu/%7Eerwig/papers/ChooseAssertAssume_WODA12.pdf
|
|
BASE
|
|
Show details
|
|
18 |
CORRESPONDING AUTHOR:
|
|
|
|
In: http://groups.inf.ed.ac.uk/switchboard/NXT-LREJ.pdf
|
|
BASE
|
|
Show details
|
|
19 |
A critical look at software tools in corpus linguistics * 1
|
|
|
|
In: http://www.antlab.sci.waseda.ac.jp/research/20130827_linguistic_research_paper/linguistic_research_paper_final.pdf
|
|
BASE
|
|
Show details
|
|
20 |
9Tool for Testing Bad Student Programs
|
|
In: http://ceur-ws.org/Vol-1266/SQAMIA2014_Paper9.pdf
|
|
BASE
|
|
Show details
|
|
|
|