An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Program refactoring in the presence of preprocessor directives
Program refactoring in the presence of preprocessor directives
Understanding the shape of Java software
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
How is aliasing used in systems software?
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
An empirical study of Java bytecode programs
Software—Practice & Experience
Static type inference for Ruby
Proceedings of the 2009 ACM symposium on Applied Computing
RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation
SCAM '09 Proceedings of the 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation
Profile-guided static typing for dynamic scripting languages
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
An analysis of the dynamic behavior of JavaScript programs
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
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
The eval that men do: A large-scale study of the use of eval in javascript applications
Proceedings of the 25th European conference on Object-oriented programming
Remedying the eval that men do
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Evaluating the design of the R language: objects and functions for data analysis
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Correlation tracking for points-to analysis of javascript
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Eval begone!: semi-automated removal of eval from javascript programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
PHP is one of the most popular languages for server-side application development. The language is highly dynamic, providing programmers with a large amount of flexibility. However, these dynamic features also have a cost, making it difficult to apply traditional static analysis techniques used in standard code analysis and transformation tools. As part of our work on creating analysis tools for PHP, we have conducted a study over a significant corpus of open-source PHP systems, looking at the sizes of actual PHP programs, which features of PHP are actually used, how often dynamic features appear, and how distributed these features are across the files that make up a PHP website. We have also looked at whether uses of these dynamic features are truly dynamic or are, in some cases, statically understandable, allowing us to identify specific patterns of use which can then be taken into account to build more precise tools. We believe this work will be of interest to creators of analysis tools for PHP, and that the methodology we present can be leveraged for other dynamic languages with similar features.