The C programming language
The C Information Abstraction System
IEEE Transactions on Software Engineering
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Reengineering of configurations based on mathematical concept analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
A refactoring tool for Smalltalk
Theory and Practice of Object Systems - Special issue object-oriented software evolution and re-engineering
Software product-line engineering: a family-based software development process
Software product-line engineering: a family-based software development process
The pragmatic programmer: from journeyman to master
The pragmatic programmer: from journeyman to master
A framework for preprocessor-aware C source code analyses
Software—Practice & Experience
On the importance of points-to analysis and other memory disambiguation methods for C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
ACM SIGSOFT Software Engineering Notes
Challenges of refactoring C programs
Proceedings of the International Workshop on Principles of Software Evolution
Principled design of the modern Web architecture
ACM Transactions on Internet Technology (TOIT)
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Smalltalk-80: The Language
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
A Technique for Drawing Directed Graphs
IEEE Transactions on Software Engineering
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Navigating and querying code without getting lost
Proceedings of the 2nd international conference on Aspect-oriented software development
Preprocessors from an Abstract Point of View
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Program Understanding and Maintenance with the CANTO Environment
ICSM '97 Proceedings of the 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
Implementing relational views of programs
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Handling Preprocessor-Conditioned Declarations
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
Code Reading: The Open Source Perspective, Vol. 1
Code Reading: The Open Source Perspective, Vol. 1
Declarative Reasoning about the Structure of Object-Oriented Systems
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Preprocessor Conditional Removal by Simple Partial Evaluation
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
The Build-Time Software Architecture View
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
C/C++ Conditional Compilation Analysis Using Symbolic Execution
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Refactoring Browser with Preprocessor
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Global Analysis and Transformations in Preprocessed Languages
IEEE Transactions on Software Engineering
Precise Call Graphs for C Programs with Function Pointers
Automated Software Engineering
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Columbus Schema for C/C++ Preprocessing
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ in Depth Series)
C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ in Depth Series)
Analyzing Multiple Configurations of a C Program
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code
IEEE Transactions on Software Engineering
Debuggers and Logging Frameworks
IEEE Software
The Definitive Guide to SQLite (Definitive Guide)
The Definitive Guide to SQLite (Definitive Guide)
GXL: a graph-based standard exchange format for reengineering
Science of Computer Programming - Software analysis, evolution and re-engineering
Program refactoring in the presence of preprocessor directives
Program refactoring in the presence of preprocessor directives
How Are Java Software Developers Using the Eclipse IDE?
IEEE Software
Programming in Lua, Second Edition
Programming in Lua, Second Edition
On the Design and Development of Program Families
IEEE Transactions on Software Engineering
Proceedings of the 30th international conference on Software engineering
IEEE Software
Optimizing header file include directives
Journal of Software Maintenance and Evolution: Research and Practice
High-Fidelity C/C++ Code Transformation
Electronic Notes in Theoretical Computer Science (ENTCS)
Systematic testing of refactoring engines on real software projects
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Despite its maturity and popularity, the C programming language still lacks tool support for reliably performing even simple refactoring, browsing, or analysis operations. This is primarily due to identifier scope complications introduced by the C preprocessor. The CScout refactoring browser analyses complete program families by tagging the original identifiers with their precise location and classifying them into equivalence classes orthogonal to the C language's namespace and scope extents. A web-based user interface provides programmers with an intuitive source code analysis and navigation front-end, while an sql-based back-end allows more complex source code analysis and manipulation. CScout has been successfully applied to many medium and large-sized proprietary and open-source projects identifying thousands of modest refactoring opportunities.