exprla-devel Mailing List for XPL: eXtensible Programming Language (Page 8)
Status: Pre-Alpha
Brought to you by:
xpl2
You can subscribe to this list here.
2002 |
Jan
(198) |
Feb
(40) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|
From: reid_spencer <ras...@re...> - 2002-01-31 08:34:39
|
--- In xpl-dev@y..., gutman@m... wrote: Jonathan Burns wrote: > It's terribly tempting to suppose that there is "just one" > procedural language. I think that for control flow, it is > nearly the case. Everyone has an If, a Do-While, and a > Call ... maybe a For, maybe a Switch-on-Case, but we could > do without these in a pinch. Try/Catch is left as an exercise > for the reader :-) Yes. At this point, the only we need to do is to choose a good XML syntax. > Message passing is problematic, though. There is a clear > difference between object method calling in C++, where the > class is predetermined in the compile phase, and in Java > or Smalltalk, where determining the class is part of the > execution. Correct me if I misunderstand something. In some languages, the type (class) of a variable's value is fixed throughout its scope, while, in other languages, the type of a variable's value can be different at different execution points. Is this we are talking about? Even if you meant something different, let's consider this very problem, since it seems to be similar. Every normal (foobar-complete, I do not remember the term) programming language is powerful enough to implement any programming concept (even multiple class inheritance can be implemented in the Turing machine language). The only cost is bulkiness of the resultant code. Of course, we do not want XPL to be so weak as to be easily (almost directly) transformed into any language. Quite the reverse, we want XPL to be so powerful as to be able to easily implement any concept implemented in any language (of a wide class of them). At least I want it to be so. :-) As regards our question (fixed vs variable type of a value), my suggestion is as follows: let XPL be ready for both cases. For instance, let it be possible, when declaring a variable, to say if the type of its values is fixed or not (or provide an instruction saying that all the variables within some fragment have either fixed or variable type). If the destination language assumes only fixed types, and an XPL program employes variable types, the resultant code just will be more bulky. When using XPL, it is the user who decides whether to employ variable types. The cost is known. > Variable scope and lifetime also present some problems. > We'll need to do proper comparisons between the classic > scripting languages (Tcl, Perl, Python, to name the obvious) > to make certain we can handle these by tree-transformation. This problem seems to be similar. As soon as the scope and lifetime of an XPL variable are determined (for an XPL program), it is the task of the transformation procedure to provide the corresponding resultant code which can be either concise or bulky, depending on the destination language. > I think the lesson we'll learn, if we don't anticipate it, > is that XPL applications will often be object-oriented. A like this conclusion. :-) > That is, each section will be available through an interface, > and call code in other sections by message-passing. AND, > a section when it calls another, will be unaware whether > this other is local or remote. Hmm... I do not think this concerns XPL itself. When a user writes an XPL program, he/she may suppose that the whole program will be executed on a single machine. Later, if the code will be split into different parts (e.g. into server and client ones), it is again the task of the transformation procedure to provide correct resultant codes. And only at this step the message-passing arguments start playing their role. As an example, consider the following hypothetical XPL code: <declare variable="x" class="someClass"/> <if> <condition> <equal> <property name="someProperty" of="x"/> <constant value="someValue"/> </equal> </condition> <then> <assign> <property name="someProperty" of="x"/> <constant value="anotherValue"/> </assign> <etc>...</etc> </then> <else> <etc>...</etc> </else> </if> Suppose that the developer decides that the whole code should be executed on the client side except the "then" part which should be separated into a server module. A problem seems to arise: this part uses the "x" variable which is declared within the client part. No problem! The transformation procedure will create an additional bridge code between the server's and client's "x"s so that, whenever the server's "x" is changed, the client's "x" also changes appropriately (and vice versa, if need be). > It is straightforward to translate Java control flow > to C++ control flow. The syntax is just about the same > anyway. > > But, Java's dynamic class binding will not translate to > C++ static binding, without the creation of some kind of > object tag system for the C++. This is a problem. You have already provided a solution: just make the transformation procedure to create (or use) an object tag system in this case. -- Alexander E. Gutman --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:34:27
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Michael Lauzon wrote: > For some reason, my previous posts weren't showing up properly. > Anyways, in regards to a previous message I replied (which didn't > seems > to show up) that when I thought up XPL, I want to make an open- source > versions of Miva (http://www.miva.com/) & Cold Fusion > (http://www.allaire.com/) and their respected rendering engines. Got it. Thanks for the URLs, I'll look them up shortly. It's good to have models like this. > Anyeverhow.... Jonathan, did you get my previous email about > the rewriting I'm afraid not - could you mail me again? The last fortnight, I've been housekeeping on my system, and there was a period when my reply-to address was screwed. > , also...what is XTFP? I shouldn't have mentioned it, really. It opens a major can'o'worms. For the moment, think of it as a baroque 3D Logo. (That's Logo the language.) I'll bring it onstage when I'm ready. Jonathan Whenever I hear the word efficiency, I let off the safety catch on my sliderule. --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:33:30
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Steve Ball wrote: > Now, an XML based language is going to be quite verbose. That's the > nature of XML. For that reason it is unlikely that people are > going to type it in interactively on a command-line, like Tcl. > It then follows that XPL will be a compiled language. Is that > reasonable logic? > "Compiled" is getting to be a somewhat fuzzy word in this context. Traditional compilers (1) translate high-level source to a parse-tree structure, and (2) address a machine architecture (i386, PPC, JVM, ...) to translate parse-tree traversal into efficient machine code. For the verbosity issue, we're looking at (1). Standard high-level languages already give us concise and powerful expression syntaxes. The question for XPL is, can we smoothly and accurately translate from these syntaxes to verbose XPL, and back again? IF so, then in a sense, high-level languages are just styles of one another, and something like XLST might work as a translator. The REAL technology for HLL -> XPL is BNF grammars, meaning the ancient Yacc, or reasonable facsimile, as used in hundreds of compiler parsers. The other compilation issue, (2) is execution speed - to which we must these days add machine-code size, for swift transmission of executable code. I reckon that we get most of this, if we just tokenize the XPL text - a straightforward task. > There are several reasons why a XML based language is appealing. > One is that all of the tools being developing for authoring, > styling and otherwise manipulating XML documents become immediately > useful to XPL programming. But are they really useful? Oh, how I need the study time, to determine the precise answer! My impression is that almost every XML tool being developed is relevant - XPath, XLink, the DOM, XSLT, and more. Put them together, and they may give an enormous initial boost to the XPL effort. My XPL slogan: What can we do WITH an XML document? What can we do TO an XML document? > XSL could be used to style a XPL program. XSL could also be used to > generate a XPL program, but would that happen in real life? > Alexander Gutman and Richard Hein are interested in this one, and they'repretty affirmative. I just want to say: Anything that can take high-level syntax and produce a parse-tree can produce it in XML text as easily as it can in linked data structures. So, Yes. > Programs tend to be written, rather than generated, or could XSL > be used as a macro facility? > Yes. But in our enthusiasm for the new tools, let us not neglect yearsand years of traditional parsing experience. Don't dis the yacc. This, by the way, is why I like DTDs. Pure grammar. The question, "DTDs or Schemas?" is one we must trhoroughly explore; like another one, "DTDs or Namespaces?" They may both turn out to be religious, but they must certainly both be addressed in a Real White paper. > At the Tcl2K conference I spoke with Dave Beazley about SWIG version > 2, > and it is using XML in interesting ways. Could be some overlap there. > > Well, I checked out Zveno last night, and I'm impressed. It pleases megreatly to have this resource in Australia. Jonathan "These are not 'globals', dear boy, these are Total Access Variables. And they're the coming thing." "Unleash the Power!" --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:32:14
|
--- In xpl-dev@y..., "Richard Anthony Hein" <935551@i...> wrote: Here's an example from the web site below to get your interest: <xfa:use Extend="extend:strict"/> <xfa:function name="XFact"> <xfa:function name="Fact(i)"> <xfa:if exp="IntLe(i,1)"> <xfa:val exp="1"/> </xfa:if> <xfa:else> <xfa:val exp="Mult(i,Fact(Sub(i,1)))"/> </xfa:else> </xfa:function> <head> <title> Factorial </title> </head> <body bgcolor="white"> <h2> Factorial </h2> <ul> <xfa:for name="i" exp="10"> <li> Fact(<xfa:val exp="i"/>)=<xfa:val exp="Fact(i)"/> </li> </xfa:for> </ul> </body> </xfa:function> Here's a link to the code at the web site, where you can actually run this code: http://www.xmlforall.com/cgi-bin/xfa?DemoXFact -----Original Message----- From: Richard Anthony Hein [mailto:935551@i...] Sent: June 7, 2000 3:57 PM To: xpl@e... Subject: [XPL] Check this out ... XFA ... important This is another scripting language that allows you to make your own custom languages using DTDs. Please read and comment! http://www.xmlforall.com/cgi-bin/xfa?Why Richard A. Hein dbSoft ---------------------------------------------------------------------- ------ -- ---------------------------------------------------------------------- ------ -- To unsubscribe from this group, send an email to: xpl-unsubscribe@o... --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:32:03
|
--- In xpl-dev@y..., "Richard Anthony Hein" <935551@i...> wrote: This is another scripting language that allows you to make your own custom languages using DTDs. Please read and comment! http://www.xmlforall.com/cgi-bin/xfa?Why Richard A. Hein dbSoft --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:31:43
|
--- In xpl-dev@y..., "Richard Anthony Hein" <935551@i...> wrote: Hi everyone, I joined this list yesterday, and have been reading the archive. I plan on being a contributer, by using my database development experience (Access, SQL Server), and VB to the table. I have been heavily into XML and related technologies since around November 1999, read the specs on the DOM level 1 and 2, XML, XSL (wow it's long!), and am just about done XPath at this point. Oh yeah, also XSLT and XML Schema and SOAP. However, I haven't been able to really put this all to use yet. I shall. Now, I want to ask if anyone has seen the work on XMLScript? You can see what has been done at www.xmlscript.org. I think that what we want to do here is bigger than what XMLScript encapsulates ... however, that doesn't mean we can't use XMLScript as a base for what we want to do ... make a new fully enabled programming language specific to XML. XMLScript COULD be to XPL what JavaScript is to Java, and VBScript is to VB. Or, perhaps XMLScript will someday become XPL. Who knows; but it would be foolish for us not to consider this work, as it's well ahead of XPL at this point. In the meantime, I will say this ... the Holy Grail of XML programming would be the ability to write in any language which is defined by an XML schema (NOT DTD's!), and be able to transform that into another language. I am talking about computer language as well as human language. However, I am not saying let's work on human language translation ... but this work, if we all agree that this cross-language ability is important, could be useful in the future. Things we learn from translating across programming languages could be very useful in the future, when applied to translating human languages. So, is this a part of XPL's intention or not? Is the ability to translate across any programming language that has a well-formed and valid schema going to be part of XPL? If so, let's put that in a specification. We have the work of things like SOAP which well be totally helpful to us. SOAP shows us how we can wrap messages (think of them as method calls) in XML, and use that wrapper to communicate with any component that is SOAP enabled. This is amazing stuff, and practically makes Java nothing more than a language now, as Java's cross-platform benefits are really irrelevant now. We can use this idea to make translation happen. How? Well, if we wrap a C++ component/function/method in SOAP like XML syntax, and name it according to some standard convention that we realize in XPL, then we can map it to a VB component/function/method that does the same thing. In this way, the translation is not based on any real schema ... we simply have a source of information that can find the same component in any language. This is the easy way, and depends on having the same things written many times, in many languages. It's not really what we want to do, but we can use it to our advantage. How? :) We can use that method when we run into trouble translating ... for instance, someone pointed out: Java's dynamic class binding will not translate to C++ static binding, without the creation of some kind of object tag system for the C++. This is a problem. We could use a search type method to find components that do the same thing that the class in Java does, but in C++, using SOAP and SDL to find it, and then use that code to enable translation. If we can somehow make it possible to UPDATE the schema (using our search results) then we may be able to "evolve" the schema to meet these problems, so in the future, the translating powers of the XPL can use that schema update to know what to do. This is just an idea, and is probably full of holes, so go ahead and point them out or fill them in! Richard A. Hein dbSoft --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:31:21
|
--- In xpl-dev@y..., Michael Lauzon <ce940@f...> wrote: For some reason, my previous posts weren't showing up properly. Anyways, in regards to a previous message I replied (which didn't seems to show up) that when I thought up XPL, I want to make an open-source versions of Miva (http://www.miva.com/) & Cold Fusion (http://www.allaire.com/) and their respected rendering engines. Though we have had a lot of ideas, we shouldn't stick with one just yet. :) Anyeverhow.... Jonathan, did you get my previous email about the rewriting, also...what is XTFP? When we get a concrete spec, and some white papers, then I think it would be a good idea to contact places like XML Hack (http://www.xmlhack.com/) and whatnot. Also, XPL.ORG is for sale, I don't know how much the person wants for it...but to get the person's email address go to the website and email the person, telling them that we need the domain name. Also, we have a home on VB XML (http://www.vbxml.com/xpl/), but I don't have access to FTP or HTML editing software to do the page, I have asked the owner of VB XML if I could give one of you the login & password as to upload the needed files, and on VB XML we get free exposure. :) Michael http://www.geocities.com/SiliconValley/Way/9180/ 'Eat, drink, and be merry, for tomorrow you may work.' --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:30:44
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Alexander Gutman wrote: > Hello, friends. > > Here are some of my thoughts concerning XPL > and what it can be useful for. > Michael! Garreth! Ali! Tune in! This man's got some serious input into the Advantages question. > 1. XPL as a source language > > A program written in XPL can be transformed > into programs in different languages. > This transformation can be performed by suitable XSLTs: > for each destination language, we have a corresponding > XSLT, one for Java, another for JavaScript, etc. > It's terribly tempting to suppose that there is "just one" procedural language. I think that for control flow, it is nearly the case. Everyone has an If, a Do-While, and a Call ... maybe a For, maybe a Switch-on-Case, but we could do without these in a pinch. Try/Catch is left as an exercise for the reader :-) Message passing is problematic, though. There is a clear difference between object method calling in C++, where the class is predetermined in the compile phase, and in Java or Smalltalk, where determining the class is part of the execution. Variable scope and lifetime also present some problems. We'll need to do proper comparisons between the classic scripting languages (Tcl, Perl, Python, to name the obvious) to make certain we can handle these by tree-transformation. (memo to self: get an overview of XSLT, Quick.) > 2. XPL as a universal programming language > > Consider the following situation. A developer creates > (or designs) an application for the Web. Some fragments > of the code correspond to the server part, while other > fragments should be executed on the client side. > Therefore, these fragments should be written > in different languages: for instance, the first in Java > and the second in JavaScript. > > However, at early stages of development, it is rather > difficult to predict which fragments of the application > will work on a server and which on a client. > Good point. > Moreover, there are different clients. Some of them > are thick, other are thin. For thick clients, some > fragments of the code will be executed on the client > side and, for thin clients, the same fragments will work > on the server side. > > In addition, it is quite possible that, in some time, > a need will occur to transforming the application into > a different platform which will require a different > language, or some fragment will be separated for working > on an intermediate server (for instance, in order > to make the main server part more lightweight). > This reminds me strongly of the rationale for COM. I think the lesson we'll learn, if we don't anticipate it, is that XPL applications will often be object-oriented. That is, each section will be available through an interface, and call code in other sections by message-passing. AND, a section when it calls another, will be unaware whether this other is local or remote. This would really please the majority of the Web programming community. But I cannot resist suggesting an idea which has been with me for a long time: The interface to an object class is usually a list of method calls: action(parameter,...). The calls constitute the language which the object speaks, if you will. But every XML document type IS a language, potentially a far more sophisticated language than the usual class interface. So when we define a collection of related DTDs, we can think of it as defining s collection of interfaces. XML documents would then be the format for messages, each in the language of its receiver. If it's a Calculator, it talks Reverse Polish Notation (Forth!) If it's a Relational DB, it talks SQL. If it's a Virtual World, it talks VRML (or my own XTFP). ... and here's where the snake swallows its tail ... If it's an XML document, it talks Path Notation. Now it may be that in the name of sanity, we'll have to throttle the wealth of XML grammars down to lists of methods with fixed parameter lists. But something in me itches to see if I can define the relations between grammars, so as to realize complex systems as "Literate Classes", like above. > If the code is written in XPL, all the above problems > are easily solved: just transform different parts > of the code into different languages. > Yes. It's very interesting that COM and CORBA cut everything down to class interfaces, so that architectures can be defined which are independent of language bindings. In a way, the XPL push is saying "Why bother, when we can translate between languages automatically?" > 3. XPL as a program storage format > > With the help of a special editor/environment, > a user can create XPL programs by using his/her > favorite programming language. > This means that, on the screen, the user sees > the code as if it is written in, say, Java, > while the code is actually stored as an XPL program. > Later, the XPL staff can be transformed into another > language, say, C++. The advantage is obvious: > a developer creates a C++ code by using Java coding. > My comments above apply here. It is straightforward to translate Java control flow to C++ control flow. The syntax is just about the same anyway. But, Java's dynamic class binding will not translate to C++ static binding, without the creation of some kind of object tag system for the C++. This is a problem. > By the way, such an editor/environment will be very > useful even if the destination is XPL: native XPL > code is not convenient for everyday programming, > it is rather "cryptic", and not so readable and > concise as usual programming languages. > The beautiful thing is, good old-fashined compiler technology (Lex and Yacc) is made precisely to convert concise but locally-ambiguous high-level languages into locally-precise parse trees - which XML represents directly. > 4. XPL as a skeleton for a programming environment > > If an editor/environment stores the code in XPL, > it is much easier to provide very smart and powerful > service for a user, since the DOM of the hidden XPL > source can be effectively used. For instance, > with the help of a simple search pattern, > the XPL source can be queried to produce the list > of methods available for an object under cursor > in a very convenient and rich form. > (memo to self: and in your copious free time, you canread up on the DOM 8-!) It's fascinating how many of the XML tools turn out to be tools for programming languages. > Enough for a start, I think. :-) > > Excuse my English. > My native language is Russian, and there are no > XPL applications yet which could help me creating > messages in English by using my favorite language. :-) > But everything you write is perfectly clear! No excuses required at all. Regards Jonathan Software is born free, yet everywhere is found in loops --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:30:13
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Alexander Gutman wrote: > Hello, friends. > > Here are some of my thoughts concerning XPL > and what it can be useful for. > Michael! Garreth! Ali! Tune in! This man's got some serious input into the Advantages question. > 1. XPL as a source language > > A program written in XPL can be transformed > into programs in different languages. > This transformation can be performed by suitable XSLTs: > for each destination language, we have a corresponding > XSLT, one for Java, another for JavaScript, etc. > It's terribly tempting to suppose that there is "just one" procedural language. I think that for control flow, it is nearly the case. Everyone has an If, a Do-While, and a Call ... maybe a For, maybe a Switch-on-Case, but we could do without these in a pinch. Try/Catch is left as an exercise for the reader :-) Message passing is problematic, though. There is a clear difference between object method calling in C++, where the class is predetermined in the compile phase, and in Java or Smalltalk, where determining the class is part of the execution. Variable scope and lifetime also present some problems. We'll need to do proper comparisons between the classic scripting languages (Tcl, Perl, Python, to name the obvious) to make certain we can handle these by tree-transformation. (memo to self: get an overview of XSLT, Quick.) > 2. XPL as a universal programming language > > Consider the following situation. A developer creates > (or designs) an application for the Web. Some fragments > of the code correspond to the server part, while other > fragments should be executed on the client side. > Therefore, these fragments should be written > in different languages: for instance, the first in Java > and the second in JavaScript. > > However, at early stages of development, it is rather > difficult to predict which fragments of the application > will work on a server and which on a client. > Good point. > Moreover, there are different clients. Some of them > are thick, other are thin. For thick clients, some > fragments of the code will be executed on the client > side and, for thin clients, the same fragments will work > on the server side. > > In addition, it is quite possible that, in some time, > a need will occur to transforming the application into > a different platform which will require a different > language, or some fragment will be separated for working > on an intermediate server (for instance, in order > to make the main server part more lightweight). > This reminds me strongly of the rationale for COM. I think the lesson we'll learn, if we don't anticipate it, is that XPL applications will often be object-oriented. That is, each section will be available through an interface, and call code in other sections by message-passing. AND, a section when it calls another, will be unaware whether this other is local or remote. This would really please the majority of the Web programming community. But I cannot resist suggesting an idea which has been with me for a long time: The interface to an object class is usually a list of method calls: action(parameter,...). The calls constitute the language which the object speaks, if you will. But every XML document type IS a language, potentially a far more sophisticated language than the usual class interface. So when we define a collection of related DTDs, we can think of it as defining s collection of interfaces. XML documents would then be the format for messages, each in the language of its receiver. If it's a Calculator, it talks Reverse Polish Notation (Forth!) If it's a Relational DB, it talks SQL. If it's a Virtual World, it talks VRML (or my own XTFP). ... and here's where the snake swallows its tail ... If it's an XML document, it talks Path Notation. Now it may be that in the name of sanity, we'll have to throttle the wealth of XML grammars down to lists of methods with fixed parameter lists. But something in me itches to see if I can define the relations between grammars, so as to realize complex systems as "Literate Classes", like above. > If the code is written in XPL, all the above problems > are easily solved: just transform different parts > of the code into different languages. > Yes. It's very interesting that COM and CORBA cut everything down to class interfaces, so that architectures can be defined which are independent of language bindings. In a way, the XPL push is saying "Why bother, when we can translate between languages automatically?" > 3. XPL as a program storage format > > With the help of a special editor/environment, > a user can create XPL programs by using his/her > favorite programming language. > This means that, on the screen, the user sees > the code as if it is written in, say, Java, > while the code is actually stored as an XPL program. > Later, the XPL staff can be transformed into another > language, say, C++. The advantage is obvious: > a developer creates a C++ code by using Java coding. > My comments above apply here. It is straightforward to translate Java control flow to C++ control flow. The syntax is just about the same anyway. But, Java's dynamic class binding will not translate to C++ static binding, without the creation of some kind of object tag system for the C++. This is a problem. > By the way, such an editor/environment will be very > useful even if the destination is XPL: native XPL > code is not convenient for everyday programming, > it is rather "cryptic", and not so readable and > concise as usual programming languages. > The beautiful thing is, good old-fashined compiler technology (Lex and Yacc) is made precisely to convert concise but locally-ambiguous high-level languages into locally-precise parse trees - which XML represents directly. > 4. XPL as a skeleton for a programming environment > > If an editor/environment stores the code in XPL, > it is much easier to provide very smart and powerful > service for a user, since the DOM of the hidden XPL > source can be effectively used. For instance, > with the help of a simple search pattern, > the XPL source can be queried to produce the list > of methods available for an object under cursor > in a very convenient and rich form. > (memo to self: and in your copious free time, you canread up on the DOM 8-!) It's fascinating how many of the XML tools turn out to be tools for programming languages. > Enough for a start, I think. :-) > > Excuse my English. > My native language is Russian, and there are no > XPL applications yet which could help me creating > messages in English by using my favorite language. :-) > But everything you write is perfectly clear! No excuses required at all. Regards Jonathan Software is born free, yet everywhere is found in loops --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:29:30
|
--- In xpl-dev@y..., Michael Lauzon <ce940@f...> wrote: We have a home on VBXML.com, but as I don't have access at the moment to FTP or HTML editing software I can't do anything with it. Also, I haven't gotten a response back from the current owner of XPL.ORG; so let us all email him/her about the domain name. He/she can be reached at: den@g... Put in the subject of your message to him/her: XPL.ORG Domain On Wed, 7 Jun 2000, Jonathan Burns wrote: > Hi fellas > > For when we have xpl.org running, there's a rough > sample on www.warehouse.net/saski/xpl.shtml . > > Any comments, additions, questions etc will be of > assistance. In a few days, the FAQs will be better > laid out, and I may have a cleaner version of the > banner. > > > It's been a hairy two weeks; I'm almost glad the > discussions have been in abeyance. But I hope to > be stirring the waters again soon. > > Regards > Jonathan > > > Michael http://www.geocities.com/SiliconValley/Way/9180/ 'Eat, drink, and be merry, for tomorrow you may work.' --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:25:10
|
--- In xpl-dev@y..., "Alexander Gutman" <gutman@m...> wrote: Hello, friends. Here are some of my thoughts concerning XPL and what it can be useful for. 1. XPL as a source language A program written in XPL can be transformed into programs in different languages. This transformation can be performed by suitable XSLTs: for each destination language, we have a corresponding XSLT, one for Java, another for JavaScript, etc. 2. XPL as a universal programming language Consider the following situation. A developer creates (or designs) an application for the Web. Some fragments of the code correspond to the server part, while other fragments should be executed on the client side. Therefore, these fragments should be written in different languages: for instance, the first in Java and the second in JavaScript. However, at early stages of development, it is rather difficult to predict which fragments of the application will work on a server and which on a client. Moreover, there are different clients. Some of them are thick, other are thin. For thick clients, some fragments of the code will be executed on the client side and, for thin clients, the same fragments will work on the server side. In addition, it is quite possible that, in some time, a need will occur to transforming the application into a different platform which will require a different language, or some fragment will be separated for working on an intermediate server (for instance, in order to make the main server part more lightweight). If the code is written in XPL, all the above problems are easily solved: just transform different parts of the code into different languages. 3. XPL as a program storage format With the help of a special editor/environment, a user can create XPL programs by using his/her favorite programming language. This means that, on the screen, the user sees the code as if it is written in, say, Java, while the code is actually stored as an XPL program. Later, the XPL staff can be transformed into another language, say, C++. The advantage is obvious: a developer creates a C++ code by using Java coding. By the way, such an editor/environment will be very useful even if the destination is XPL: native XPL code is not convenient for everyday programming, it is rather "cryptic", and not so readable and concise as usual programming languages. 4. XPL as a skeleton for a programming environment If an editor/environment stores the code in XPL, it is much easier to provide very smart and powerful service for a user, since the DOM of the hidden XPL source can be effectively used. For instance, with the help of a simple search pattern, the XPL source can be queried to produce the list of methods available for an object under cursor in a very convenient and rich form. Enough for a start, I think. :-) Excuse my English. My native language is Russian, and there are no XPL applications yet which could help me creating messages in English by using my favorite language. :-) -- Alexander E. Gutman --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:24:39
|
--- In xpl-dev@y..., Steve Ball <steve.ball@z...> wrote: Jonathan Burns wrote: [...snip...] > 3. We want to develop XPL as a procedural language, because that's > what we have in common. Me, I see the real benefits coming from > functional language developments - but I think it would be quite > counterproductive to insist on this at the outset. [...snip...] > 5. This is a real opportunity for lateral thinking. IMHO, if we > follow strictly in the footsteps of say Tcl or Javascript, we'll > never make a novel contribution. But at the same time, we need > to get some leverage from these demonstrated technologies. Also > IMHO, this is an opportunity to stand back from some of the > conventional wisdom of programming; and to re-open the deep > issues of why programs are supposed to be programs, and data > data. I posted to comp.lang.tcl a few days ago on XPL, so funny you should mention Tcl. Lateral thinking is definitely required here. Why reinvent those scripting languages? XPL needs to find a niche and then exploit it. The obvious niche is the processing of XML document data. Functional programming feels more right to me. Now, an XML based language is going to be quite verbose. That's the nature of XML. For that reason it is unlikely that people are going to type it in interactively on a command-line, like Tcl. It then follows that XPL will be a compiled language. Is that reasonable logic? There are several reasons why a XML based language is appealing. One is that all of the tools being developing for authoring, styling and otherwise manipulating XML documents become immediately useful to XPL programming. But are they really useful? XSL could be used to style a XPL program. XSL could also be used to generate a XPL program, but would that happen in real life? Programs tend to be written, rather than generated, or could XSL be used as a macro facility? At the Tcl2K conference I spoke with Dave Beazley about SWIG version 2, and it is using XML in interesting ways. Could be some overlap there. I would say "HTHs", but the above is more of a rant/ramble... so I'll just say "Enjoy" ;-) Steve Ball -- Steve Ball | Swish XML Editor | Training & Seminars Zveno Pty Ltd | Web Tcl Complete | XML XSL http://www.zveno.com/ | TclXML TclDOM | Tcl, Web Development Steve.Ball@z... +-----------------------+--------------------- Ph. +61 2 6242 4099 | Mobile (0413) 594 462 | Fax +61 2 6242 4099 --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:23:27
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Alexander Gutman wrote: > Hello, friends. > > I have just subscribed to the group and read all > the messages posted here since the creation of the group. > As a result, the question arises: Is the project alive? > > I do not see any lists of tags except some very short raw examples. > What is the current state of the project? > The group exists for three months already, > but the project does not seem to be far from just an idea. > > Hope I have missed something important. :-) > > Thanks. > Hi Alexander, and thanks taking the trouble to read through the archive. No, you haven't missed anything so far. I'm not speaking for the mailing-list here, just myself. But I've been involved since fairly early, and I certainly hope we can keep up the pace. One thing to keep in mind, is that interest groups start from diverse points. As far as I can tell, the majority of open- source projects begin as splinters of existing efforts, with pretty clear mandates - often specifications which were formaulated within the earlier effort. The XPL project seems to have started independently and small, with a handful of active participants. So far, we're really still at the stage of getting to know each other and our skills. Quite a few ideas have been thrown around, but it may be months yet before we have a prototype which we can throw away, before buckling down to write a solid specification. It looks as if there are just four at present who are really keen. I for one, am going to have to take XPL at the pace I can, and it's pointless to work from expectations, e.g. that three months is too slow. Let me lay out a few points, on which the group would probably agree: 1. To date, XML has been applied to everything except programs. More accurately, XML has been primarily applied to interfaces or formats,, which is where it's immediately needed. Programming is tacked on as callbacks from document parsing - mainly in Java and Javascript. From the point of view of the existing developments, it would be a mistake to hardwire XML-based implementations together with XML interfaces. 2. There are good reasons to explore the resemblance between programming languages and XML. One is that procedural code has a hierarchic structure. Another is that both XML documents and programming languages are defined by grammars. 3. We want to develop XPL as a procedural language, because that's what we have in common. Me, I see the real benefits coming from functional language developments - but I think it would be quite counterproductive to insist on this at the outset. 4. We know that the modularity principle for XPL is going to derive from namespaces or from composition of grammars, or both. Just which option will turn out most fruitful, is something we'll find out as we move along. 5. This is a real opportunity for lateral thinking. IMHO, if we follow strictly in the footsteps of say Tcl or Javascript, we'll never make a novel contribution. But at the same time, we need to get some leverage from these demonstrated technologies. Also IMHO, this is an opportunity to stand back from some of the conventional wisdom of programming; and to re-open the deep issues of why programs are supposed to be programs, and data data. 6. It's up to us active members to show what the value of an XPL effort is. We might do that by creating a working prototype; or by setting out the theoretical issues clearly and accurately. 7. The journey of a thousand miles begins with a single step. In the end, all I can say is: stay tuned. Or maybe, mail in your thoughts about what an XPL should be. See ya Jonathan Quality accumulates, rubbish just piles up. --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:22:53
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Hi fellas For when we have xpl.org running, there's a rough sample on www.warehouse.net/saski/xpl.shtml . Any comments, additions, questions etc will be of assistance. In a few days, the FAQs will be better laid out, and I may have a cleaner version of the banner. It's been a hairy two weeks; I'm almost glad the discussions have been in abeyance. But I hope to be stirring the waters again soon. Regards Jonathan --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:21:35
|
--- In xpl-dev@y..., Michael Lauzon <ce940@f...> wrote: My group is called the XPL Group, we have a opensource project going on called XPL (eXtensible Programming Language). We are looking to get the XPL.ORG domain name. Michael http://www.egroups.com/group/xpl/ 'Eat, drink, and be merry, for tomorrow you may work.' --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:20:18
|
--- In xpl-dev@y..., "Michael Lauzon" <ce940@f...> wrote: Johnathan, To let you know SLICE and SPLICE are used in JavaScript as follows: slice() splice() What they do, I'm not sure yet...but I know we can incorporate the same into XPL as: <slice></slice> <slice> </slice> <splice></splice> <splice> </splice> --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:19:49
|
--- In xpl-dev@y..., "Garreth Galligan" <garreth.galligan@o...> wrote: >Well, what does your logo look like? Nothing yet... > (and somehow work the word: xplicit, into the XPL acronym). I dunno, 'xplicit' has highly unfortunate cornortations. Type it into any search engine and you know the kind of sites you'll get... Unfortunately XPL doesn't lends itself to useful phonetics (*not* that I think we should change the name). I was thinking along the lines of visual metaphors and possibly visual associations e.g. an obvious visual metaphor for a component of a system that does some work, or anything that does some work, is a cog an obvious visual association for the above would be traditional designer's construction lines and shapes (such as used in typography) 1's and 0's are obvious, and hackneyed, visual associations for anything to do with computers etc., etc. Regards Garreth --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:19:10
|
--- In xpl-dev@y..., "Michael Lauzon" <ce940@f...> wrote: Well, what does your logo look like? I was thinking something along the lines of: XPL (and somehow work the word: xplicit, into the XPL acronym). --- In xpl@e..., "Garreth Galligan" <garreth.galligan@o...> wrote: > Sorry Guys; I haven't had time to keep up with the currently flow of ideas > and contribute. > > The only thing I will have time to contribute in the near future is a > logo for the XPL web site, as once upon a time I used to be a professional > Illustrator. If anyone has any ideas, particularly any visual metaphors > which would be appropriate for XPL, please contribute - or I'll only end up > doing something involving cogs *again* :) > > Remember a logo is a pretty important part of any project's image, and > not just some artsy-fartsy eye candy, so if anyone feels like producing > their own versions - so much the better. > > http://www.egroups.com/files/xpl/ would be an appropriate place for anyone > to put files in relation to this. --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:18:38
|
--- In xpl-dev@y..., "Garreth Galligan" <garreth.galligan@o...> wrote: Sorry Guys; I haven't had time to keep up with the currently flow of ideas and contribute. The only thing I will have time to contribute in the near future is a logo for the XPL web site, as once upon a time I used to be a professional Illustrator. If anyone has any ideas, particularly any visual metaphors which would be appropriate for XPL, please contribute - or I'll only end up doing something involving cogs *again* :) Remember a logo is a pretty important part of any project's image, and not just some artsy-fartsy eye candy, so if anyone feels like producing their own versions - so much the better. http://www.egroups.com/files/xpl/ would be an appropriate place for anyone to put files in relation to this. --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:17:44
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Michael Lauzon wrote: > Johnathan, > > I asked if there was anyone out there that could help me write > comments of most of the tags when I posted them to the list, I gave 3 > tags that did have comments: > > <xpl> </xpl> > > <xpl> </xpl> > > <include content="xpl.dtd" version="x.x" /> > > <include content="xpl.dtd" version="x.x" /> > > <comment> </comment> > > <comment> </comment> > Gotcha. Thanks. As Robert points out, when we write as-ifprograms for this nonexistent language, we'll find what we need. Some of the tags have obvious functions, some we'll refine into what works for us. > Though I have seemed to have misplaced that list, I'll find it. But > I > know who should be the Technical Writer of the group. Anyeverhow.... > You warm my heart. Take your time reading that last burst of mine. I hope a lot is well-founded, but some definitely needs reworking. I had to get it down while the ideas were strong. Pleasantly, just today I've been reading a tome on Perl5-CGI (which is very powerful), and some of the same issues cropped up there. In the coming week, I'll be out of town at a conference, but if there's a Netscape running anywhere, I'll check in at the xpl@egroups mail archive. Til soon Jonathan "These are not 'globals', dear boy, these are Total Access Variables, and they're the coming thing." "Unleash the Power!" --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:17:13
|
--- In xpl-dev@y..., "Michael Lauzon" <ce940@f...> wrote: Johnathan, I asked if there was anyone out there that could help me write comments of most of the tags when I posted them to the list, I gave 3 tags that did have comments: <xpl> </xpl> <xpl> </xpl> <include content="xpl.dtd" version="x.x" /> <include content="xpl.dtd" version="x.x" /> <comment> </comment> <comment> </comment> Though I have seemed to have misplaced that list, I'll find it. But I know who should be the Technical Writer of the group. Anyeverhow.... Continue on with your studies, and I'll try (yes; try) to write some comments for the tags. :) --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:16:03
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Robert A Hopkins wrote: > Jonathan (11 May): > "Would you like to see > the addition example re-expressed using simplifications like that?" > > I think the more we express & re-express this language that doesn't > exist > yet, the more fluent we will become. (What does "<stdout>" mean? And > "<stdin>"?) (Jonathan, is there a reason you're using the form > "<comment></comment>" rather than "<!--comment here...-->"?) Righty. I used <comment>...</comment> because it was in Mike's tags. (Mike, I want to see them annotated with brief descriptions of their intended functionality. Most I can guess, but "slice" and "splice", to mention a couple, leave me guessing.) "stdin" and "stdout" are standard terms meaning "where the characters for this program are coming from", and "where the characters this program produces are going to". They're short for "standard input" and "standard output". Formally, they are "filehandles". In Unix-speak, that means references to objects you can read from and write to. Open files have filehandles, and so do standard character input and output. I thought everybody in the whole world knew that. I do suggest you look at a couple of tutorials in any of: (a) Perl, (b) Unix scripts, (c) C. You'll see "stdin" everywhere. <soapbox> If and when this list expands, newcomers will bring a combination of programming lore and Web lore to the table, and they'll expect to find the same. We need to be somewhat hip. I'm assimilating HTML and CGI conventions as fast as I can. But ideally, I'd want everyone here to have a rough overview of a variety of programming languages. And up to a point, I can provide just that. Just keep sending 'em in, Aly, and I'll keep knocking 'em back. </soapbox> > Jonathan: > <if> > <false> > <verify> > mylist > </verify> > </false> > > abort <comment> Handy things, macros. </comment> > </if> > > I like this. I think if I would argue for anything it would be for > rigorously applying one of the fundamental concepts of xml, and that > is > of containment. Elements are containers into which you stick things. Damn straight. Thank you. > comment> > Here we define a program variable to contain > a list of integers. > <comment> > > <variable type=intList> > <name> > mylist > </name> > </variable> > > <comment> > > Somehow I'm not comfortable with the idea of a container called > "variable". How about "<xpl:variable-type name=intList>" > As usual, you highlight the issue brilliantly, but this time you're wrong. Pay close attention... In the context of XPL, I want to say: A variable is a minimal document. It possesses the following attributes: A type. A name. Permissions: to read, to write, maybe to refresh. [A link to] something to call to recalculate its value. Its current value, in text form. [A link to] he DTD element definition for its type. The document which owns it - probably its parent. Timestamps, for date created, and date last modified. I'll take in a couple of general objections first: (1) It's a lot of content to impose on every little variable. Does this mean that we'll be transmitting massive quantities of information across the Net, at 56Kbd? If so, forget it. Reply: What we will transmit are XML documents - marked up text. Typically, we can expect to transmit, ONCE, an XPL program which contains a lot of variable-definitions, together with all the attributes; and MANY TIMES, the content (what I call "current value") of certain variables, in text form, bracketted by start and end tags giving their types. This may be just what the end-user requires. However the middle-user, i.e. the XPL program, will take the transmitted data, and install it in a fully-attributed document. Probably by changing one string in it, and updating a timestamp. In brief, the transmission load will be typical of XML and of CGI-style dialogs. (2) Does it mean that an XPL program must go through some verbose interface whenever it accesses a variable? Reply: The interface through which an XPL program accesses its own variables is simple. The methods of the interface begin with: Get-Current-Value: To use the current value of the variable. its-name <!-- Just quote its name --> Set-Current-Value: To replace the current value of the variable. <set> its-name new-value </set> Refresh-Current-Value: To have the variable update its own current value. <refresh> its-name </refresh> There will be additional methods, to get and set permissions, timestamps and so on, for use as required. But such information is usually set once only, or else automatically maintained, by the XPL executing parser. In normal programming, they will not be required. And this will SIMPLIFY the overall interface, because conditions such as "New value is not well-formed/wrong type/not verified" will automatically raise error conditions with which the programmer can deal at leisure. Rather than having to fill in all the error- for every second operation, as I did in the Add-list code. (3) Will not the processing of all this information, per variable access, require a serious processing overhead? Reply: Processing cost will be negligible, because variable access will be infrequent. Insofar as XPL is employed as a gateway language for Web dialog, the rate of variable access is gauged by the end-user's atttention. It is well-known that people can keep about 8 items of information at the forefront of attention at any moment. Arguably, they can select, from 20-30 items on a screen, the 8 to which they want to attend. The end-user has a dialog rate of a transaction every few seconds. The CPU will get the attributes up-to-date in microseconds. Insofar as XPL is employed as a high-throughput application server mechanism, its typical variable types will be large aggregates of structured information. E.g. documents, tables, databases, graphic models, and so on. (Remember: variables are elements, and elements are containers.) In processing aggregates, most XPL access to their parts will be reads, with negligible overhead. Write-access overhead will occur only on the subtrees which are rewritten, and their ancestry back to the root of the aggregate. Believe me. I went through much of this, while working with the Obsidian gang, of whom more another day. The data was 3D polygons; the amount of recalculated graphics was large, the response time was critical. The solution was to enrich the leaf items, i.e polygons, with cache data, ownership by larger volume elements, and so on. This enabled efficient searching and sorting, as well as caching. Now to the gist. In any programming language, a variable is a container of data. In XML, an element is a container of data. Specifically, it is a container which can contain other containers, as well as primitive data like ints and strings. I suggest that XPL variables should be variable elements. You can read them. You can write to them, subject to a dreaded VERIFICATION ERROR condition if you write incompatible content. That way, the source of an XPL program is a document, and so is its internal data. I want to explore the consequences of using documents for everything. The key questions are: What can you do WITH a document? and What can you do TO a document? It seems to me that the variable = container = element principle, combined with type-checked grafting of documents onto each other, gives us real power within a controlled family of data structures. (I haven't thought the question through, whether grafting is to be done with namespaces, or DTDs.) But wait, there's more. Traditionally, a variable is a container of data which resides in memory while a program is running. By the time the program has stopped running, the data we actually want should be stored in a file. Or files. A file is a container of data which persists whether its creator/maintainer programs are running or not. Q. When is a file a container which can contain other containers? A. When it is a directory. Q. Apart from persisting outside memory, is a directory an XML element? A. No. But wouldn't things get interesting if it were? Q. What does a directory have, that an XML element doesn't? A. Permissions, timestamps, and a name. Q. What does an element have, that a directory doesn't? A. Sibling ordering, type, and grammatical (i.e. verification) constraint on content. Q. What can we do to a directory, that we can't to an element? A. Search it by name. Sort it by name, or attribute. Q. What can we do to an element, that we can't to a directory? A. Parse it, constrained by tag (i.e. type) information. Q. What would it take to upgrade an element to directory abilities? A. Give it, and all its descendents, names. Q. How? A. Install a name attribute in each start tag, from the root down. Q. What would it take to upgrade a directory to element abilities? A. Give it, and all its descendents, types. Also, give an ordering for every set of siblings. Q. How? A. Give it a file type. That is, have its name end with its type. Also, create its children in access order - the creation timestamp will then preserve that order. Simply, I'm saying that <int name=x created=14May2000 permission=read+write> 377 </int> contains the same information as a file called x.int, created on 14 May 2000, with read and write permissions, and containing the text "377"; and also that <compound-type name=y created=15May2000 permission=read+enter (children) </compound-type> contains the same information as a directory called y.compound-type, containing files or directories in which the childrens' information is stored. I want to explore, whether we can use elements to do useful things with documents, and vice-versa. Q. Are you serious? XML is supposed to be platform-independent, while file system architectures vary from system to system. Bind them together, and you break platform-independence. A. Quite so - if we bind XML to an actual file system. Which we would, if we used, say a Tcl mechanism to make system calls to do cd, mv, rm, etc on the local file system. However, there are two parts to a file system architecture, the interface (API) and the implementation. Now HTML already assumes a file system interface of sorts, insofar as it uses paths in URLs: http://[domain]/[user-site]/topic/.../topic.html That much is platform-independent. It's simple enough that we take it for granted - mainly because it's a read-only lookup system. Now I'm canvassing the idea that XPL programs could access a file system interface like this, with write access. The actual file system implementation still calls the tune, because it takes the initiative in offering the API to XPL, and can impose its own error-detection and security upon the API, without XPL being aware. In brief, XPL won't know whether it is accessing files on a Windows server or an IBM 370, and it will be a guest, subject to local security. Engineering details no doubt remain to be worked out ;-) That being said, the main questions are: Q1. How can we expect to use directory mechanisms to perform useful operations on elements? Q2. How can we use element mechanisms to perform useful operations on directories? A1. Directory mechanisms will come into their own, once XML and XPL libraries become relatively complex. Several kinds of directory- based systems are used routinely for housekeeping and end-user simplification. For instance: configurations, installations, and version control. Configurations: Applications, e.g. Netscape, come with config and preference data, which is kept in files in special directories. On my Linux system, for example, PPP has its defaults stored in /etc/ppp, and Netscape in [...]/.netscape. When I have finished with setting defaults, I can set permission on the directory to read-only, and only with root access can I reopen them for writing. This is a good mechanism; and when people begin to offer complex XPL applications, they will want their clients to be able to store the defaults in controllable areas. Installations: When an application is provided as source for compilation, there are issues about where to find the bits and pieces to build the working version. The build process is automated to an extent, and re-used over many applications, by utilities such as project files (e.g. Borland C++ Build), makefiles (Unix standard) and package management files (Redhat Package Manager). All these utilities expect to look for and find the construction kit for the application in directories. Version Control: In developing any complex software, one wants to step from one stable version to another, as one gets more of the functionality up and running. As well, one wants to branch out into experimental versions, which will mature into desired functionality and be merged into a stable version, or else thrown away. And one wants to keep the entire history on file, easily and consistently referenced. But, one does not want to have to rename the items of the construction kit, each time a new version extends the tree. This is solved by means of a two-level directory naming system, in which the actual directories are automatically renamed, while on the upper level the developer continues to refer to items by their common names. XPL users will want this. All of these can be provided within XPL, if XPL elements have standard file and directory attributes built in. To implement them, we would need to investigate the workings of free-source examples, and to rebuild them as XPL programs. A major effort in each case; but each case would need to be done just ONCE. This is the kind of thing we could do, if XPL variable data elements possessed the usual attributes of files and directories. Shortly, we'll turn this on its head, and see what we could do, if files and directories accessible by XPL had the usual attributes of XPL elements: i.e. type, and grammatical contraints on content. But first, a digression: What a fine thing it is, to be a stamped addressed envelope! You get some writing on your front to say where you're going, and some more writing on your back saying where you've come from, in case you get lost. You have a handsome prepaid ticket stuck in one corner, so that everyone whose hands you pass through has to help you on your way; and an authoritative rubber stamp over your ticket, so that no-one can steal it. You might even have special instructions printed on you, for your proper handling by the postal services; PAR AVION, or DO NOT FOLD. And special instructions too for your receiver, about how to open you and dispose of you with environmental care. When you find me in your mailbox Cut the string and let me out Take me out of my wrapping paper Stick some bubblegum in my mouth Wash the glue offa my fingers Peel the stamps offa my head Pour me full of icecream sodies Tuck me in a nice warm bed - Pete Seeger The point I'm belabouring is, the Net is a system of message-handling services which works much as the postal services do, but automatically. As soon as I post this email, it will embark on a saga where it gets copied from server to server and protocol to protocol, being wrapped up with instructions, unwrapped, rewrapped and passed on, until it reaches its destination server and is delivered to its proper protocol. But while data-on-the-fly enjoys this deluxe handling, data-in-storage has it added on, sometimes, and as an afterthought. Reason is, files and directories on personal computers were conceived on the assumption that Programs are Active, Data is Passive. You told a program where to find its data, with a few command-line parameters; the data certainly did not jump up and demand its rightful program. Old-style applications modified this paradigm here and there, but the paradigm continued as default, pretty much until Apple put a GUI on everybody's desks. Macintosh files came equipped with resource envelopes, which dictated what the file required for processing - including the right application program. MS Windows took up the idea. Unix lagged behind, with generic files and directories which waited for a program to open them. The next big twist was Multipurpose Internet Mail Extensions. MIME types indicate the proper application for a file, e.g. text/html, application/msword, video/mpeg. Some MIMEs apply to stored data, and have standard filename extensions, e.g. .html, .doc, .mpg, respectively. From the other end, the desktop environment includes a list which nominates the preferred application to handle each MIME type listed. In this way, the idea of typed files has gained currency. But with XML elements which refer to directories, or better still have directory attributes, we can take it way further. A2. Let's work through an example. Cruising the Web, you happen on a page, and find there a link to download the beta of a game called Turps. When you click the link, you get the usual FTP download dialog. You nominate an empty user directory on your machine, with no root privilege. You must make the directory read+write, so that your local FTP can create new files in it. Say this directory is called game. You click in the dialog to accept download. You wait, and shortly there appears a new file, game/turps.tgz. So far, nothing novel has taken place. Now, you turn on your browser's XPL shell. You select a directory tree window, and open game. You see an ordinary directory tree display, entitled "game", with a mini-icon in it and a title "turps.tgz". You are naturally suspicious of downloaded games. So, you select another window, identical to the first one, and choose View/XPL. It shows <local-dir name=game permissions=read+write> <tgz name=turps permissions=read> <mime> Decompress archive/gunzip-untar </mime> </tgz> </local-dir> Now, if I have things right to this point, the <tgz>...</tgz> element contains exactly the same information as the icon. That is, courtesy of your system's MIME file, which contains: the MIME entry: archive/gunzip-tar tgz the user-verb: Decompress and the icon for .tgz files. If any of that doesn't fit in a MIME entry, then the hell with it, we'll make our own MIME file format up as an XPL document, with its own mime.dtd and everything. So assume we have that in operation. Both the element and the icon show the filename and type extension, and both are clickable. In fact, the two presentations are merely the parsing of the same XML file with two different stylesheets. So you click on either the icon or the user-verb. Next thing you know, the XPL window is showing: <local-dir name=game permissions=read+write> <tgz name=turps permissions=read> <mime> Decompress archive/gunzip-untar </mime> </tgz> <local-dir name=game/turps> <html name=README> Browse text/html </html> <xpl-package name=turps> Browse text/xpl-package Install package/xpl-package </xpl-package> </local-dir> </local-dir> Meanwhile, the directory tree shows that the turps.tgz file is now accompanied by a new directory, with README.html and turps.xpl-package files. Note that xpl-package comes with two MIME types: Browse text, and Install package. I'm not sure this is legit for MIME, but like I say, the hell with it. The point is, that we can equip a file type with whatever methods we like. Click on Browse, and you'll see a directory breakdown of the package, much as you would with Redhat. Click on Install, and the XPL code for the xpl-package type goes to work. What we have, in short is object-orientation for files by type, courtesy of an XML hierarchy which comprehends file structure, and XPL per type (or per class) to implement the methods. (Whew.) Consider this a first draft for what I'll be writing down more rigorously sometime soon, I hope. > As for the substance of what you're saying, I'm still working on it. > As I > understand it, the gist of it is that you want to define a complex > data > type in a DTD rather than in some sort of TYPE statement. (With > namespace > we can link your variable to a different DTD. Name it something on the > > order of "int:intlist", then it or any int:variable would belong to a > different namespace and different DTD than the default xmlns:xpl (it > would > be linked to xmlns:int). That obviates my previous suggestion of > "xpl:variable-type".) > I'll get back to you on this. Just now, I really need to get CGI andHTML generators under my skull. Don't lose the concepts. > ps: Oh my! I just saw what eGroups does to angle brackets in the > archives! ("View source" works.) > > pps: Don't be alarmed, Jonathan, I'm still working on the (larger) > gist of > it. > Same here. Closing down at 2 a.m. Jonathan We found our camels at the Paris end of town With a rabid alligator and he followed us around We fed him salted camembert and paddled his behind He said, I'm touched you'd bother, but the greater loss is mine - Nadine & Ferdie Okeefenokee GP&FS lives, '00 --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:14:58
|
--- In xpl-dev@y..., Jonathan Burns <saski@w...> wrote: Michael Lauzon wrote: > Encrypting XPL, I know I am getting way ahead, but eventually we are > going to have to tackle this problem...better sooner than later. Dead right. I'm out of my depth here. I'm beginning to pick up the rudiments by reading up CGI programming. Encrypting text with a key is easy. The art is in the handshaking which ensures that those and only those intended to read the text have the keys for doing so. > Also, has anyone seen a Miva application, if so speak up...because I > need to know something before I ask the other question?! > Sorry, not yet. Jonathan Downtime is for lovers --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:13:30
|
--- In xpl-dev@y..., Michael Lauzon <ce940@f...> wrote: Yes, Aly, we have a website...on Tripod (http://expel2.tripod.com/); but I am trying to get our group a free homepage on Linux Start (http://www.linuxstart.com/); though I wonder how we can go about getting a page on Source Forge (http://www.sourceforge.net/). Johnathan is using: <comment>This is a comment</comment> instead of: <!-- This is a comment --> Because comment between angle brackets is how we are going to be commenting XPL. :) On Thu, 11 May 2000, Robert A Hopkins wrote: > Are we doing a wish list as a new mailing list as a convenient way to > index items? I think it's a lot of work to plough through email archives, > and I don't see how there's enough volume on this list to justify > splitting it. What I had in mind was more like a simple html page with > literally a list of ideas, and a link or two if anyone wants to provide > more information. Is this do-able? Maintainable? (I have mail lists > coming out of my ears.) Michael, do we have a web site? > > Jonathan (11 May): > "Would you like to see > the addition example re-expressed using simplifications like that?" > > I think the more we express & re-express this language that doesn't exist > yet, the more fluent we will become. (What does "<stdout>" mean? And > "<stdin>"?) (Jonathan, is there a reason you're using the form > "<comment></comment>" rather than "<!--comment here...-->"?) > > Jonathan: > <if> > <false> > <verify> > mylist > </verify> > </false> > > abort <comment> Handy things, macros. </comment> > </if> > > I like this. I think if I would argue for anything it would be for > rigorously applying one of the fundamental concepts of xml, and that is > of containment. Elements are containers into which you stick things. So > the "if" container (or "conditional" or > "what-the-heck-is-if-then-called-in-formal-logic" container holds a > container for the condition to be tested and a container for the action > to be taken. Everything else is an attribute.) > > Jonathan: > <comment> > Here we define a program variable to contain > a list of integers. > <comment> > > <variable type=intList> > <name> > mylist > </name> > </variable> > > <comment> > > Somehow I'm not comfortable with the idea of a container called > "variable". How about "<xpl:variable-type name=intList>" > > As for the substance of what you're saying, I'm still working on it. As I > understand it, the gist of it is that you want to define a complex data > type in a DTD rather than in some sort of TYPE statement. (With namespace > we can link your variable to a different DTD. Name it something on the > order of "int:intlist", then it or any int:variable would belong to a > different namespace and different DTD than the default xmlns:xpl (it would > be linked to xmlns:int). That obviates my previous suggestion of > "xpl:variable-type".) > > ps: Oh my! I just saw what eGroups does to angle brackets in the > archives! ("View source" works.) > > pps: Don't be alarmed, Jonathan, I'm still working on the (larger) gist of > it. > > * * * * * * * * * * * * * > * ( ( ( ( ( ( ( ( ( ( ( ( ( * > * ) ) ) ) ) ) ) ) ) ) ) ) ) * > * ( ( ( A l y H o p k i n s ( ( ( * > * ) ) ) ) ) ) ) ) ) ) ) ) ) * > * ( ( ( ( ( ( ( ( ( ( ( ( ( * > * ) ) ) ) ) ) ) ) ) ) ) ) ) * > * * * * * * * * * * * * * > > > > -------------------------------------------------------------------- ---- > Remember four years of good friends, bad clothes, explosive chemistry > experiments. > http://click.egroups.com/1/4051/1/_/809694/_/958099969/ > -------------------------------------------------------------------- ---- > > To unsubscribe from this group, send an email to: > xpl-unsubscribe@o... > > > > Michael http://www.geocities.com/SiliconValley/Way/9180/ 'Eat, drink, and be merry, for tomorrow you may work.' --- End forwarded message --- |
From: reid_spencer <ras...@re...> - 2002-01-31 08:13:02
|
--- In xpl-dev@y..., Robert A Hopkins <p061949c@p...> wrote: Are we doing a wish list as a new mailing list as a convenient way to index items? I think it's a lot of work to plough through email archives, and I don't see how there's enough volume on this list to justify splitting it. What I had in mind was more like a simple html page with literally a list of ideas, and a link or two if anyone wants to provide more information. Is this do-able? Maintainable? (I have mail lists coming out of my ears.) Michael, do we have a web site? Jonathan (11 May): "Would you like to see the addition example re-expressed using simplifications like that?" I think the more we express & re-express this language that doesn't exist yet, the more fluent we will become. (What does "<stdout>" mean? And "<stdin>"?) (Jonathan, is there a reason you're using the form "<comment></comment>" rather than "<!--comment here...-->"?) Jonathan: <if> <false> <verify> mylist </verify> </false> abort <comment> Handy things, macros. </comment> </if> I like this. I think if I would argue for anything it would be for rigorously applying one of the fundamental concepts of xml, and that is of containment. Elements are containers into which you stick things. So the "if" container (or "conditional" or "what-the-heck-is-if-then-called-in-formal-logic" container holds a container for the condition to be tested and a container for the action to be taken. Everything else is an attribute.) Jonathan: <comment> Here we define a program variable to contain a list of integers. <comment> <variable type=intList> <name> mylist </name> </variable> <comment> Somehow I'm not comfortable with the idea of a container called "variable". How about "<xpl:variable-type name=intList>" As for the substance of what you're saying, I'm still working on it. As I understand it, the gist of it is that you want to define a complex data type in a DTD rather than in some sort of TYPE statement. (With namespace we can link your variable to a different DTD. Name it something on the order of "int:intlist", then it or any int:variable would belong to a different namespace and different DTD than the default xmlns:xpl (it would be linked to xmlns:int). That obviates my previous suggestion of "xpl:variable-type".) ps: Oh my! I just saw what eGroups does to angle brackets in the archives! ("View source" works.) pps: Don't be alarmed, Jonathan, I'm still working on the (larger) gist of it. * * * * * * * * * * * * * * ( ( ( ( ( ( ( ( ( ( ( ( ( * * ) ) ) ) ) ) ) ) ) ) ) ) ) * * ( ( ( A l y H o p k i n s ( ( ( * * ) ) ) ) ) ) ) ) ) ) ) ) ) * * ( ( ( ( ( ( ( ( ( ( ( ( ( * * ) ) ) ) ) ) ) ) ) ) ) ) ) * * * * * * * * * * * * * * --- End forwarded message --- |