xsl-list
[Top] [All Lists]

Re: [xsl] The philosophical implications of an XSLT processor implemented in XSLT

2020-05-21 11:59:59
Actually, I have done an XSD validator in XSLT - I got it to a fairly advanced 
stage but never released it. It's described here:

 https://www.saxonica.com/papers/markupuk-2018mhk.pdf

XSLT 3.0 gives us most of the data structures needed for this kind of 
application, but it still has one significant problem which I've tried hard to 
find ways around, with limited success: making a small change to a large tree 
is expensive. The techniques used in other functional languages to get around 
this -- specifically, data structures such as immutable hash tries -- are 
difficult to apply to XML for two main reasons: (a) the tree model has parent 
pointers (so children copied to a new parent need to be physically copied), and 
(b) nodes have identity -- a copy of a node can be distinguished from the 
original. I think that to get this kind of application up to the speed of 
equivalents in other languages, we need an XML data model without these 
expensive properties. And probably without namespaces as well, because 
namespaces make everything three times as expensive.

Michael Kay
Saxonica

On 21 May 2020, at 17:19, Roger L Costello costello(_at_)mitre(_dot_)org 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi Folks,

Michael Kay reports that, within a few weeks, Saxonica will be releasing an 
XSLT processor implemented in XSLT.

That will be a key event.

Here is one philosophical implication of that event. 

Philosophical Implication #1

Up to this period in time, it has been believed that "system" applications -- 
such as XSLT processors -- which process XML documents must be written in a 
non-XML language such as Java, C#, C++, C, or some other imperative language. 
It was believed that XML languages such as XSLT were not sufficient in speed 
and/or language facilities to handle the complex processing that is required 
of a compiler or other system-level application. Those were false beliefs. 
Saxonica has created a proof by counterexample that they are false beliefs.

That changes the world.

So ... it's time to do this:

- implement an XML Schema validator using XSLT
- implement an RDF ontology tool using XSLT
- implement a DFDL processor using XSLT
- and many others.

What are the other philosophical implications of an XSLT processor 
implemented in XSLT?

/Roger

--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>