home .. forth .. misc mail list archive ..

Re: presentation for SVFIG


>Vic Plichota mourned *Jeff Fox awfully prematurely:
>
>>> I guess I have been offline from the list for several months
>>
>> Nice to see you back, Jeff;  I had given you up for dead!
>>
>>
>> cheers   - vic
>
>Jeff Fox is not only alive and well, he is prominently named in
>
>http://www.geocities.com/mentifex/mind4th.html (in thanks to Jeff
>
>for his help; see last line of code) and among the Greats of AI:
>
>--
>Why do so many of the Greats of AI have four-letter names?
>Alan, Andy, Bart, Bill, Dave, Doug, Drew, Hans, Harv, *Jeff,
>John, Jorn, Kurt, Mark, Marv, Matt, Matz, Ment, Mike, Neil,
>Nick, Nils, Noam, Paul, Pete, Phil, Push, Ross, Seth, Vern.
>
>P.S.
>
>Jeff's Forthmind code suggestions have been so ultra-sophisticated
>that yesterday from a VB-Mind coder I received e-mail begging for
>an explanation of what Jeff meant when he improved a line of code:
>
>Old SENSORIUM code:  t @  onset @  = IF  1 bg !  ELSE  0  bg !  THEN
>
>Jeff's improvement:  t @  onset @  =       bg !
>
>[ Try to translate THAT Forth trick into Visual Basic! ]

While that's a neat little trick, it's not very specific to Forth.  VB
might not support assigning things to boolean expressions, but C sure
does.  Of course, it's absurd to think that any Forth programmer familiar
with his environment wouldn't know exactly what = returns (is it 1/0 or is
it -1/0 or is it undefined?) whereas I've been using gcc for several years
and I couldn't tell you without checking what == evaluates to (I suspect
-1/0, but 1/0 wouldn't surprise me at all).  Not that it matters in a case
like that, but sometimes you want exactly 1 or 0 instead of just not zero or
one out of a boolean operator/word and it's good to know exactly how
your system works.  Somehow C just discourages that (perhaps because I've
never seen "the code for ==" because it doesn't really exist in that form
-- it's generated by probably half a dozen paths through a complicated
compiler I'm scared to touch without learning two new languages first [lex
and yacc]).  It's a much more subtle thing, much harder to define than any
actual difference in expressive capacity, more a difference in teh way the
language messes with the programmer.