PHP Program Analysis and Comprehension

Sep 22, 2024 · 1 min read

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.