26
DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For CZT Support For Z Extensions Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra Malik University of Waikato, New Zealand Mark Utting

DEPARTMENT OF COMPUTER SCIENCE TARI ROROHIKO CZT Support For Z Extensions Tim Miller University of Liverpool, UK Leo Freitas University of York, UK Petra

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1 December 2005© THE UNIVERSITY OF WAIKATO • TE WHARE WANANGA O WAIKATO 26

The End