An Overview of Overture and how tools for VDM are...

Preview:

Citation preview

The Overture Project Tool Set Bootstrapping Tools for VDM

An Overview of Overture and how tools for VDMare bootstrapped

Rodin User and Developer Workshop

Kenneth Lausdahlkenneth AT lausdahl.com

Miguel Ferreiram.ferreira AT sig.nl

Aarhus School of EngineeringSoftware Improvement Group

Southampton — July 16 2009

The Overture Project Tool Set Bootstrapping Tools for VDM

Outline

The Overture ProjectOverview of the Overture Tools

Tool SetComponentsEclipse integration

Bootstrapping Tools for VDM — Past and PresentBootstrappingHistory of VDMTools Bootstrapping — Peter Gorm Larsen [1]Bootstrapping Overture Tools

The Overture Project Tool Set Bootstrapping Tools for VDM

Introduction

• Vienna Development Method

• Multi dialect (VDM-SL, VDM++ and VDM-RT).

• VDM Tools

The Overture Project Tool Set Bootstrapping Tools for VDM

Introduction

• Vienna Development Method

• Multi dialect (VDM-SL, VDM++ and VDM-RT).

• VDM Tools

The Overture Project Tool Set Bootstrapping Tools for VDM

Introduction

• Vienna Development Method

• Multi dialect (VDM-SL, VDM++ and VDM-RT).

• VDM Tools

The Overture Project Tool Set Bootstrapping Tools for VDM

The Overture project

MissionOverture’s mission is twofold:

• to provide an industrial-strength tool that supports the use ofprecise abstract models in software development, and

• to foster an environment that allows researchers and otherinterested parties to experiment with modifications andextensions to the tool.

The Overture tools are being developed by volunteers, researchersand students.

The Overture Project Tool Set Bootstrapping Tools for VDM

Overview of the Overture Tools

The Overture Project Tool Set Bootstrapping Tools for VDM

Overture components

Basic automatic checks andGUI

• Refactoring support.

• Editor with syntax highlighting.

• Syntax check.

• Type check.

Connections to standarddevelopment environments

• Code Generators C++, Java.

• Reverse Engineering support.

• GUI generators.

• UML visualization support.

• SysML, AADL visualization support.

The Overture Project Tool Set Bootstrapping Tools for VDM

Components

Validation support• Interpreter (with debug protocol).

• Test generation support.

• Visualization for execution traces.

• Pretty Printing with coverage.

Verification support

• Proof obligation generation.

• Model checking support.

• Interactive Proof support.

• Automatic proof support.

Connection to RodinThe automatic proof support is current done in HOL but the GUIpresentation of that will be difficult inside Eclipse. So analternative connection to Rodin would be interesting if possible.

The Overture Project Tool Set Bootstrapping Tools for VDM

Components

Validation support• Interpreter (with debug protocol).

• Test generation support.

• Visualization for execution traces.

• Pretty Printing with coverage.

Verification support

• Proof obligation generation.

• Model checking support.

• Interactive Proof support.

• Automatic proof support.

Connection to RodinThe automatic proof support is current done in HOL but the GUIpresentation of that will be difficult inside Eclipse. So analternative connection to Rodin would be interesting if possible.

The Overture Project Tool Set Bootstrapping Tools for VDM

Outline

The Overture ProjectOverview of the Overture Tools

Tool SetComponentsEclipse integration

Bootstrapping Tools for VDM — Past and PresentBootstrappingHistory of VDMTools Bootstrapping — Peter Gorm Larsen [1]Bootstrapping Overture Tools

The Overture Project Tool Set Bootstrapping Tools for VDM

VDMJ

Features

• Syntax check.

• Type check.

• Interpreter (with debug protocol).

• Pretty Printing with coverage (partly).

• Test generation support.

• Proof obligation generation.

• Multi dialect: VDM-SL, VDM++ and VDM-RT

The Overture Project Tool Set Bootstrapping Tools for VDM

Editor

Features

• Editor with syntax highlighting.

• Syntax check.

• Type check.

• UML visualization support.

• Interpreter.

• Test generation support.

The Overture Project Tool Set Bootstrapping Tools for VDM

Editor Main view

The Overture Project Tool Set Bootstrapping Tools for VDM

Demo

• Overture Debugger.

The Overture Project Tool Set Bootstrapping Tools for VDM

Outline

The Overture ProjectOverview of the Overture Tools

Tool SetComponentsEclipse integration

Bootstrapping Tools for VDM — Past and PresentBootstrappingHistory of VDMTools Bootstrapping — Peter Gorm Larsen [1]Bootstrapping Overture Tools

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingCompilers

“Bootstrapping is a term used in computer science todescribe the techniques involved in writing a compiler(. . . ) in the target programming language which it isintended to compile.”

From Wikipedia, the free encyclopedia

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingHow is it done?

• How to produce the first compiler for a new language?

Niklaus Wirth — the first Pascal compiler

• Used a different language — first implementation was writtenin Fortan;

• Manually compiled the compiler — second implementationwas written in Pascal and hand compiled.

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingHow is it done?

• How to produce the first compiler for a new language?

Niklaus Wirth — the first Pascal compiler

• Used a different language — first implementation was writtenin Fortan;

• Manually compiled the compiler — second implementationwas written in Pascal and hand compiled.

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingHow is it done?

• How to produce the first compiler for a new language?

Niklaus Wirth — the first Pascal compiler

• Used a different language — first implementation was writtenin Fortan;

• Manually compiled the compiler — second implementationwas written in Pascal and hand compiled.

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingHow is it done?

• How to produce the first compiler for a new language?

Niklaus Wirth — the first Pascal compiler

• Used a different language — first implementation was writtenin Fortan;

• Manually compiled the compiler — second implementationwas written in Pascal and hand compiled.

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureOverview

Word

Word Corba based

APIASCII or RTF

Au

tom

ati

call

y g

ener

ate

d f

iles

VDM-SL

Module

C++

Interpreter

Debugger (DS)

DL Modules

Type

Checker (SS)

Proof

GUI

Error

Tool

Help

Tool

DL

User Interface

Use

r in

pu

t fi

les

Module

Specification

Manager (SM)

External

Emacs

Support

Pretty

Printer

Test

Coverage

Code

UML

UML

Coupling

Output

Test

Statistics

LaTeX

Support (PS)Generators (CGs)

Java/C++Code

File

Rational Rose

Parser

Scanner

694 Larsen P.G.: Ten Years of Historical Development "Bootstrapping" ...

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureConventional development

Word

Word Corba based

APIASCII or RTF

Au

tom

ati

call

y g

ener

ate

d f

iles

VDM-SL

Module

C++

Interpreter

Debugger (DS)

DL Modules

Type

Checker (SS)

Proof

GUI

Error

Tool

Help

Tool

DL

User Interface

Use

r in

pu

t fi

les

Module

Specification

Manager (SM)

External

Emacs

Support

Pretty

Printer

Test

Coverage

Code

UML

UML

Coupling

Output

Test

Statistics

LaTeX

Support (PS)Generators (CGs)

Java/C++Code

File

Rational Rose

Parser

Scanner

694 Larsen P.G.: Ten Years of Historical Development "Bootstrapping" ...

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureFormally specified

Word

Word Corba based

APIASCII or RTF

Au

tom

ati

call

y g

ener

ate

d f

iles

VDM-SL

Module

C++

Interpreter

Debugger (DS)

DL Modules

Type

Checker (SS)

Proof

GUI

Error

Tool

Help

Tool

DL

User Interface

Use

r in

pu

t fi

les

Module

Specification

Manager (SM)

External

Emacs

Support

Pretty

Printer

Test

Coverage

Code

UML

UML

Coupling

Output

Test

Statistics

LaTeX

Support (PS)Generators (CGs)

Java/C++Code

File

Rational Rose

Parser

Scanner

694 Larsen P.G.: Ten Years of Historical Development "Bootstrapping" ...

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureGenerated code

Word

Word Corba based

APIASCII or RTF

Au

tom

ati

call

y g

ener

ate

d f

iles

VDM-SL

Module

C++

Interpreter

Debugger (DS)

DL Modules

Type

Checker (SS)

Proof

GUI

Error

Tool

Help

Tool

DL

User Interface

Use

r in

pu

t fi

les

Module

Specification

Manager (SM)

External

Emacs

Support

Pretty

Printer

Test

Coverage

Code

UML

UML

Coupling

Output

Test

Statistics

LaTeX

Support (PS)Generators (CGs)

Java/C++Code

File

Rational Rose

Parser

Scanner

694 Larsen P.G.: Ten Years of Historical Development "Bootstrapping" ...

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingTest and improvement

Test & Improve

Type Checker

Interpreter

Debugger

I/Dspec

PSspec

TCspec

SMspec

CGspec

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingTool generation

Spec Manager

Proof Support

SMspec

PSspec

Code Generator

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingTool generation

Type Checker

Code Generator

Interpreter

Debbugger

Code Generator

TCspec

I/Dspec

CGspec

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureOverview

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureConventional development

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureFormally specified

The Overture Project Tool Set Bootstrapping Tools for VDM

ArchitectureGenerated code

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingAST Generation

AST Gen

OMLvdm++

OMLASTjava

OMLASTjava

sed

VDMTools

AST GenVDMToolsAGvdm++

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingAST Generation

OMLvdm++

OMLASTjava

OMLASTvdm++

sed

VDMTools

AST GenVDMToolsAGvdm++

The Overture Project Tool Set Bootstrapping Tools for VDM

BootstrappingComponent Generation

HOLTvdm++

STvdm++

UMLVvdm++

VDMTools

OvertureTools

HOLT

ST

UMLV

Thank you!

www.overturetool.org

The Overture Project Tool Set Bootstrapping Tools for VDM

Peter Gorm Larsen.Ten Years of Historical Development: “Bootstrapping”VDMTools.JUCS, 7(8):692–709, 2001.

Recommended