HILT 2016             ACM logo - Advancing Computing as a Science & Profession

ACM SIGAda’s High Integrity Language Technology
International Workshop on
Model-Based Development and Contract-Based Programming
as part of Embedded Systems Week (ESWEEK)

Your program is more complicated than you think: System Assurance and the Real-world Semantics of Software

John Knight

Abstract

Software systems sense and affect real world objects and processes in order to realize important real-world systems. For these systems to function correctly, such software has to obey constraints inherited from the real world. As a result, the real-world semantics and hence the semantics of software are far more complex than most engineers realize.

Typically, neither important characteristics of real-world entities nor the relationships between such entities and their machine-world representations are specified explicitly in code, and important opportunities for detecting errors due to mismatches are lost.

In this presentation, I will discuss the interpretation of logic and introduce real-world types to document in software both relevant characteristics of real-world entities and the relationships between real-world entities and machine-level representations. These constructs support specification and automated static detection of mismatches in programs written in ordinary languages. I will present a prototype implementation of the approach for Java and case studies in which previously unrecognized real-world type errors in several real systems were detected.


Created on 4 October 2016;  website comments and corrections to ClydeRoby at ACM.Org