HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402708
Lennart Beringer, R. Brukardt, T. Plum, S. Taft
{"title":"Panel on compiler certification: should we trust our compiler?","authors":"Lennart Beringer, R. Brukardt, T. Plum, S. Taft","doi":"10.1145/2402676.2402708","DOIUrl":"https://doi.org/10.1145/2402676.2402708","url":null,"abstract":"Whether programming in a high-level modeling language providing automatic code generation, in a formally-verifiable language, in a language with advanced static analysis tools, or directly in a normal third-generation programming language, we ultimately depend on a compiler to generate the actual machine code that is executed by the target machine. This panel will discuss the issue of how we build trust in our compilers, using a commercial test suite, a standardized test suite, or a formal verification process.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131162623","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402689
K. Leino
{"title":"Program proving using intermediate verification languages (IVLs) like boogie and why3","authors":"K. Leino","doi":"10.1145/2402676.2402689","DOIUrl":"https://doi.org/10.1145/2402676.2402689","url":null,"abstract":"A program verifier is a complex piece of software. To deal with this complexity, a standard architecture of a modern program verifier consists of two basic parts: a front end and a back end, separated by an intermediate verification language (IVL). The separation of concerns obtained by this architecture is analogous to that in compilers: the front end is concerned with breaking down the semantics of given source-language programs into the more primitive operations of the intermediate language, and the back end is concerned with encoding the meaning of the intermediate program as efficient theorem-prover input.\u0000 Two prevalent IVLs today are Boogie~2 and Why3. In this invited talk, I will give a tour of the Boogie language. Through a set of examples, I will illustrate how a verifier may translate common source-program features into an IVL. A verification engine for the IVL is then applied to perform the actual verification. In this way, you can obtain a program verifier for your own language by building a new front end and reusing an existing verification engine.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132328670","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402678
B. Sandén
{"title":"Hilt'12 tutorial overview / design of multitask software: the entity-life modeling approach","authors":"B. Sandén","doi":"10.1145/2402676.2402678","DOIUrl":"https://doi.org/10.1145/2402676.2402678","url":null,"abstract":"The tutorial introduces entity-life modeling (ELM), a design approach for multitask, reactive software. It is not a multistep method but rather an extension of object orientation into the time dimension: The central idea is that the task architecture should reflect concurrency that exists in the problem. The tutorial uses Ada terminology and is illustrated with multiple Ada examples.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124639001","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402693
Hristian Hristov Kirtchev
{"title":"A new robust and efficient implementation of controlled types in the GNAT compiler","authors":"Hristian Hristov Kirtchev","doi":"10.1145/2402676.2402693","DOIUrl":"https://doi.org/10.1145/2402676.2402693","url":null,"abstract":"This paper discusses a new implementation model for supporting Ada controlled types in the GNAT compiler. After reviewing the semantics of controlled types, we revisit the original implementation from 1995 and discuss its performance issues. We then describe a new model which addresses all existing limitations and is shown to be superior to its predecessor. Finally, we conclude the paper with the status of the new implementation and possible future enhancements.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130824367","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402679
Jason Belt, Patrice Chalin, J. Hatcliff, Robby
{"title":"Leading-edge Ada verification technologies: highly automated Ada contract checking using bakar kiasan","authors":"Jason Belt, Patrice Chalin, J. Hatcliff, Robby","doi":"10.1145/2402676.2402679","DOIUrl":"https://doi.org/10.1145/2402676.2402679","url":null,"abstract":"This tutorial presents a new approach to Spark/Ada contract checking using Bakar Kiasan--a highly automated, evidence-based symbolic execution tool. Bakar Kiasan aims to lower the barrier of entry and reduce the burden of engineers as they specify and verify Ada contracts. Even in the absence of contracts, Bakar Kiasan can check code for possible runtime exceptions and provide visualizations of semantic constraints along paths through procedures. As engineers progressively add contracts, Bakar Kiasan can verify the consistency of code and contracts, thus providing increased confidence, often proportional to the efforts made to capture fuller behavioral specifications via contracts. Bakar Kiasan also provides compositional checking; that is, it can be used on incomplete systems, where contracts are only present for some program components (which may not even have been implemented). This allows contract checking to be used as the program is being developed starting early in the software development process.\u0000 Bakar Kiasan provides helpful feedback and evidence of its verification results. For example, it automatically generates counter examples as program test cases for illustrating how contracts are violated (this is very helpful when debugging code/contracts), as well as providing various visualization cues, for example, highlighting problematic code or contract segments similar to how modern Integrated Development Environments (IDEs) illustrate compile (type) errors. Kiasan also generates test cases for illustrating how contracts are satisfied, which is helpful for understanding code/contracts or confirming how a program should behave. Bakar Kiasan is integrated in the Eclipse IDE as a plug-in, and an integration with the GNAT Programming Studio (GPS) is currently being developed in collaboration with AdaCore.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"21 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127137950","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402681
N. Leveson, C. Fleming, John Thomas
{"title":"Safety of embedded software","authors":"N. Leveson, C. Fleming, John Thomas","doi":"10.1145/2402676.2402681","DOIUrl":"https://doi.org/10.1145/2402676.2402681","url":null,"abstract":"Traditional safety techniques were created 40-50 years ago for electro-mechanical systems. The underlying assumptions of these techniques about the cause of accidents (e.g., component failure) do not match software nor do they match the types of accidents we are having that are related to software. As a result, a large number of accidents are now related to software, although usually the pilot (for aircraft) or other human operators are blamed. Often, the software design leads to the operator errors. We will describe the problems with software that are leading to accidents (primarily in the requirements) and how to deal with them. Most of the current approaches rely on reducing \"failures\" although software does not fail. Something else is needed.\u0000 In the tutorial we will present a new accident causality model (STAMP) and teach how to use a new hazard analysis technique (STPA) based on it that can be used on complex, software-intensive systems. The topics will include how to generate software safety requirements from an STPA hazard analysis and how to design software that does not induce human error. The tutorial will be based on a new book, Engineering a Safer World by Nancy Leveson and published in January 2012 by MIT Press.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121207350","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402700
J. O'Leary, A. Srivastava
{"title":"FAA's controller pilot automatic data communication (data comm) system software development","authors":"J. O'Leary, A. Srivastava","doi":"10.1145/2402676.2402700","DOIUrl":"https://doi.org/10.1145/2402676.2402700","url":null,"abstract":"To meet future demands and avoid gridlock in the sky and at airports, US Federal Aviation Administration's (FAA) NextGen Data Communications (DataComm) Program is designed to advance today's analog voice-only air-to-ground communications system to one in which digital communications become an alternate and eventually predominant mode of communication.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126741776","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402697
D. Hardin, Konrad Slind, M. Whalen, Tuan-Hung Pham
{"title":"A DSL for cross-domain security","authors":"D. Hardin, Konrad Slind, M. Whalen, Tuan-Hung Pham","doi":"10.1145/2402676.2402697","DOIUrl":"https://doi.org/10.1145/2402676.2402697","url":null,"abstract":"Guardol is a domain-specific language focused on the creation of high-assurance network guards and the specification of guard properties. The Guardol system generates Ada code from Guardol programs and also provides specification and automated verification support. Guard programs and specifications are translated to higher order logic, then deductively transformed to a form suitable for a SMT-style decision procedure for recursive functions over tree-structured data. The result is that difficult properties of Guardol programs can be proved fully automatically.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"79 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114123399","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402702
G. Bosch
{"title":"Synchronization cannot be implemented as a library","authors":"G. Bosch","doi":"10.1145/2402676.2402702","DOIUrl":"https://doi.org/10.1145/2402676.2402702","url":null,"abstract":"Writing efficient programs for increasingly parallel computer architectures requires the use of hardware primitives, such as atomic read-modify-write instructions or transactional memory. While new libraries and language constructs are introduced to expose the new capabilities, we argue that they are implementation details best left hidden. High-level synchronization constructs, such as those provided by Java and Ada, are both sufficient and necessary for modern programming languages to take full advantage of today's and tomorrow's hardware. While defined in terms of mutual exclusion, we show that these constructs are general enough to allow an enhanced compiler to automatically generate the appropriate lock-free synchronization code for the target system. Language support for synchronization is necessary for efficient, reliable and portable programs.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133975921","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
HILT '12Pub Date : 2012-11-29DOI: 10.1145/2402676.2402684
S. Taft
{"title":"Tutorial: multicore programming using divide-and-conquer and work stealing","authors":"S. Taft","doi":"10.1145/2402676.2402684","DOIUrl":"https://doi.org/10.1145/2402676.2402684","url":null,"abstract":"This tutorial is aimed at engineers and students who are interested in learning more about parallel programming, particularly for systems with growing numbers of physical processors or cores.","PeriodicalId":402438,"journal":{"name":"HILT '12","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-11-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124079649","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}