Development of dependable and efficient software with dynamically-typed languages

Date issued

2013

Journal Title

Journal ISSN

Volume Title

Publisher

Západočeská univerzita v Plzni

Abstract

Počítače jsou dnes všudypřítomné, což platí především pro takzvané vestavěné systémy. Tato zařízení obvykle mají omezenou výpočetní kapacitu. Vývoj softwaru pro takové systémy je často konzervativní, používá prostředky jako například jazyk C. V posledních letech je pozorovatelný příklon k jazyku Java. U vestavěných systémů je požadována velká spolehlivost, což vede k využívání formálních metod. V této práci se snažíme přinést sílu dynamicky typovaných jazyků do oblasti vývoje vestavěných systémů. Tyto jazyky mají vyšší míru abstrakce než například Java a díky své flexibilitě jsou schopny absorbovat nová paradigmata jako například aspektově orientované programování. Navrhujeme vývojový proces založený na programovacím jazyku Python a překladači PyPy. Díky Pythonu můžeme rychle vytvářet prototypy, které se potom přeloží do efektivního strojového kódu. Náš vývojový proces obsahuje i pokročilé testování založené na formálních metodách. Z kódu v Pythonu můžeme vygenerovat Java bajtkód, který potom zkoumáme nástrojem Java Pathfinder, což je explicitní model checker. Životaschopnost našeho procesu jsme demonstrovali na několika případových studiích.

Description

Subject(s)

vestavěná zařízení, model checking, Python, PyPy, generativní programování, vývojový proces, lineární temporální logika

Citation