Full Text Available

Note: Clicking the button above will open the full text document at the original institutional repository in a new window.

A language to support verification of embedded software

Thesis (MSc)--University of Stellenbosch, 2004.

Saved in:
Bibliographic Details
Main Author: Swart, Riaan
Other Authors: De Villiers, P. J. A.
Format: Thesis
Language:en_ZA
Published: Stellenbosch : Stellenbosch University 2012
Subjects:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1867613763120660480
access_status_str Open Access
author Swart, Riaan
author2 De Villiers, P. J. A.
author_browse De Villiers, P. J. A.
Swart, Riaan
author_facet De Villiers, P. J. A.
Swart, Riaan
author_sort Swart, Riaan
collection Thesis
dc_rights_str_mv Stellenbosch University
description Thesis (MSc)--University of Stellenbosch, 2004.
format Thesis
id oai:scholar.sun.ac.za:10019.1/49823
institution Stellenbosch University (South Africa)
language en_ZA
last_indexed 2026-06-10T12:41:18.607Z
license_str Other — see source repository
provenance_str_mv Harvested via OAI-PMH from SUNScholar — Stellenbosch University Repository
publishDate 2012
publishDateRange 2012
publishDateSort 2012
publisher Stellenbosch : Stellenbosch University
publisherStr Stellenbosch : Stellenbosch University
record_format dspace
source_str SUNScholar — Stellenbosch University Repository
spelling oai:scholar.sun.ac.za:10019.1/49823 A language to support verification of embedded software Swart, Riaan De Villiers, P. J. A. Stellenbosch University. Faculty of Science. Dept. of Mathematical Sciences (applied, computer, mathematics). Computer software -- Verification Embedded computer systems Programming languages (Electronic computers) Dissertations -- Computer science Thesis (MSc)--University of Stellenbosch, 2004. ENGLISH ABSTRACT: Embedded computer systems form part of larger systems such as aircraft or chemical processing facilities. Although testing and debugging of such systems are difficult, reliability is often essential. Development of embedded software can be simplified by an environment that limits opportunities for making errors and provides facilities for detection of errors. We implemented a language and compiler that can serve as basis for such an experimental environment. Both are designed to make verification of implementations feasible. Correctness and safety were given highest priority, but without sacrificing efficiency wherever possible. The language is concurrent and includes measures for protecting the address spaces of concurrently running processes. This eliminates the need for expensive run-time memory protection and will benefit resource-strapped embedded systems. The target hardware is assumed to provide no special support for concurrency. The language is designed to be small, simple and intuitive, and to promote compile-time detection of errors. Facilities for abstraction, such as modules and abstract data types support implementation and testing of bigger systems. We have opted for model checking as verification technique, so our implementation language is similar in design to a modelling language for a widely used model checker. Because of this, the implementation code can be used as input for a model checker. However, since the compiler can still contain errors, there might be discrepancies between the implementation code written in our language and the executable code produced by the compiler. Therefore we are attempting to make verification of executable code feasible. To achieve this, our compiler generates code in a special format, comprising a transition system of uninterruptible actions. The actions limit the scheduling points present in processes and reduce the different interleavings of process code possible in a concurrent system. Requirements that conventional hardware places on this form of code are discussed, as well as how the format influences efficiency and responsiveness. AFRIKAANSE OPSOMMING: Ingebedde rekenaarstelsels maak deel uit van groter stelsels soos vliegtuie of chemiese prosesseerfasiliteite. Hoewel toetsing en ontfouting van sulke stelsels moeilik is, is betroubaarheid dikwels onontbeerlik. Ontwikkeling van ingebedde sagteware kan makliker gemaak word met 'n ontwikkelingsomgewing wat geleenthede vir foutmaak beperk en fasiliteite vir foutbespeuring verskaf. Ons het 'n programmeertaal en vertaler geïmplementeer wat as basis kan dien vir so 'n eksperimentele omgewing. Beide is ontwerp om verifikasie van implementasies haalbaar te maak. Korrektheid en veiligheid het die hoogste prioriteit geniet, maar sonder om effektiwiteit prys te gee, waar moontlik. Die taal is gelyklopend en bevat maatreëls om die adresruimtes van gelyklopende prosesse te beskerm. Dit maak duur looptyd-geheuebeskerming onnodig, tot voordeel van ingebedde stelsels met 'n tekort aan hulpbronne. Daar word aangeneem dat die teikenhardeware geen spesiale ondersteuning vir gelyklopendheid bevat nie. Die programmeertaal is ontwerp om klein, eenvoudig en intuïtief te wees, en om vertaaltyd-opsporing van foute te bevorder. Fasiliteite vir abstraksie, byvoorbeeld modules en abstrakte datatipes, ondersteun implementering en toetsing van groter stelsels. Ons het modeltoetsing as verifikasietegniek gekies, dus is die ontwerp van ons programmeertaal soortgelyk aan dié van 'n modelleertaal vir 'n modeltoetser wat algemeen gebruik word. As gevolg hiervan kan die implementasiekode as toevoer vir 'n modeltoetser gebruik word. Omdat die vertaler egter steeds foute kan bevat, mag daar teenstrydighede bestaan tussen die implementasie geskryf in ons implementasietaal, en die uitvoerbare masjienkode wat deur die vertaler gelewer word. Daarom poog ons om verifikasie van die uitvoerbare masjienkode haalbaar te maak. Om hierdie doelwit te bereik, is ons vertaler ontwerp om 'n spesiale formaat masjienkode te genereer bestaande uit 'n oorgangstelsel wat ononderbreekbare (atomiese) aksies bevat. Die aksies beperk die skeduleerpunte in prosesse en verminder sodoende die aantal interpaginasies van proseskode wat moontlik is in 'n gelyklopende stelsel. Die vereistes wat konvensionele hardeware aan dié spesifieke formaat kode stel, word bespreek, asook hoe die formaat effektiwiteit en reageerbaarheid van die stelsel beïnvloed. Masters 2012-08-27T11:33:06Z 2012-08-27T11:33:06Z 2004-04 Thesis http://hdl.handle.net/10019.1/49823 en_ZA Stellenbosch University 104 p. : ill. application/pdf Stellenbosch : Stellenbosch University
spellingShingle Computer software -- Verification
Embedded computer systems
Programming languages (Electronic computers)
Dissertations -- Computer science
Swart, Riaan
A language to support verification of embedded software
title A language to support verification of embedded software
title_full A language to support verification of embedded software
title_fullStr A language to support verification of embedded software
title_full_unstemmed A language to support verification of embedded software
title_short A language to support verification of embedded software
title_sort language to support verification of embedded software
topic Computer software -- Verification
Embedded computer systems
Programming languages (Electronic computers)
Dissertations -- Computer science
url http://hdl.handle.net/10019.1/49823
work_keys_str_mv AT swartriaan alanguagetosupportverificationofembeddedsoftware
AT swartriaan languagetosupportverificationofembeddedsoftware