xsl-list
[Top] [All Lists]

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

2020-05-22 10:42:12
Dimitre wrote:

So, here is a true challenge,  XPath in XPath, then XSLT in XPath

Wow! 

Mind-blowing stuff Dimitre!

/Roger

From: Dimitre Novatchev dnovatchev(_at_)gmail(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 
Sent: Friday, May 22, 2020 11:26 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] The philosophical implications of an XSLT processor 
implemented in XSLT

  It was believed that XML languages such as XSLT were not sufficient in speed 
and/or language facilities ...

While having an XSLT processor written completely in XSLT is a great 
achievement and a stepping stone in our progress, we need to be careful when 
saying that XSLT is an "XML language".

Yes, an XSLT stylesheet is an XML document, but it is much more than that. XSLT 
is based on two independent languages: XML and XPath, each of which doesn't 
know about XSLT, and has scope of problem coverage, where XSLT is not involved. 
And XSLT has some concepts, that have nothing to do with it being an XML 
language, but that have parallels in other programming languages.

Actually, it is the latest developments in XPath 3 (maps) that made it possible 
to produce an XSLT processor written in XSLT, which is claimed to have a 
practically feasible performance.

And, if I read well Dr. Kay's message, it is exactly the XPath parsing that 
**is not** implemented in XSLT, instead it is implemented in Javascript.

For me the philosophical implications of the forthcoming XSLT processor 
"written in XSLT" is that this helps us better understand the relative 
importance and actual role of every language that is used in XSLT. Simply that 
this can be done is not something new at all. What is new is why it was not 
done until now and why/how it has been finally done.

If we can implement an XPath processor (or shall we say "engine") written 
entirely in XPath, -- and I believe we can -- then we surely can implement an 
XSLT processor written entirely in XPath. Then an XSLT processor in XSLT 
becomes as trivial as:

<xsl:sequence select="my:XsltProcessorInXpath(whateverparams)"/>

Now, one can argue that the huge set of XPath functions and operators cannot 
(or are not feasible to) be implemented in XPath.

To this my answer is: I believe these functions and operators **can** be 
implemented by a core subset of XPath.

So, here is a true challenge,  XPath in XPath, then XSLT in XPath: 
1.  A "core XPath subset", and
2.  Then using this subset, implement an XPath engine built with XPath, and
3. Then implement an XSLT processor built in XPath.
What is the main benefit in any such exercise? Not the mere fact of the 
achievement, but the new knowledge and ideas that we acquire while doing this.
 
Cheers,
Dimitre


On Thu, May 21, 2020 at 9:18 AM Roger L Costello 
mailto:costello(_at_)mitre(_dot_)org 
<mailto: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



-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what you're 
doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all 
patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.
 
http://www.mulberrytech.com/xsl/xsl-list 
http://lists.mulberrytech.com/unsub/xsl-list/673357 () 
--~----------------------------------------------------------------
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>