By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,635 Members | 2,240 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,635 IT Pros & Developers. It's quick & easy.

Don't you need an XML Virtual Machine ?

P: n/a
Hi,

RefleX 0.1.3, a general-purpose XML Virtual Machine, is available here :
http://reflex.gforge.inria.fr/

In this release, you'll find tutorials for mapping SQL to arbitrary
complex XML structures, and for experimenting the Active Schema Language
: express constraints on XML documents that you can't achieve with DTD,
W3C XML Schema, neither Relax NG, and define custom semantic data types.

Enjoy !
--
Cordialement,

///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !
Mar 29 '06 #1
Share this Question
Share on Google+
7 Replies


P: n/a
in message <e0**********@news-sop.inria.fr>, Philippe Poulard
('P*****************@SPAMsophia.inria.fr') wrote:
RefleX 0.1.3, a general-purpose XML Virtual Machine, is available here
: http://reflex.gforge.inria.fr/


Sorry, no.

You cannot have an XML Virtual Machine. XML is not, and is not intended
to be, executable; it's a data syntax. The phrase 'XML Virtual Machine'
means exactly the same as 'Green Hypotenuse' or 'Colloquial
Wheelbarrow'. It's a category error.

If you could have an 'XML Virtual Machine', what would the physical
machine which the virtual machine emulates look like?

If you've built an embedded scripting language interpreter, why not say
so? And in saying so, explain why yours is better than JSP or Struts or
PHP or ColdFusion or any one of the dozens of others?

--
si***@jasmine.org.uk (Simon Brooke) http://www.jasmine.org.uk/~simon/

;; All in all you're just another hick in the mall
-- Drink C'lloid

Mar 30 '06 #2

P: n/a
Simon Brooke wrote:
in message <e0**********@news-sop.inria.fr>, Philippe Poulard
('P*****************@SPAMsophia.inria.fr') wrote:

RefleX 0.1.3, a general-purpose XML Virtual Machine, is available here
: http://reflex.gforge.inria.fr/

Sorry, no.


you're not obliged, don't use it if you don't want to

You cannot have an XML Virtual Machine. XML is not, and is not intended
to be, executable; it's a data syntax.
any programming language is based on a syntax ; why this syntax couldn't
be the XML syntax ?

The phrase 'XML Virtual Machine' means exactly the same as 'Green Hypotenuse' or 'Colloquial
Wheelbarrow'. It's a category error.

If you could have an 'XML Virtual Machine', what would the physical
machine which the virtual machine emulates look like?
I would answer the same for Java : any machine that could translate XML
in something that can run on this machine

I called this executable XML "Active Tags" ; Active Tags just specifies
a behaviour, not how you could implement it : if you want to write an
interpreter or a compiler, translate XML to Java code (or any other
language), load precompiled classes, or combine several of them, you're
welcome.

If you've built an embedded scripting language interpreter, why not say
so? And in saying so, explain why yours is better than JSP or Struts or
PHP or ColdFusion or any one of the dozens of others?


there are many reasons for which you should prefer Active Tags instead
of other similar technologies :

-those you mention above are all dedicated to a Web environment, whereas
RefleX can run XML programs in a Web environment as well as from the
command-line

-try to define a schema language with any of them ; it wouldn't be
obvious (at best), or would be simply impossible (at worst) ! RefleX
embeds one called the Active Schema Language, which goes a step further
than DTD, W3C XML Schema, and Relax NG (for example, ASL allows to
design dynamic content models and design semantic data types)

-there are also some smart features in Active Tags not available with
its competitors : in Active Tags you can consider some non-XML objects
as XML-friendly : use XPath to access them and apply XUpdate-like
operations to modify them

-programs written with Active Tags (that are called Active Sheets) can
dramatically decrease the amount of code to produce (we used it in a
production environment at INRIA for a real application, and estimate
that the number of lines to code was reduced to 10% (comparison with the
hypothetic lines of Java to write))

-you can extend Active Tags with custom modules (libraries) ; you can
design declarative-oriented grammar -which are very concise and
expressive- and make them runnable within RefleX ; RefleX also allows to
switch from declarative sentences to imperative instructions when you
have reached the intrinsic limits of the declarative grammar

-RefleX is self-descriptive, it is built upon itself : any built-in or
custom module is an application of RefleX ; Active Tags foundations are
very sane, based on the cooperation of few core modules, each focusing
on a single well-defined problematic

-you can define custom tags and functions with other tags (a kind of
macro mechanism)

-Active Tags is easy to use and easy to learn : what you need is only a
knowledge of computer sciences in general, XML + namespaces + XPath ;
Active Sheets are easy to read

-you can design entire applications with RefleX without writting any
Java code ; but you can also embed your own Java classes

-etc

now, Active Tags is very young, but it certainly bring some renewal in
XML technologies

I'm aware that Active Tags looks like JSP, JSTL/taglibs, XSLT, Ant,
Jelly, XMLBeans, Cocoon, etc ; I even hope that everyone recognize a
little of each in Active Tags, because Active Tags is a kind of "all-in-one"

--
Cordialement,

///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !
Mar 30 '06 #3

P: n/a
In article <e0**********@news-sop.inria.fr>,
Philippe Poulard <Ph****************@SPAMsophia.inria.fr> wrote:
If you could have an 'XML Virtual Machine', what would the physical
machine which the virtual machine emulates look like?


I would answer the same for Java : any machine that could translate XML
in something that can run on this machine

I called this executable XML "Active Tags" ; Active Tags just specifies
a behaviour, not how you could implement it : if you want to write an
interpreter or a compiler, translate XML to Java code (or any other
language), load precompiled classes, or combine several of them, you're
welcome.


It's still mysterious why you call it a virtual machine. A virtual
machine is an instruction set that you compile something to, and
is virtual in the sense that it's implemented on top of some other
machine. Java gets compiled to Java Virtual Machine instructions.
What gets compiled to your machine's instructions?

-- Richard
Mar 30 '06 #4

P: n/a
Richard Tobin wrote:
In article <e0**********@news-sop.inria.fr>,
Philippe Poulard <Ph****************@SPAMsophia.inria.fr> wrote:

If you could have an 'XML Virtual Machine', what would the physical
machine which the virtual machine emulates look like?
I would answer the same for Java : any machine that could translate XML
in something that can run on this machine

I called this executable XML "Active Tags" ; Active Tags just specifies
a behaviour, not how you could implement it : if you want to write an
interpreter or a compiler, translate XML to Java code (or any other
language), load precompiled classes, or combine several of them, you're
welcome.

It's still mysterious why you call it a virtual machine. A virtual
machine is an instruction set that you compile something to, and
is virtual in the sense that it's implemented on top of some other
machine. Java gets compiled to Java Virtual Machine instructions.
What gets compiled to your machine's instructions?


When I started RefleX, I did the choice of Java, although Active Tags is
not specifically related to Java. I began to write a code generator that
was transforming XML to Java code then compiling it, but it appears that
it was not better than pre-compiled classes that would performing the
same job. So, there is no compilation phase, but an unmarshal phase.
Once an XML program is unmarshalled, it becomes runnable. If you prefer
saying that it's an interpreter, I don't mind. But what about JSP,
JSTL/custom tag libs ? The way you get some Java code doesn't care ; if
you think JSP/JSTL/custom-tag-libs are interpreted, then Active Tags are
also interpreted in RefleX... When I research "JSP interpreter" and "JSP
compiler" in Google, I get lots of answer...

-- Richard


--
Cordialement,

///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !
Mar 30 '06 #5

P: n/a
Ignoring the question of whether it's a VM or not -- which is an
implementation issue and a buzzword -- what task is this actually
supposed to address? What problem does it solve that other tools don't
already address, or how is it better?

If it's just another XML-based scripting language... there've been lots
of those. XSLT can often be used pretty well for that purpose if you
write it in the literal-root-element style, and is widely available and
standardized. Other XML-based programming languages have been attempted,
usually to address specific coding styles or productivity niches that
existing languages didn't adequately cover (such as IBM's BML), and the
concept of embedding these into other markup is hardly new (for example,
US patent 6,578,192, "Method and system for supporting dynamic document
content expressed in a component-level language" which was my old
group's contribution to that space).
--
Joe Kesselman / Beware the fury of a patient man. -- John Dryden
Mar 30 '06 #6

P: n/a
Joseph Kesselman wrote:
Ignoring the question of whether it's a VM or not -- which is an
implementation issue and a buzzword --
this is not important for me :)

what task is this actually supposed to address?
it has not been made for anything special, but everything in general ;
it may be suitable for some works, and inappropriate for others

INRIA uses it in a Web application for querying a native XML database,
mixing the result with the result of an LDAP query, tranforming with
XSLT to HTML, etc ; very few tags are necessary to achieve this

What problem does it solve that other tools don't already address, or how is it better?
(I already answer to this question in the thread, but I put it here again)

there are many reasons for which you should prefer Active Tags instead
of other similar technologies (PHP/ASP/JSP-taglib/Cocoon etc) :

-those mentionned above are all dedicated to a Web environment, whereas
RefleX can run XML programs in a Web environment as well as from the
command-line

-try to define a schema language with any of them ; it wouldn't be
obvious (at best), or would be simply impossible (at worst) ! RefleX
embeds one called the Active Schema Language, which goes a step further
than DTD, W3C XML Schema, and Relax NG (for example, ASL allows to
design dynamic content models and design semantic data types)

-there are also some smart features in Active Tags not available with
its competitors : in Active Tags you can consider some non-XML objects
as XML-friendly : use XPath to access them and apply XUpdate-like
operations to modify them

-programs written with Active Tags (that are called Active Sheets) can
dramatically decrease the amount of code to produce (we used it in a
production environment at INRIA for a real application, and estimate
that the number of lines to code was reduced to 10% (comparison with the
hypothetic lines of Java to write))

-you can extend Active Tags with custom modules (libraries) ; you can
design declarative-oriented grammar -which are very concise and
expressive- and make them runnable within RefleX ; RefleX also allows to
switch from declarative sentences to imperative instructions when you
have reached the intrinsic limits of the declarative grammar

-RefleX is self-descriptive, it is built upon itself : any built-in or
custom module is an application of RefleX ; Active Tags foundations are
very sane, based on the cooperation of few core modules, each focusing
on a single well-defined problematic

-you can define custom tags and functions with other tags (a kind of
macro mechanism)

-Active Tags is easy to use and easy to learn : what you need is only a
knowledge of computer sciences in general, XML + namespaces + XPath ;
Active Sheets are easy to read

-you can design entire applications with RefleX without writting any
Java code ; but you can also embed your own Java classes

-etc

now, Active Tags is very young, but it certainly bring some renewal in
XML technologies

I'm aware that Active Tags looks like JSP, JSTL/taglibs, XSLT, Ant,
Jelly, XMLBeans, Cocoon, etc ; I even hope that everyone recognize a
little of each in Active Tags, because Active Tags is a kind of
"all-in-one"

If it's just another XML-based scripting language... there've been lots
of those. XSLT can often be used pretty well for that purpose if you
write it in the literal-root-element style, and is widely available and
standardized. Other XML-based programming languages have been attempted,
usually to address specific coding styles or productivity niches that
existing languages didn't adequately cover (such as IBM's BML), and the
concept of embedding these into other markup is hardly new (for example,
US patent 6,578,192, "Method and system for supporting dynamic document
content expressed in a component-level language" which was my old
group's contribution to that space).


There are lots of XML-based scripting language, but what is proposed is
not a single language, but a framework where several XML languages can
cooperate

--
Cordialement,

///
(. .)
--------ooO--(_)--Ooo--------
| Philippe Poulard |
-----------------------------
http://reflex.gforge.inria.fr/
Have the RefleX !
Mar 31 '06 #7

P: n/a
Philippe Poulard wrote:
it has not been made for anything special, but everything in general


Nothing specifically interesting about it for me, then.

--
() ASCII Ribbon Campaign | Joe Kesselman
/\ Stamp out HTML e-mail! | System architexture and kinetic poetry
Apr 4 '06 #8

This discussion thread is closed

Replies have been disabled for this discussion.