Frama-C - Frama-C
Vývojáři | Commissariat à l'Énergie Atomique (Seznam CEA ) a Inria |
---|---|
Napsáno | OCaml |
Operační systém | Microsoft Windows, FreeBSD, OpenBSD, Linux, Mac OS X |
K dispozici v | Angličtina |
Typ | Formální ověření, Statická analýza kódu |
Licence | většinou LGPL, některé části pod Licence BSD |
webová stránka | frama-c |
Frama-C[1] znamená Rámec pro modulární analýzu Programy C.. Frama-C je sada interoperabilních programové analyzátory pro Programy C.. Frama-C byl vyvinut Francouzi Alternativy komisariátu à l'Énergie Atomique et aux Énergies (Seznam CEA )[2] a Inria. Rovněž obdržela finanční prostředky od Iniciativa hlavní infrastruktury. Frama-C, as a statický analyzátor, kontroluje programy bez jejich provádění. Přes své jméno software nesouvisí s francouzským projektem Framasoft.
Architektura
Frama-C má modulární architekturu pluginu[3] srovnatelné s Eclipse (software) nebo GIMP.
Frama-C se spoléhá na CIL (C Střední jazyk ) vygenerovat abstraktní syntaxový strom.v abstraktní syntaxový strom podporuje poznámky napsané v Specifikační jazyk ANSI / ISO C. (ACSL).
Několik modulů může manipulovat s abstraktní syntaxový strom přidat Specifikační jazyk ANSI / ISO C. Anotace (ACSL). Mezi často používané[vágní ] pluginy jsou:
- Hodnotová analýza - vypočítá hodnotu nebo sadu možných hodnot pro každou proměnnou v programu. Tento plugin používá abstraktní interpretace techniky a mnoho dalších pluginů využívá jeho výsledků.
- Jessie - ověřuje vlastnosti deduktivním způsobem. Jessie se spoléhá na Proč[4] nebo back-end Why3, který umožňuje odesílání důkazních povinností automatické věty provers jako Z3, Zjednodušit, Alt-Ergo nebo interaktivní věty provers jako Coq nebo proč. Pomocí Jessie implementace bublinového třídění nebo systém elektronického hlasování o hračkách lze prokázat splnění jejich příslušných specifikací. Používá model separační paměti inspirovaný logika separace.
- WP (nejslabší předpoklad) - podobný Jessie, ověřuje vlastnosti deduktivním způsobem. Na rozdíl od Jessie se zaměřuje na parametrizaci s ohledem na paměťový model. WP je navržen tak, aby spolupracoval s dalšími pluginy Frama-C, jako je plug-in pro analýzu hodnot, na rozdíl od Jessie, která program C kompiluje přímo do jazyka Why. WP může volitelně použít platformu Why3 k vyvolání mnoha dalších automatizovaných a interaktivních proverů.
- Analýza dopadů - zdůrazňuje dopady změny ve zdrojovém kódu C.
- Krájení - umožňuje krájení programu. Umožňuje generování menšího nového programu C, který zachovává některé dané vlastnosti.[5]
- Náhradní kód - odstraní zbytečný kód z programu C.
Jiné doplňky jsou:
- Dominátoři - počítá vládci a postdominátory prohlášení.
- Z analýzy - počítá funkční závislosti.
Funkce
Frama-C lze použít pro následující účely:
- Rozumět C kódu, který jste nenapsali. Frama-C zejména umožňuje pozorovat množinu hodnot, rozdělit program na kratší programy a navigovat v něm.
- Dokázat formální vlastnosti kódu. Pomocí specifikací napsaných v Specifikační jazyk ANSI / ISO C. umožňuje mu zajistit vlastnosti kódu pro jakékoli možné chování. Frama-C zpracovává čísla s plovoucí desetinnou čárkou.[6]
- Prosazovat standardy kódování nebo konvence kódu na zdrojovém kódu C pomocí vlastního pluginu[7]
- K vybavení C kódu proti některým bezpečnostním nedostatkům[8]
Viz také
Reference
- ^ „Frama-C“. frama-c.com. Citováno 2016-11-05.
- ^ SEZNAM CEA. „SEA LIST, Smart digital systems“. Citováno 2016-11-05.
- ^ Pascal Cuoq; et al. (Srpen 2009). "Zpráva o zkušenostech: OCaml pro rámec statické analýzy průmyslové síly". Sborník příspěvků ze 14. mezinárodní konference ACM SIGPLAN o funkčním programování. 44 (9): 281–286. doi:10.1145/1631687.1596591.
- ^ „Proč domovská stránka“.
- ^ Benjamin Monate; Julien Signoles (2008). "Rozdělení na zabezpečení kódu". Trusted Computing - výzvy a aplikace. Přednášky z informatiky. 4968/2008. doi:10.1007/978-3-540-68979-9_10. ISBN 978-3-540-68978-2.
- ^ Sylvie Boldo; Thi Minh Tuyen Nguyen (2010). „Hardwarově nezávislé důkazy numerických programů“ (PDF). Sborník NFM 2010.
- ^ David Delmas; Stéphane Duprat; Victoria Moya Lamiel; Julien Signoles. „Taster, zásuvný modul Frama-C k prosazování standardů kódování“ (PDF). Integrovaný software a systémy v reálném čase 2010, Toulouse, Francie.
- ^ Jonathan-Christofer Demay; Éric Totel; Frédéric Tronel (2009). "Automatické softwarové vybavení pro detekci nekontrolovaných datových útoků". Nedávné pokroky v detekci narušení. Přednášky z informatiky. 5758/2009. str. 348–349. doi:10.1007/978-3-642-04342-0_19. ISBN 978-3-642-04341-3.