A Constraint-Based Method For Flow-Sensitive Static Type Analysis Of PHP Using The Rascal Meta-Programming Platform - Tamang, Apil (East Carolina University, 2015)
PHP is a dynamically typed language, and is very popular among developers for building websites. The dynamic features of PHP allow for many kinds of type related errors to be made by developers. Since PHP does not feature a static type checker, these errors cannot be detected until runtime. When such an error is encountered, it often results in the application to crash, thus possibly loosing valuable computational time and effort. Worse yet, the PHP compiler may use type coercion to convert an incompatible data to the required type, and in doing so, introduce an extremely hard-to- trace application bug. In this research, we address this problem by building a type-checker that performs a flow-sensitive type-inference of PHP expressions. The analysis is based on a constraints-based algorithm, and utilizes the program control flow-graph for visiting all reachable nodes in the application. The type-checker uses the inferred types for performing many type-related analyses. Results of the analyses are displayed to the developers for locating any constructs that may result in a possible application failure. By continually using this feedback, the tool aims to help PHP developers build more robust PHP applications.
Constraint-based method for flow-sensitive type analysis of PHP using the Rascal Meta-Programming Platform
Keywords: Computer engineering; Computer science; Analysis; Flow-sensitive; Rascal; Static; Type; PHP (Computer program language); Web site development; Debugging in computer science--Computer programs; Programming languages (Electronic computers)