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

bml specification and verification at the bytecode level
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 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

slide-3
SLIDE 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

slide-4
SLIDE 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

slide-5
SLIDE 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

  • f 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

slide-6
SLIDE 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

slide-7
SLIDE 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

slide-8
SLIDE 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

slide-9
SLIDE 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

slide-10
SLIDE 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

slide-11
SLIDE 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

slide-12
SLIDE 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

slide-13
SLIDE 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

slide-14
SLIDE 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

slide-15
SLIDE 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

slide-16
SLIDE 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

slide-17
SLIDE 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

slide-18
SLIDE 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

slide-19
SLIDE 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