Developer support for understanding preprocessor macro expansions

László Vidács, Richárd Dévai, R. Ferenc, T. Gyimóthy

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Citation (Scopus)

Abstract

In the age of advanced integrated development environments there is a lack of support for understanding preprocessor macros. The preprocessor has proven to be a powerful tool for decades, but the developer is still guided poorly when the debugger stops at a source code line containing macros. The main problem is that the developer sees the original code, while the compiler uses the preprocessed code in the background. Investigating the usually nested macro calls can be a labor intensive tasks, which increases the overall effort spent on development and maintenance. There are several possibilities to help the developer in similar situations, but these are rarely employed since the preprocessor has its own, separate language to be analyzed. We implemented a Visual Studio plug-in (AddIn) that provides hand-on information on macros to increase the productivity of developers during debugging or program comprehension tasks. We enhanced the idea of macro folding, a technique to show/hide macro names and values within the source code editor; and defined a graphical view for macro expansions. In the background precise dynamic analysis of directives takes place, so the hint given for the developers considers all kind of preprocessor constructs like macros in conditionals and concatenating operators in the replacement text.

Original languageEnglish
Title of host publicationCommunications in Computer and Information Science
Pages121-130
Number of pages10
Volume340 CCIS
DOIs
Publication statusPublished - 2012
Event2012 International Conference on Advanced Software Engineering and Its Applications, ASEA 2012, and the 2012 International Conference on Disaster Recovery and Business Continuity, DRBC 2012, Held in Conjunction with GST 2012 - Jeju Island, Korea, Republic of
Duration: Nov 28 2012Dec 2 2012

Publication series

NameCommunications in Computer and Information Science
Volume340 CCIS
ISSN (Print)18650929

Other

Other2012 International Conference on Advanced Software Engineering and Its Applications, ASEA 2012, and the 2012 International Conference on Disaster Recovery and Business Continuity, DRBC 2012, Held in Conjunction with GST 2012
CountryKorea, Republic of
CityJeju Island
Period11/28/1212/2/12

Fingerprint

Macros
Computer debugging
Studios
Dynamic analysis
Productivity
Personnel

ASJC Scopus subject areas

  • Computer Science(all)

Cite this

Vidács, L., Dévai, R., Ferenc, R., & Gyimóthy, T. (2012). Developer support for understanding preprocessor macro expansions. In Communications in Computer and Information Science (Vol. 340 CCIS, pp. 121-130). (Communications in Computer and Information Science; Vol. 340 CCIS). https://doi.org/10.1007/978-3-642-35267-6_16

Developer support for understanding preprocessor macro expansions. / Vidács, László; Dévai, Richárd; Ferenc, R.; Gyimóthy, T.

Communications in Computer and Information Science. Vol. 340 CCIS 2012. p. 121-130 (Communications in Computer and Information Science; Vol. 340 CCIS).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Vidács, L, Dévai, R, Ferenc, R & Gyimóthy, T 2012, Developer support for understanding preprocessor macro expansions. in Communications in Computer and Information Science. vol. 340 CCIS, Communications in Computer and Information Science, vol. 340 CCIS, pp. 121-130, 2012 International Conference on Advanced Software Engineering and Its Applications, ASEA 2012, and the 2012 International Conference on Disaster Recovery and Business Continuity, DRBC 2012, Held in Conjunction with GST 2012, Jeju Island, Korea, Republic of, 11/28/12. https://doi.org/10.1007/978-3-642-35267-6_16
Vidács L, Dévai R, Ferenc R, Gyimóthy T. Developer support for understanding preprocessor macro expansions. In Communications in Computer and Information Science. Vol. 340 CCIS. 2012. p. 121-130. (Communications in Computer and Information Science). https://doi.org/10.1007/978-3-642-35267-6_16
Vidács, László ; Dévai, Richárd ; Ferenc, R. ; Gyimóthy, T. / Developer support for understanding preprocessor macro expansions. Communications in Computer and Information Science. Vol. 340 CCIS 2012. pp. 121-130 (Communications in Computer and Information Science).
@inproceedings{8c738b21fa74424b8c029474d5b44ec4,
title = "Developer support for understanding preprocessor macro expansions",
abstract = "In the age of advanced integrated development environments there is a lack of support for understanding preprocessor macros. The preprocessor has proven to be a powerful tool for decades, but the developer is still guided poorly when the debugger stops at a source code line containing macros. The main problem is that the developer sees the original code, while the compiler uses the preprocessed code in the background. Investigating the usually nested macro calls can be a labor intensive tasks, which increases the overall effort spent on development and maintenance. There are several possibilities to help the developer in similar situations, but these are rarely employed since the preprocessor has its own, separate language to be analyzed. We implemented a Visual Studio plug-in (AddIn) that provides hand-on information on macros to increase the productivity of developers during debugging or program comprehension tasks. We enhanced the idea of macro folding, a technique to show/hide macro names and values within the source code editor; and defined a graphical view for macro expansions. In the background precise dynamic analysis of directives takes place, so the hint given for the developers considers all kind of preprocessor constructs like macros in conditionals and concatenating operators in the replacement text.",
author = "L{\'a}szl{\'o} Vid{\'a}cs and Rich{\'a}rd D{\'e}vai and R. Ferenc and T. Gyim{\'o}thy",
year = "2012",
doi = "10.1007/978-3-642-35267-6_16",
language = "English",
isbn = "9783642352669",
volume = "340 CCIS",
series = "Communications in Computer and Information Science",
pages = "121--130",
booktitle = "Communications in Computer and Information Science",

}

TY - GEN

T1 - Developer support for understanding preprocessor macro expansions

AU - Vidács, László

AU - Dévai, Richárd

AU - Ferenc, R.

AU - Gyimóthy, T.

PY - 2012

Y1 - 2012

N2 - In the age of advanced integrated development environments there is a lack of support for understanding preprocessor macros. The preprocessor has proven to be a powerful tool for decades, but the developer is still guided poorly when the debugger stops at a source code line containing macros. The main problem is that the developer sees the original code, while the compiler uses the preprocessed code in the background. Investigating the usually nested macro calls can be a labor intensive tasks, which increases the overall effort spent on development and maintenance. There are several possibilities to help the developer in similar situations, but these are rarely employed since the preprocessor has its own, separate language to be analyzed. We implemented a Visual Studio plug-in (AddIn) that provides hand-on information on macros to increase the productivity of developers during debugging or program comprehension tasks. We enhanced the idea of macro folding, a technique to show/hide macro names and values within the source code editor; and defined a graphical view for macro expansions. In the background precise dynamic analysis of directives takes place, so the hint given for the developers considers all kind of preprocessor constructs like macros in conditionals and concatenating operators in the replacement text.

AB - In the age of advanced integrated development environments there is a lack of support for understanding preprocessor macros. The preprocessor has proven to be a powerful tool for decades, but the developer is still guided poorly when the debugger stops at a source code line containing macros. The main problem is that the developer sees the original code, while the compiler uses the preprocessed code in the background. Investigating the usually nested macro calls can be a labor intensive tasks, which increases the overall effort spent on development and maintenance. There are several possibilities to help the developer in similar situations, but these are rarely employed since the preprocessor has its own, separate language to be analyzed. We implemented a Visual Studio plug-in (AddIn) that provides hand-on information on macros to increase the productivity of developers during debugging or program comprehension tasks. We enhanced the idea of macro folding, a technique to show/hide macro names and values within the source code editor; and defined a graphical view for macro expansions. In the background precise dynamic analysis of directives takes place, so the hint given for the developers considers all kind of preprocessor constructs like macros in conditionals and concatenating operators in the replacement text.

UR - http://www.scopus.com/inward/record.url?scp=84869833760&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84869833760&partnerID=8YFLogxK

U2 - 10.1007/978-3-642-35267-6_16

DO - 10.1007/978-3-642-35267-6_16

M3 - Conference contribution

SN - 9783642352669

VL - 340 CCIS

T3 - Communications in Computer and Information Science

SP - 121

EP - 130

BT - Communications in Computer and Information Science

ER -