Upload
amira-morice
View
212
Download
0
Tags:
Embed Size (px)
Citation preview
DEPARTMENT OF COMPUTER SCIENCETARI ROROHIKO
CZT Support ForCZT Support ForZ ExtensionsZ Extensions
Tim Miller University of Liverpool, UK
Leo Freitas University of York, UK
Petra Malik University of Waikato, New Zealand
Mark Utting University of Waikato, New Zealand
DEPARTMENT OF COMPUTER SCIENCETARI ROROHIKO
CCommunity ommunity ZZ TToolsools
An Open Implementation of the ISO Z Standard
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 3
CZT Overview
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 4
CZT Extensions
Standard Z
Object Z
TCOZ
Circus
Rules
+ object oriented
+ modularity
+ Timed CSP
+ CSP
+ refinement calculus
ZPattern
+ Inference and
Rewrite Rules
+ Proof Trees
+ Pattern for Matching and Unification
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 5
Overview
Show Extensibility of:
XML Schema
Java AST
Parsing and Printing
Specification Manager
Other Tools
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 6
1. XML Schema
Extensible Annotations
Extensible AST
Extensible XML Schemas
XML Schema is an XML based description language to define legal XML documents,in this case a Z annotated syntax tree (ZML)
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 7
An Example Z Specification
InitBirthdayBook
BirthdayBook’
known’ {}
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 8
An XML Z AST<AxPara Box=“SchBox”>
<SchText><ConstDecl>
<DeclName><Word>InitBirthdayBook</Word></DeclName>
<SchExpr><SchText>
<InclDecl>
<DecorExpr>
<RefExpr Mixfix=“false”>
<RefName><Word>BirthdayBook</Word></RefName>
</RefExpr>
<NextStroke/>
</DecorExpr>
</InclDecl>
<MemPred Mixfix=“true”>
<RefExpr Mixfix=“false”>
<RefName><Word>known</Word><NextStroke/></RefName>
</RefExpr>
<SetExpr><SetExpr/></SetExpr>
</MemPred>
</SchText></SchExpr>
</ConstDecl></SchText>
</AxPara>
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 9
1.1. Extensible Annotations
<AxPara Box=“SchBox”>
<Anns>
<LocAnn Line=“107” Col=“0”/>
<MyAppAnn>…</MyAppAnn>
</Anns>
<SchText>
<Anns>
<AnotherAppAnn>...</AnotherAppAnn>
</Anns>
…
</SchText>
</AxPara>
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 10
1.2. Extensible AST<Z:ZSect>
<Z:Name>Example</Z:Name>
<Z:AxPara Box=“SchBox”>
…
</Z:AxPara>
<Z:NarrPara>
…
</Z:NarrPara>
<OZ:ClassPara>
… <Z:True/> …
</OZ:ClassPara>
<Z:NarrPara>
…
</Z:NarrPara>
</Z:ZSect>
Para
Z:AxPara Z:FreePara
OZ:ClassPara
Circus:ChannelParaList
of P
ara
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 11
1.3. Extensible XML Schemas
Z.xsd
OZ.xsd
TCOZ.xsd
Circus.xsd
Rules.xsd
+ object oriented
+ modularity
+ Timed CSP
+ CSP
+ refinement calculus
ZPat.xsd
+ Inference and Rewrite Rules
+ Proof Trees
+ Pattern for Matching and Unification
import
importimport
importimport
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 12
2. Java AST
Visitor design pattern
Support of different coding styles
Automatic generation of AST classes
The Java AST is a representation of ZML in Java classes to allow processing and manipulation of trees using Java tools
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 13
2.1. CZT Visitor Design Pattern
Standard Visitor Design Pattern• decouples the AST classes from the
algorithms (typechecker, transformer, printer, etc.)
CZT Visitor also …• allows the AST hierarchy to be extended• allows visitors to exploit the AST inheritance
hierarchy
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 14
2.2. Different Coding Styles
interface ZSect {
// return all children
Object[] getChildren();
// create a new ZSect
// with the given children
Term create(Object[] c);
}
// returns the name
String getName();
// sets the name
void setName(String s);
// returns the list of
// paragraphs
List<Para> getPara();
abstract concrete
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 15
2.3. Generation of AST Classes
Z.xsdCircus.xsd
net.sourceforge.czt.z.ast.ZSect
net.sourceforge.czt.z.ast.AxPara
net.sourceforge.czt.z.ast.NarrPara
…
(over 400 classes
and interfaces)
net.sourceforge.czt.circus.ast.ChannelPara
…
GnAST
Code Generator
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 16
3. Parsing and Printing
Templates for code sharing
Unicode as intermediate format
Parsing tools used are JFlex (a scanner generator for Java) and Cup (a LALR parser generator for Java);
Challenge: Multiple Markups
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 17
3.1. Templates for Code Sharing
Parser.xml
XSLT script
ZParser.cup OZParser.cup …
ZParser.java OZParser.java
Cup Cup
…
Cup
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 18
3.2. Use of an Intermediate Format
Parser Tools Printer
Unicode
LaTeX E-mail …
LaTeX/Unicode
converter
E-mail/Unicode
converter …/Unicode
converter
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 19
4. Specification Manager
Type extensibility
Command extensibility
The specification manager is an extensible repository used by tools like parser and typechecker to store and retrieve information about specifications.
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 20
4.1. Type Extensibility
Definition Table for “MySpec”
AST for “MySpec”
Operator Table for “MySpec”
SpecificationManager
Rule Table for “MySpec”
Classes for “MyOZSpec”
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 21
4.2. Command Extensibility
Definition Table for “MySpec”
AST for “MySpec”
Operator Table for “MySpec”
SpecificationManager
Rule Table for “MySpec”
Parse
Compute Operator Table
Source for “MySpec”
Compute Definition Table
Compute Rule Table
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 22
5. Other Tools
Transformation to Standard Z
Multiple Visitors
Inheritance, Delegation
CZT includes tools like typechecker, animator, transformer, etc.
These can be extended by:
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 23
5.1. Transformation to Standard Z
AST of an Extension
Standard Z AST
Converter (usually a visitor)
CZT Standard Z Tools
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 24
5.2. Multiple Visitors
z.TypeChecker
z.ParaChecker z.ExprChecker …
oz.TypeChecker
oz.ParaChecker oz.ExprChecker …
Visitor6
7
oz.OpExprChecker
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 25
Summary and Future Work
Showed CZT Extensibility of: XML Schemas Java AST Parsing and Printing Specification Manager Other Tools
Current Extensions: Object Z, TCOZ, Circus,
Z pattern and Rules
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 26
The End