LARA@EPFL Project: Semantic Literate Programming
Reasoning about desired program properties often involves natural language documentation. This project involves creating a tool that can establish correspondence between natural language documentation and program documentation written using English sentences.
The project involves the uses of program verification, program testing, and type checking, with basic computational linguistic techniques. It takes some of the ideas of Literate programming to a more sophisticated level.
A suggested realization is a system resembling dokuwiki, possibly implemented in Scala, which, upon saving the document, performs semantic checking of documents written in a combination of English and a subset of a common programming language (such as Scala, Java, or C). It is not absolutely essential to use these mentioned languages; what is more important is the ultimate functionality of the tool established.
Some of the relevant background includes:
- Type inference (e.g. Hindley-Milner) - as a mechanism to perform basic consistency checks