Static analysis of expl3 programs (4½): Status update

In September, I wrote a project proposal for developing a static analysis tool (so-called linter) for the expl3 programming language. I submitted the proposal to the TeX Development Fund and I’m thrilled to share that the proposal has been accepted. The project was awarded a grant of US$2000, spread over the next 12 months. At the end of this period, I’ll be presenting a final report as a TUGboat article, potentially as early as at TUG 2025 in तिरुवनन्तपुरम्.

This month, my focus will be on implementing the linter’s preprocessing step. Since this is one of the easier steps, the primary challenge will be to establish a solid foundation for the code structure, tests, and documentation. While I expect most of the project’s challenges to revolve around general software engineering, there may be some nuanced issues, particularly in the later stages, such as semantic and flow analysis. For these, a background in static analysis and software verification may prove beneficial. To prepare, I’ve enrolled in a university course at my alma mater to strengthen my understanding and address any knowledge gaps that may arise.

Written on October 6, 2024