sz wrote:
> [...]"Henry Baker's Archive of Research Papers" was here:
>
> III. WHERE IS HENRY BAKER HOMEPAGE?!
>
> I decided to reread his papers on linear logic and failed to find
> his homepage.
- ftp://ftp.netcom.com/pub/hb/hbaker/home.html
but unfortunately seems recently disappeared and, worse,
I have lost copies of some of his papers.
--
Massimo Dentico
>sz wrote:ftp://samaris.tunes.org/pub/food/papers/people/Henry.Baker/ and
>> [...]
>>
>> III. WHERE IS HENRY BAKER HOMEPAGE?!
>>
>> I decided to reread his papers on linear logic and failed to find
>> his homepage.
>
>"Henry Baker's Archive of Research Papers" was here:
>
>-
><ftp://ftp.netcom.com/pub/hb/hbaker/home.html>ftp://ftp.netcom.com/pub/hb/hbaker/home.html
>
>but unfortunately seems recently disappeared and, worse,
>I have lost copies of some of his papers.
>
>--
>Massimo Dentico
http://linux.rice.edu/~rahul/hbaker/
are the mirrors that I currently know of.
Glad to help,
~
[Non-text portions of this message have been removed]
From: ndg-51@... [mailto:ndg-51@...]
>I've only toyed a little with Forth and just found out about Joy, butDid you check out the type system in strongForth (available from our Files
>anyway ..
>(On the other hand I know some things about type systems :)
page, or from its homepage)? It's impressive in its simplicity and
flexibility. Very Forthlike, yet provides full static polymorphism on input
parameters.
-Billy
It's good to see a post here :-).
From: Manfred von Thun [mailto:phimvt@...]
>On Wed, 14 Feb 2001 ndg-51@... wrote:I wouldn't call any notation using infix "==" concatenative notation.
>> --- In concatenative@y..., phimvt@l... wrote:
>> > On Sat, 23 Dec 2000, sz wrote:
>> > > NumRes == Int Float Either synonim ;
>> I would write that :
>> type NumRes == Int Float Either ;
>> This is the type of objects which contain
>> either an object of type 'Int' or an object of type 'Float'
>I think it will need a lost of discussion whether concatenative
>notation (Forth, Joy) is really the best to use for types.
>Also, distinguish concatenative notation from postfix notation.
>For example,
> add_three == + +
>is perfectly OK concatenative notation, but of course the right
>hand side does not denote a number.
"add_three" [+ +] == would be a little more concatenative.
I'm not sure what you mean by "does not denote a number", though. The
expression certainly doesn't have a numeric literal in it -- but I don't
know why that should be important. The right side does weakly connote a
number, since + is defined primarily on numbers.
Dr. Becher has done some impressive work with concatenative type-notation;
the result is both simple and powerful.
>Let us now ask whether there might be a use forWhy shouldn't there be a use for alternating between one of three types? I
> alt_three == Either Either
>Maybe there is, but I don't see it yet. If there is no use for
>that, then your particular example is best seen as just postfix
>notation.
don't get it.
> EXPRESSION denotes VALUEHmm. I'm not familiar with your usage of the word "denote". To me, it
> arithmetic postfix --> number
> type postfix --> type
> arithmetic concatenative --> numeric_stack function
> type concatenative --> type_stack function ???
means "to explicitly write down." It's usually opposed to "connote", which
means "to carry meaning implicitly." Thus, I don't know what you're saying
here.
I also don't know exactly what your distinction between "postfix" and
"concatenative" is; I'm guessing that "postfix" is being used as a parsing
term (whether or not the parser can truly handle all concatenative
properties), and "concatenative" implies the preservation of concatenative
semantics. Thus, you could make a postfix language out of Lisp by putting
the function at the end of the parentheses, but it would still be an
applicative language.
>> So if an object has type 'a b Either',I didn't notice this in the original post. I think runtime type
>> for some types a and b, said object contains
>> either an object of type 'a' or an object of type 'b'
>> (And you can determine at runtime which alternative
>> a specific object is)
determination is essential, but I don't think it's wise to require it of all
types, as he's implying here. I'll talk more about this later if anyone
asks -- I've gotta go.
> - Manfred-Billy
On Wed, 7 Mar 2001, Billy Tanksley wrote:
> From: Manfred von Thun [mailto:phimvt@...]If one thing is defined to be another, then the two are really one,
> >On Wed, 14 Feb 2001 ndg-51@... wrote:
> >> --- In concatenative@y..., phimvt@l... wrote:
>
> >> > On Sat, 23 Dec 2000, sz wrote:
> >> > > NumRes == Int Float Either synonim ;
>
> >> I would write that :
> >> type NumRes == Int Float Either ;
> >> This is the type of objects which contain
> >> either an object of type 'Int' or an object of type 'Float'
>
> >I think it will need a lost of discussion whether concatenative
> >notation (Forth, Joy) is really the best to use for types.
> >Also, distinguish concatenative notation from postfix notation.
> >For example,
> > add_three == + +
> >is perfectly OK concatenative notation, but of course the right
> >hand side does not denote a number.
>
> I wouldn't call any notation using infix "==" concatenative notation.
> "add_three" [+ +] == would be a little more concatenative.
they are the same thing. For expressions this means that the one
can be substituted for the other. Examples of substitutions:
2 3 + == 5 and hence 2 3 + 10 * == 5 10 *
2 * == dup + and hence 3 2 * == 3 dup +
After the definitions
square == dup *
add_three == + +
they can be substituted, for example
3 square == 3 dup *
4 add_three == 4 + +
(and incidentally, but only because addition is associative:
== + 4 + )
But after the definition
"add_three" [+ +] ==
they can't be substituted - one is a string, the other is a quoted
program. Where one writes the == , if at all, is independent of the
syntax of what goes on the left (a new name) and on the right (an
expression). One could write definitions like this:
{ square dup *, add_three + +, swapd [swap] dip }
i.e. as comma-separated combinations of a name and a (possibly empty)
program. The program would still be in whatever notation the language
uses.
>I think my usage is entirely conventional, as in "denotational semantics".
> I'm not sure what you mean by "does not denote a number", though.
Semantics gives meaning to syntactic expressions (combinations of
symbols). Semantics has to start with the simplest symbols and give
them a meaning, their denotation. For example, the following are
expressions one can find in English writing:
"seven" "7" "VII" "3 + 4" "the number of days of the week"
All these expressions denote one and the same number - I could tell
you what that number is (as though you did not know), but in doing
so I would have use to an expression which denotes that number. That
would have to be one of the expressions or a new one.
> TheThis is how I would say it:
> expression certainly doesn't have a numeric literal in it -- but I don't
> know why that should be important. The right side does weakly connote a
> number, since + is defined primarily on numbers.
+ + denotes a function from stacks whose top three elements are
numbers and which returns a stack in which the top three numbers
are replaced by just one number, their sum.
That function does not denote a number, nor a ternary function
from three numbers to one numbers. It denotes a function from stacks to
stacks.
> >Let us now ask whether there might be a use forAs I said, maybe there is, but I don't see it yet.
> > alt_three == Either Either
> >Maybe there is, but I don't see it yet. If there is no use for
> >that, then your particular example is best seen as just postfix
> >notation.
>
> Why shouldn't there be a use for alternating between one of three types? I
> don't get it.
>See what I said earlier. Writing down is done by people and computers,
> > EXPRESSION denotes VALUE
> > arithmetic postfix --> number
> > type postfix --> type
> > arithmetic concatenative --> numeric_stack function
> > type concatenative --> type_stack function ???
>
> Hmm. I'm not familiar with your usage of the word "denote". To me, it
> means "to explicitly write down." It's usually opposed to "connote", which
> means "to carry meaning implicitly." Thus, I don't know what you're saying
> here.
or if you like human hands and printers. But they don't denote in any
sense I have heard of. I see "connote" only rarely these days. An old
example used to be "I am firm" "you are obstinate" "he is a pigheaded
fool" - which carry the same information but different connotation
(same as "emotive meaning"). Dunno. Maybe an expert on intensional
languages can clarify what connotation is.
> I also don't know exactly what your distinction between "postfix" andLet me try:
> "concatenative" is; I'm guessing that "postfix" is being used as a parsing
> term (whether or not the parser can truly handle all concatenative
> properties), and "concatenative" implies the preservation of concatenative
> semantics.
EXPRESSION what the expression denotes
concatenative:
5 a unary function from stacks to stacks
(push the number five)
2 3 + same as above
+ + a unary function from stacks to stacks
(add top three numbers)
postfix:
5 the number five
2 3 + same as above
+ + nothing
> Thus, you could make a postfix language out of Lisp by puttingThat is exactly right.
> the function at the end of the parentheses, but it would still be an
> applicative language.
Instead of postfix one could use prefix, and instead of the
"diagrammatic" (category theory) order of Forth or Joy one could
use the reverse, "applicative" order - both awful terms if you ask me.
Concatenative-reverse would make + + just as meaningful
as concatenative does: it denotes a unary function from stacks to
stacks... - you have heard it before. But + + is not meaningful
in postfix or prefix notation, even though of course
1 2 3 + + is meaningful in postfix, and
+ + 1 2 3 is meaningful in prefix.
While I'm at it, we must distinguish + + from (read "\" as "lambda")
\x \y \z + + x y z
\x \y \z x + y + z
\x \y \z x y z + +
which all denote, in prefix, infix and postfix, the ternary function
which adds three numbers (and that is not a unary stack function either).
I hope this helps. I have to admit that it took me a _very_ long
time to get clear on all this.
- Manfred
> Dr. Becher has done some impressive work with concatenative type-notation;Do you have a reference for this?
> the result is both simple and powerful.
--
http://sc3d.org/rrt/ | violence, n. bravery for cowards
From: Reuben Thomas [mailto:rrt@...]
>> Dr. Becher has done some impressive work with concatenativehttp://home.t-online.de/home/s.becher/forth/
>> type-notation; the result is both simple and powerful.
>Do you have a reference for this?
Good stuff.
-Billy
--- In concatenative@y..., Billy Tanksley <wtanksley@b...> wrote:
> It's good to see a post here :-).it of all
>
> From: Manfred von Thun [mailto:phimvt@l...]
> >On Wed, 14 Feb 2001 ndg-51@m... wrote:
> >> So if an object has type 'a b Either',
> >> for some types a and b, said object contains
> >> either an object of type 'a' or an object of type 'b'
> >> (And you can determine at runtime which alternative
> >> a specific object is)
>
> I didn't notice this in the original post. I think runtime type
> determination is essential, but I don't think it's wise to require
> types, as he's implying here. I'll talk more about this later ifanyone
> asks -- I've gotta go.I don't think runtime type information is essential (i'm more of a
static typer than a dynamic typer (heresy ?))
what i meant was that one could (at runtime) determine wheather the
object of type 'a b Either' contained an object of type 'a' or an
object of type 'b', *not* what type 'a' or 'b' is...
This kind of thing could be seen as a dynamic type tag,
but it's necessary even in statically typed languages
>
> > - Manfred
>
> -Billy
From: ndg-51@... [mailto:ndg-51@...]
>> in regular expressions and grammars. The "|" mightIndeed. Backtracking is fun :-).
>> be paired with a "fail" operator to give backtracking.
>> So "." and "|" would be similar to "," and ";" in Prolog.
>> But just as regular expressions and grammars do quite
>> nicely without making both infix operators explicit,
>> so could Joy which has other infix operators.
>> Anyone out there want to implement a backtracking version
>> of Joy? If you do, take a look at the Pascal pages on my
>> web page. Lots of backtracking programs there.
>interesting
It's also surprisingly easy to add to a concatenative language, if the
language allows well-defined access to the return stack and a word to push
the current continuation.
http://www.forth.org.ru/~mlg/#bacforth
I don't read Russian, but the English paper tells me what I needed.
By "well defined access" I mean a way to push and pop things from the return
stack onto the data stack, and a well-defined way to operate on them on the
data stack (swap, dup, and so on).
>> - Manfred-Billy
My recollection is that when the concatenative group was
handled by egroups.com, one had to join to read the emails.
When I was first invited, I joined and put a link on the
Joy page advising how to join the group - and of course
I had to give the name of the group.
In the meantime the handling of the group was transferred to yahoo.
Recently I had a private email (from a non-member, at that time)
suggesting that I update the link to
http://groups.yahoo.com/group/concatenative
which gets into the group directly. All the old posts are there,
very nicely archived. But one can read them even if one is
not a member - as I found out when I visited that site from
another account which very definitely does not have any connection
with my normal account. So if I give the above link on the
Joy page, some marketeer can flood us with advertisements.
If I just give as the new link
http://groups.yahoo.com
anyone interested will have to know the name of group to use
the search facility to find us. So I'll have to tell them, also
on the Joy page, to search for "concatenative". Then the
mail archive is two clicks away - just as easy for the marketeer.
I receive the usual academic junk mail from my own University
Administration, but apart from that just about nothing from
the outside - maybe two or three per year. So it seems that
yahoo is in fact quite safe, and that marketeers cannot be
bothered to hunt us down.
I nobody objects, I shall change the link on the Joy page
to the first, longer one above. It saves any new joiners those
extra two clicks. Please let me know if anyone objects.
- Manfred