bml specification and verification at the bytecode level
play

BML: Specification and Verification at the Bytecode Level Aleksy - PowerPoint PPT Presentation

Outline BML BML related tools Work in progress BML: Specification and Verification at the Bytecode Level Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02097 Warsaw Poland October 14, 2008 Aleksy Schubert


  1. Outline BML BML related tools Work in progress BML: Specification and Verification at the Bytecode Level Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland October 14, 2008 Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  2. Outline BML BML related tools Work in progress BML BML related tools Work in progress Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  3. Outline BML BML related tools Work in progress BML – Bytecode Modeling Language ◮ Bytecode specification language Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  4. Outline BML BML related tools Work in progress BML – Bytecode Modeling Language ◮ Bytecode specification language ◮ Proposed by: Lilian Burdy, Marieke Huisman, and Mariela Pavlova Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  5. Outline BML BML related tools Work in progress BML – Bytecode Modeling Language ◮ Bytecode specification language ◮ Proposed by: Lilian Burdy, Marieke Huisman, and Mariela Pavlova ◮ Main features: ◮ similar to JML ◮ based on design-by-contract principles ◮ covers (JML0): ◮ invariants (static & instance), history constraints, simple form of represents clauses ◮ pre- and post- conditions (with exceptions), modifies clauses ◮ asserts, assumes, loop invariants, decreases clauses, loop modifies clauses Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  6. Outline BML BML related tools Work in progress BML – Bytecode Modeling Language ◮ Additional features: ◮ access to local variables and stack ◮ compression of multiple requires-ensures, invariants, and constraints Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  7. Outline BML BML related tools Work in progress BML Reference Manual ◮ peope involved: Jacek Chrzszcz, Marieke Huisman, Aleksy Schubert, and Joe Kiniry, Erik Poll, Mariela Pavlova ◮ covers: ◮ definition of the textual format ◮ definition of the bytecode format ◮ definition of a translation from JML to BML ◮ work in progress (80% ready) ◮ web page: http://www-sop.inria.fr/everest/BML/ also available from http://www.jmlspecs.org Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  8. Outline BML BML related tools Work in progress Tools and formalisms ◮ BML – specification language ◮ JACK – Java Card verification environment ◮ Umbra – specification editor ◮ BMLLib – library to parse and store BML specifications ◮ JML2BML – compiler of JML to BML ◮ BML to BoogiePL translator Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  9. Outline BML BML related tools Work in progress JACK ◮ preliminary work on BML ◮ people involved: Gemplus & INRIA Everest ◮ features: ◮ storing BML in class files ◮ editing BML specifications ◮ generation of proof obligations ◮ web page: http://www-sop.inria.fr/everest/soft/Jack/jack.html Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  10. Outline BML BML related tools Work in progress Umbra ◮ bytecode and BML specification language editor ◮ people involved: Jacek Chrzszcz, Tomasz Batkiewicz, Wojciech Ws, Aleksy Schubert ◮ features: ◮ one can disassemble an existing Java source code file, ◮ one can view an existing class file, ◮ one can add, delete, and edit bytecode mnemonics, ◮ one can add, delete, and edit JML specifications, ◮ web page: http://zls.mimuw.edu.pl/ ∼ alx/umbra/ Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  11. Outline BML BML related tools Work in progress BMLLib ◮ library to manipulate the specifications, ◮ people involved: Jacek Chrzszcz, Tomasz Batkiewicz, and Aleksy Schubert ◮ features: ◮ one can parse textual BML specifications ◮ one can print out textual BML specifications ◮ one can read BML specifications from class files ◮ one can write BML specifications from class files ◮ one can manipulate BML specifications programmatically ◮ based on BCEL bytecode library ◮ web page: http://zls.mimuw.edu.pl/ ∼ alx/umbra/ Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  12. Outline BML BML related tools Work in progress JML2BML ◮ standalone compiler of JML specifications to BML specifications ◮ people involved: Jdrzej Fulara, Krzysztof Jakubczyk, Aleksy Schubert ◮ it takes Java source code with JML annotations + compiled class file and returns class file with BML attributes ◮ web page: http://zls.mimuw.edu.pl/ alx/jml2bml/ Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  13. Outline BML BML related tools Work in progress BML to BoogiePL ◮ a tool which transforms BML annotated bytecode to BoogiePL ◮ people involved: Ovidio Mallo, Hermann Lehner ◮ features: ◮ reading class files with BML specifications ◮ writing text files with BoogiePL result ◮ based on ASM bytecode library Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  14. Outline BML BML related tools Work in progress CCT — embed certificates into class files ◮ toolset to embed certificates into class files Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  15. Outline BML BML related tools Work in progress BMLLib and BoogiePL ◮ coupling of BMLLib with BoogiePL Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  16. Outline BML BML related tools Work in progress Presentation Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  17. Outline BML BML related tools Work in progress Work in progress ◮ translation from BML to Coq ◮ translation of non-interference type system to BML Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  18. Outline BML BML related tools Work in progress Work in progress ◮ case study Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

  19. Outline BML BML related tools Work in progress Thank you! Aleksy Schubert Institute of Informatics Warsaw University ul. Banacha 2 02–097 Warsaw Poland BML: Specification and Verification at the Bytecode Level

Recommend


More recommend