I will attempt to locate a copy of the Dr. Dobb's Journal.  In  
case I don't, could you bring in your copy for perusal.  The  
beauty of XML lies in its ability to contain its own formatting  
rules.  However, I think at that point the author and I would  
diverge sharply. 
We have a major issue in software maintenance when it  
comes to making changes on an optimum form.  Not  
infrequently the changes require a new optimum form.  Just  
as frequently this occurs as a global requirement effected by  
a local change.  In any case it involves a rewrite of logic, thus  
a rewrite of source. 
If you are willing to accept that logic programming works as it  
does, transforming unordered input into ordered output,  
compare that with imperative languages (first, second, and  
third generation) which require "ordered" input or "logic in  
programming".  Logic programming doesn't "generate" code.  It  
organizes it.  Effectively it rewrites the input every time into  
output.   This rewriting then due to changes in local logic  
remains part and parcel of what logic programming expects to  
do.  That's how it works. 
In logic programming then we have two equivalent forms of  
source, one unordered, the other ordered.  We only do  
maintenance on the unordered form, affecting only local logic.   
We depend upon the ordering process of the completeness  
proof to provide the necessary and logically optimal, ordered  
output.  Compare this to the imperative languages which have  
only ordered output as input to the next revision depending  
upon  a manual rewrite of the global logic. 
In programming in order to reference data we have to  
explicitly give it a name as part of data declaration.  Prior to  
structure programming with its frequent excess of "spagetti  
code" constructed by an excessive use of GOTO statements  
we had labels prefixed to every GOTO-targeted statement.   
Since then statement labels have essentially disappeared  
except for procedure names.  The question becomes, "How do  
we create names for statement-groups within procedures?"   
"Ultimately how do we create names for individual statements  
so that we can store them as source?" 
The answer is, "We don't."  We let the software do it.  It's just  
another clerical task we assign the software to save us the  
effort.  We let the software create content-based names, i.e.  
based upon prefix textual data in the source statement.  Say  
we agree that it's 16 bytes.  If the source is less than 16  
bytes, we pad in on the right with blanks.  And to this name  
we append a 4-byte index value.  The combination forms a  
unique key for a row in a table in a relational database. 
Now I would have to read the article on XML, but the  
implication of an "XML file" implies ordered input, supporting  
only manual revisions.  Whereas in the system I propose, the  
data repository/directory, we would have an ordered XML  
output as a transformation of unordered input.  In my system  
the XML commands as source differ not one iota from any  
other source text. 
===================================================== 
To unsubscribe from this list, send an email message 
to "steward@scoug.com". In the body of the message, 
put the command "unsubscribe scoug-programming". 
For problems, contact the list owner at 
"rollin@scoug.com". 
===================================================== 
 >> Next Message >>
Return to [ 09 | 
February | 
2003 ]
The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA  92799-6904, USA
Copyright 2001 the Southern California OS/2 User Group.  ALL RIGHTS 
RESERVED. 
SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International 
Business Machines Corporation.
All other trademarks remain the property of their respective owners.