Re: [xsl] Expand XPath with a few abstractions and use it as a standalone language ... run expanded-XPath through a preprocessor to generate equivalent XSLT/XPath

Subject: Re: [xsl] Expand XPath with a few abstractions and use it as a standalone language ... run expanded-XPath through a preprocessor to generate equivalent XSLT/XPath
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 29 Jun 2022 11:20:22 -0000
On 29.06.2022 13:12, Roger L Costello costello@xxxxxxxxx wrote:
Hi Folks,

Recently I was reading about Ratfor (Rational Fortran). Ratfor is a layer on
top of Fortran.

Fortran does not provide nice control structures such as the while-loop.
Instead, you have to use labels and gotos. The resulting (spaghetti-like)
program imposes a large cognitive load on the developer and maintainer.
Writing Fortran programs is unreasonably difficult and error prone.

So some clever fellow created Ratfor, which provides abstractions such as
the while loop. The abstractions make it much easier to write and maintain
programs. A preprocessor converts the Ratfor into equivalent Fortran. For
example, the preprocessor converts the while-loop into equivalent labels and
gotos.

I really like XSLT. In my experience, however, the verbosity of its XML
syntax imposes a substantial cognitive load on the developer and maintainer.
This makes implementing large and/or complex programs unreasonably difficult
and error prone.

In my opinion, XPath, with its concise notation would be a superior language
for programming large and/or complex programs. If XPath were enhanced with a
few things, such as apply-templates (as was discussed a couple weeks ago), it
would make for a programming language that is easier to write and maintain
programs.

In the spirit of Ratfor, it seems that it should be possible to write a
preprocessor that converts "expanded-XPath" into equivalent XSLT/XPath. Has
anyone done this -- created an expanded-XPath and a preprocessor which
converts expanded-XPath into equivalent XSLT/XPath?

I think people in the past tried to reduce the alleged verbosity but I
don't think such attempts prevailed.

As for not using an XML syntax but "expanding" XPath, XQuery can
certainly be considered as such a thing, with a few exceptions of string
literals any XPath 3.1 expression is also an XQuery 3.1 expression but
XQuery has more flexible and powerful FLOWR, grouping, windowing, all
not in an XML syntax.

If you need recursive template matching you can write your own recursive
functions with switch/typeswitch.

Current Thread