In general, the techniques used to write an XSLT processor are no different
from those used for any other high-level programming language; and among the 20
or so XSLT processors that have been developed over the last 20 years, you'll
probably find every possible approach represented somewhere. The open source
processors tend to be pure interpreters; some of the expensive commercial
processors like Datapower are very secretive about the technologies they use
(which might be because they're advanced trade secrets, or it might be because
they are embarrassingly crude).
Modern compilers (for any language) tend to use a blend of code generation and
interpretation techniques, often generating an intermediate interpretable
representation of the program statically (at compile time), and then using
hotspot code generation to compile and optimise the frequently-executed parts
to something faster at run-time.
Until XSLT 3.0 the design of the XSLT language made it very difficult to
compile modules independently of each other, so "linking" only really becomes
an identifiable task with 3.0; prior to that, all the source code making up an
executable had to be compiled monolithically.
Michael Kay
Saxonica
On 29 Apr 2019, at 23:30, Costello, Roger L. costello(_at_)mitre(_dot_)org
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
Hi Folks,
How are XSLT programs converted to machine code?
Is there such a thing as an XSLT compiler, linker, and loader?
Or, is the XSLT converted to some other programming language and then that
programming language's compiler, linker, loader is utilized? For example,
perhaps the XSLT is converted to a Java program and then that Java is handed
off to whatever Java tools are used to generate machine code.
/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
--~--