Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Structure and interpretation of computer programs
Structure and interpretation of computer programs
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
The annotated C++ reference manual
The annotated C++ reference manual
The C programming language
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Reengineering of configurations based on mathematical concept analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
The design of whole-program analysis tools
Proceedings of the 18th international conference on Software engineering
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java in a nutshell (2nd ed.): a desktop quick reference
Java in a nutshell (2nd ed.): a desktop quick reference
AntiPatterns: refactoring software, architectures, and projects in crisis
AntiPatterns: refactoring software, architectures, and projects in crisis
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Generic programming and the STL: using and extending the C++ Standard Template Library
Generic programming and the STL: using and extending the C++ Standard Template Library
The pragmatic programmer: from journeyman to master
The pragmatic programmer: from journeyman to master
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
A framework for preprocessor-aware C source code analyses
Software—Practice & Experience
Notable design patterns for domain-specific languages
Journal of Systems and Software
Microsoft C# Language Specifications
Microsoft C# Language Specifications
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Smalltalk-80: The Language
The UNIX Programming Environment
The UNIX Programming Environment
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Preprocessors from an Abstract Point of View
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
SWILL: A Simple Embedded Web Server Library
Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference
Refactoring: Improving the Design of Existing Code
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Code Reading: The Open Source Perspective, Vol. 1
Code Reading: The Open Source Perspective, Vol. 1
Lightweight languages as software engineering tools
DSL'97 Proceedings of the Conference on Domain-Specific Languages on Conference on Domain-Specific Languages (DSL), 1997
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
ASTEC: a new approach to refactoring C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Refactoring a legacy component for reuse in a software product line: a case study: Practice Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
C-CLR: a tool for navigating highly configurable system software
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
Proceedings of the 30th international conference on Software engineering
Aspect mining in the presence of the C preprocessor
Proceedings of the 2008 AOSD workshop on Linking aspect technology and evolution
Can we refactor conditional compilation into aspects?
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Evaluating the Quality of Open Source Software
Electronic Notes in Theoretical Computer Science (ENTCS)
Parsing C/C++ Code without Pre-processing
CC '09 Proceedings of the 18th International Conference on Compiler Construction: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Optimizing header file include directives
Journal of Software Maintenance and Evolution: Research and Practice
CScout: A refactoring browser for C
Science of Computer Programming
An analysis of the variability in forty preprocessor-based software product lines
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Partial preprocessing C code for variability analysis
Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems
Analyzing the discipline of preprocessor annotations in 30 million lines of C code
Proceedings of the tenth international conference on Aspect-oriented software development
Variability-aware parsing in the presence of lexical macros and conditional compilation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
SuperC: parsing all of C by taming the preprocessor
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Do background colors improve program comprehension in the #ifdef hell?
Empirical Software Engineering
Hi-index | 0.00 |
Tool support for refactoring code written in mainstream languages such as C and C++ is currently lacking due to the complexity introduced by the mandatory preprocessing phase that forms part of the C/C++ compilation cycle. The defintion and use of macros complicates the notions of scope and of identifier boundaries. The concept of token equivalence classes can be used to bridge the gap between the language proper semantic analysis and the nonpreprocessed source code. The CScout toolchest uses the developed theory to analyze large interdependent program families. A Web-based interactive front end allows the precise realization of rename and remove refactorings on the original C source code. In addition, CScout can convert programs into a portable obfuscated format or store a complete and accurate representation of the code and its identifiers in a relational database.