Re: xml and s-expression



I came across this web page titled "xml is not s-expression"
http://www.prescod.net/xml/sexprs.html

The author of that page doesn't seem to know the difference
between strings and text. The author also seems to think that
Lisp's ability to manipulate code in the language implies that
lLisp code and data can't be separate, but they can be. (All
lisp code is lisp data, but some Lisp data is not Lisp code.)

Since his conclusions follow from such errors, none are sound.

Which reminds me, the "Principle of Least Power" is blather
(and the reference is a circular argument). XML/SGML/HTML
are good data formats because they contain/describe their
structure, not because they can't be evaluated. S-expressions
have that property as well, and the advantage that some
s-expressions can be interpreted as code (or not - depends
on what you want to do).

One of these days, I expect someone in the XML community
to notice that packaging some code with data can be quite useful.
If we're really lucky, they'll pick something like Forth bytecodes.
(That's not a criticism of Forth.)

.



Relevant Pages

  • Re: Terminology question: are s-exps the text or the data or both?
    ... > of Lisp data and the data ... > representation (i.e. the output of the reader), ... I see I'm in the minority, but I always think of S-expressions as ... noncircular list structures, i.e., trees, whose leaves are things like ...
    (comp.lang.lisp)
  • Re: Terminology question: are s-exps the text or the data or both?
    ... > about s-exprs are folks who already understand Lisp and who can tell ... The concept of s-expressions is clearly explained in John McCarthy's ... > of Lisp data (i.e. the input to the reader) and the data ...
    (comp.lang.lisp)
  • Re: xml and s-expression
    ... between strings and text. ... Lisp's ability to manipulate code in the language implies that ... lisp code is lisp data, but some Lisp data is not Lisp code.) ... Many people seem to make it, but I can't see any evidence in the ...
    (comp.lang.lisp)