A lot of the software development now a days is moving towards mobile. However, the tools and quality assurances practices have not move at par with the increasing codebases. As a result, the type of analyses that exist targeted to mobile platforms is limited. Even more, the different platforms and programming languages for mobile development make it more complicated to build analysis tools for mobile programs.
To counter this, we can use the grammar rules of the programming language, build a parser that can recognize any program written in the language, and using the parser build an appropriate structure (e.g., AST) to analyze the program.
Such process is already exists for the base language grammars. However, these leave out of scope the graphical aspects of the system, which in mobile systems play a very important role.
In this project we want to use extend the grammar of the mobile programming languages to include aspects of UIs, in order to extend the possibility of analyzing quality attributes of the system that include the UI. This objective is now possible with the effort from mobile platforms to enable the definition of UIs programmatically (e.g., SwiftUI, google UI toolkit)
such a parser to analyze mobile application, in particular mobile applications targeting the iOS platform. Therefore, we will focus on the development of a grammar for the Swift language.
The objective of this project is to define the grammar and parser that extends the latests specification of the mobile programming languages (i.e., Kotlin, Swift, Dart). Thankfully, we do not need to generate full parsers for programming languages, as this task is very complex. We can use existing parser generators, as ANTLR, that, given a grammar, can generate and efficient and correct parser for a language. Therefore, the grammar definition must comply with the [ANTLT4][https://www.antlr.org] parser generator specification.
This topic is offered to 3 students, each working on one of the mobile languages
n.cardozo