It's the Abstraction!

Steven Pemberton, CWI, Amsterdam

The Author

Contents

Abstractions

I got two questions after my talk this morning, which revealed to me that I hadn't been clear enough about abstractions:

Q: Why didn't you use BNF to define the grammars?

Q: Why didn't you just use XML to define ixml, rather than a scribbly language.

A: The very point of ixml is that it doesn't matter what representation abstractions are expressed in!

ixml is about the Abstraction

ixml processing step

On either side of the circle are representations.

The real ixml is in the bit in circle. But it's INVISIBLE!

Processing cycle

ixml Processing chain

If you would rather express your grammars in BNF, then go for it!

THAT'S WHAT IXML IS FOR!!!

ixml in ixml (simplified)

 rule: mark?, name, -["=:"], -alts, -".".
@mark: ["@^-"].
 alts: alt++-[";|"].
  alt: term**-",".
 ...
@name: namestart, namefollower*.

BNF in ixml (simplified)

 rule: mark?, name, -" ::= ", -alts, #a.
@mark: ["@^-"].
 alts: alt++-"|".
  alt: term**-" ".
 ...
@name: -"<", namestart, namefollower*, -">".

ixml in BNF

 <rule> ::= <mark>? <name> -"::=" -alts #a
@<mark> ::= "@" | "^" | "-"
 <alts> ::= alt++-"|"
  <alt> ::= term**-" "
 ...
@<name>::= -"<" <namestart> <namefollower>* -">"

DEMO

Processing cycle

ixml Processing chain

The BNF Process Diagram

The process for BNF

What you do

You supply a document, and a description of the format.

If that description is not in default ixml format, you supply a description of the format.

THEN YOU GO WILD!

Thank you!