Formal semantics of software systems are needed for
applications such as software verification, automated software engineering
tools, and programming language design/analysis. There are several
mathematical models of programming languages that have been used to capture such
semantics. More recently, there are mathematical models to represent
software semantics for use in formal methods.