Wyprowadzenie programu - Program derivation
W informatyce , Program wyprowadzenie jest wyprowadzenie programu z jego specyfikacją, za pomocą matematycznych.
Aby czerpać program oznacza napisać formalną specyfikację, która zwykle nie wykonywalny, a następnie zastosować matematycznie poprawne zasady w celu uzyskania wykonywalny programu spełniającego tę specyfikację. Otrzymany w ten sposób program jest następnie poprawna konstrukcji. Program i prawidłowość dowodem są skonstruowane razem.
Podejście zazwyczaj podejmowane w weryfikacji formalnej jest najpierw napisać program, a następnie dostarczyć dowód, że jest on zgodny z danej specyfikacji . Główne problemy z tym, że są
- uzyskany dowód często długie i uciążliwe;
- nie podano wgląd w jaki sposób program został opracowany; wydaje się, „jak królik z kapelusza”;
- Program powinien zdarzyć się nieprawidłowe w jakiś subtelny sposób, próba ją zweryfikować może być długie i pewne, że będzie bezowocne.
Wyprowadzenie program próbuje rozwiązać te braki poprzez
- utrzymywanie dowody krótsze, poprzez opracowanie odpowiednich zapisów matematycznych;
- podejmowania decyzji projektowych poprzez formalne manipulacji specyfikacji.
Warunki, które są w przybliżeniu równoznaczne z programem wyprowadzenia to: programowanie transformacji, algorytmika, programowanie dedukcyjne.
Bird-Meertens Formalizm jest podejście do programu wyprowadzenia.
Zobacz też
- automatyczne programowanie
- logika Hoare
- udoskonalenie programu
- Programowanie kontraktowe
- synteza programu
- Kod proof-księgowa
Referencje
- Edsger Dijkstra , Wim HJ Feijen, metoda programowania , Addison-Wesley, 1988, 188 stron
- Edward Cohen Programowanie 1990 , Springer-Verlag, 1990
- Anne Kaldewaij, Programowanie: Wyprowadzenie algorytmów , Prentice Hall, 1990, 216 stron
- David Gries, The Science of Programming , Springer-Verlag, 1981, 350 stron
- Carroll Morgan (informatyk) , programowanie od specyfikacji , Międzynarodowy Series in Computer Science (2nd ed.), Prentice Hall, 1998.
- Eric CR Hehner , praktyczny teorii programowania , 2008, 235 stron
- AJM van Gasteren. Na kształt Argumenty Matematycznych . Lecture Notes in Computer Science # 445, Springer-Verlag, 1990. Uczy, jak pisać dowody z jasnością i precyzją.
- Martin Rem. "Małe Ćwiczenia programowanie", ukazała się w Science of Computer Programming , Vol.3 (1983) przez vol.14 (1990).
- Roland Backhouse. Budowa Program: Obliczanie Wdrożenia od specyfikacji . Wiley, 2003. ISBN 978-0-470-84882-1 .
- Derrick G. Kourie, Bruce W. Watson. Podejście Poprawność-by-Construction do programowania . Springer-Verlag, 2012. ISBN 978-3-642-27919-5 . Zapewnia wyjaśnienie krok po kroku, w jaki sposób czerpać matematycznie poprawne algorytmy wykorzystujące małe i tractable udoskonalenia.