Detail publikace
Verifying Concurrent Programs Using Contracts
Vojnar Tomáš, prof. Ing., Ph.D. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Dias Ricardo (FIT)
Ferreira Carla (FIT)
Lourenco Joao (FIT)
Sousa Diogo (FIT)
contracts, concurrent computing, software, protocols, indexes, libraries, arrays
Tento článek se zabývá kontrakty pro paralelní programy, které umožňují definovat a zkoumat očekávanou atomicitu provádění metod nebo volání služeb v paralelních programech. Kontrakty mohou být buď získávány automaticky ze zdrojových kódů nebo poskytovány přímo vývojáři knihoven nebo modulů softwaru tak, aby vyjadřovaly očekávané použití v paralelním běhu. Ve článku nejprve rozšiřujeme pojem kontraktů v paralelismu několika způsoby zlepšující jejich vyjadřovací sílu a rozšiřující jejich aplikovatelnost v praxi. Dále navrhujeme dvě doplňující analýzy, statickou a dynamickou, k verifikaci programů s ohledem na rozšířené kontrakty. Implementovali jsme oba přístupy analýzy programů a dosáhli slibných experimentálních výsledků při aplikaci na různých programech, přičemž u reálných programů jsme pomocí našeho přístupu odhalili dosut neznámé chyby.
@inproceedings{BUT144470,
author="Jan {Fiedor} and Tomáš {Vojnar} and Aleš {Smrčka} and Ricardo {Dias} and Carla {Ferreira} and Joao {Lourenco} and Diogo {Sousa}",
title="Verifying Concurrent Programs Using Contracts",
booktitle="2017 IEEE International Conference on Software Testing, Verification and Validation (ICST)",
year="2017",
pages="196--206",
publisher="Institute of Electrical and Electronics Engineers",
address="Tokyo",
doi="10.1109/ICST.2017.25",
isbn="978-1-5090-6032-0",
url="https://www.fit.vut.cz/research/publication/11510/"
}