PHP Program Analysis and Comprehension
We are building a program analysis environment for the Go programming language using both Rascal and Maude.
Potential Projects
I am looking to work with students on the following projects related to this.
The Composer Ecosystem
Composer is a dependency manager for PHP, similar to
npm
for JavaScript or Maven for Java. This project would explore how Composer
is used, looking at aspects such as which dependencies are commonly used and how
dependencies are updated. We would also like to explore how to help developers
understand the direct and indirect dependencies of a specific project as a means
of better understanding the code they are exploring or creating.
Database Usage and Comprehension
Most PHP applications use databases, either through libraries that provide direct database connections (e.g., libraries for MySQL or Postgres) or through abstraction libraries such as Doctrine. Our past work has looked at models of database usage and has explored which parts of MySQL queries are static versus which are dynamic. We would like to extend this work to provide a deeper analysis of these queries while also looking at which database libraries applications use and at how applications use the Doctrine object-relational mapper library.