Minding the (Semantic) Gap: Engineering Programming Language Theory

Date Added: Nov 2010
Format: PDF

Like programs, programming languages are not only mathematical objects but also software engineering artifacts. De-scribing the semantics of real-world languages can help bring language theory to bear on both exciting and important real-world problems. Achieving this is not purely a mathematical task, but equally one of (semantic) engineering. A careful examination of the "libraries" that these Internet companies provide shows that they are really trying to define secure sub-languages of JavaScript, the lingua franca of the contemporary Web. Indeed, programming languages are how programmers ultimately communicate with computers - that is, they are a human-computer interface. Languages can be designed to provide guarantees: type-safety, information flow security, termination, and more.