![Page 1: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/1.jpg)
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
![Page 2: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/2.jpg)
DEPARTMENT OF COMPUTER SCIENCETARI ROROHIKO
CCommunity ommunity ZZ TToolsools
An Open Implementation of the ISO Z Standard
![Page 3: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/3.jpg)
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 3
CZT Overview
![Page 4: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/4.jpg)
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
![Page 5: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/5.jpg)
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
![Page 6: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/6.jpg)
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)
![Page 7: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/7.jpg)
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 7
An Example Z Specification
InitBirthdayBook
BirthdayBook’
known’ {}
![Page 8: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/8.jpg)
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>
![Page 9: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/9.jpg)
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>
![Page 10: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/10.jpg)
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
![Page 11: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/11.jpg)
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
![Page 12: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/12.jpg)
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
![Page 13: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/13.jpg)
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
![Page 14: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/14.jpg)
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
![Page 15: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/15.jpg)
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
![Page 16: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/16.jpg)
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
![Page 17: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/17.jpg)
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
![Page 18: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/18.jpg)
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
![Page 19: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/19.jpg)
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.
![Page 20: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/20.jpg)
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”
![Page 21: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/21.jpg)
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
![Page 22: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/22.jpg)
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:
![Page 23: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/23.jpg)
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
![Page 24: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/24.jpg)
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
![Page 25: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/25.jpg)
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
![Page 26: DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra](https://reader036.vdocuments.us/reader036/viewer/2022070308/551c5bdc550346a66a8b516a/html5/thumbnails/26.jpg)
1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 26
The End