An Overview of Overture and how tools for VDM are...
Transcript of An Overview of Overture and how tools for VDM are...
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.