[net.ai] AIList Digest V2 #149

LAWS@SRI-AI.ARPA (11/15/84)

From: AIList Moderator Kenneth Laws <AIList-REQUEST@SRI-AI>


AIList Digest             Monday, 5 Nov 1984      Volume 2 : Issue 149

Today's Topics:
  AI Societies - SCAIS,
  AI Tools - LISP/PROLOG Availability & CAI authoring systems & OPS5 examples,
  AI Literature - Technical Publication Addresses & Linguistics Bibliography,
  Programming - Malgorithms & Programming Style
----------------------------------------------------------------------

Date: Thu, 1 Nov 84 12:34:55 PST
From: Scott Turner <srt@UCLA-LOCUS.ARPA>
Subject: SCAIS

Before I personally get flooded with mail, please send all request
concerning joining SCAIS, etc., to scais-request@ucla-locus.

    Scott R. Turner
    UCLA Computer Science Department
    3531 Boelter Hall, Los Angeles, CA 90024
    ARPA:  srt@UCLA-LOCUS.ARPA
    UUCP:  ...!{cepu,ihnp4,trwspp,ucbvax}!ucla-cs!srt

------------------------------

Date: 2 Nov 1984 14:06-EST
From: CDR Jeff Ackerson (ACKERSON@USC-ISI)
Subject: LISP/PROLOG Availability

Would like to know if anyone knows of availability of either a
LISP or PROLOG environment that will run on an Altos 586-40.
Currently running Xenix.

------------------------------

Date: 2 Nov 84 13:16-EDT (Fri)
From: Malmros (Fs Hill) <malmros%umass-ece.csnet@csnet-relay.arpa>
Subject: CAI authoring systems

     Perhaps someone out there can help me.  I'm looking for a CAI
authoring system and all the ones I've seen so far have been absolute
dogs.  They're pedagogically simplistic and they're all geared to the
same old tutorial/drill-practice kind of application.  Does anyone know
of something more exciting that would be of sufficient pedagogical
quality for use at the college level?  I'm writing to AILIST because I
don't know where else to go.  My address is:

     malmros.umass-ece@csnet-relay.arpa

     thanks very much.

------------------------------

Date: 4 Nov 1984 10:01:09 EST (Sunday)
From: Charles Howell <m15434@mitre>
Subject: OPS5 examples


I am developing a small KBS using OPS5.  My first goal (if you'll
pardon the expression...) is simply to "get up to speed" on OPS5.
When learning other languages/systems, I've found examples to  be
very  helpful.   Does  anyone  have  any examples of working OPS5
systems that they can send me or give me pointers to?   If  there
is  much  response,  I'll be happy to collect them and distribute
them (or collect and distribute pointers, as the  case  may  be).
If  you  have an example that you wouldn't mind my using (the KBS
is for a graduate course in  AI)  but  you  don't  wish  to  have
distributed,  I'll  of course not include it in the distribution.
I hope my system will be a bit more stable from now on,  so  that
the turnaround on distributing the OPS5 examples isn't as long as
it was for the technical publications addresses...

Thanks very much,
Chuck Howell
The MITRE Corporation

------------------------------

Date: 4 Nov 1984  9:48:08 EST (Sunday)
From: Charles Howell <m15434@mitre>
Subject: Technical Publication addresses


A  month  or  so  ago,  I  posted  a  request  for  addresses  of
institutions publishing technical reports related to AI.  Several
people responded; thanks! Several people also requested a copy of
the  collected  list  of  addresses.   Unfortunately,  the file I
collected these messages in has been destroyed, along with a  lot
of  my other files... and, of course, the most recent backup that
is usable predates the creation of this file.   If you would
like  a  copy  of this list, please let me know.  I apologize for
the delay in responding to those who already sent such a request.

Chuck Howell
The MITRE Corporation

------------------------------

Date: Fri 2 Nov 84 09:00:29-PST
From: C.S./Math Library <LIBRARY@SU-SCORE.ARPA>
Subject: Linguistics Bibliography

There is an index published by Sociological Abstracts which is called
Language and Language Behavior Abstracts.  I believe it is a quarterly
publication.  It is also an online database available on at least Dialog
and BRS.  I have not made a complete evaluation of these abstracts for
their relevance to computer science, AI etc.  However this week at the
Online conference in San Francisco I did learn that the index does
have a section on mathematical and computational linguistics.  A very
quick search with the descriptor term artificial intelligence came
up with 45 hits.  However much of the material was in the older part
of the database.  I was told there has been some changes in scope and
as of now I am not sure whether their scope has expanded in the areas
of interest of AIList readers or the scope has been limited.

Harry Llull, Computer Science Library Stanford University.

------------------------------

Date: 31 Oct 1984 08:36-CST
From: SAC.LONG@USC-ISIE.ARPA
Subject: Badgorithms


I have noticed much discussion on natural languages and AI processors
with difficulties in linguistical interpretations due to varied
meanings (?!?).  Well my PC (personal consideration) on the use of
'badgorithm' is that it is a poor construct from the similarity and
pronouncability of its original word, 'algorithm'.  In view of this
I would like to submit in its place a modified parsed version:

                           'badorithm'

It seems to me the substituted word is much simpler to pronounce and
has more of an audio similiarity to algorithm.  It is not my intent to
bring any discredit or defaming to the coiner of 'badgorithm', but
only to present what may be a more useful form of the original idea.
Of course, such things are a matter of personal taste to a great extent.

What do you think?

------------------------------

Date: Fri 2 Nov 84 14:28:15-CST
From: CMP.BARC@UTEXAS-20.ARPA
Subject: "badgorithms" vs. "algospasms"

I know this is an election year, but perhaps we need more than two choices
on some important issues.  How about "malgorithms" or is that too easy?

Dallas Webster

------------------------------

Date: Wed 31 Oct 84 09:55:03-MST
From: Stan Shebs <SHEBS@UTAH-20.ARPA>
Subject: Programming Style in Lisp and C

(Oh no, not more "programming style" flames!)

I'm a little puzzled why "imperative style" in Lisp is so much worse
than the same style in C or Pascal.  There's a difference between
abstraction and imperative code.  Last year I wrote a large quantity
of graphics C code, and attempted to make it functional as possible.
I ended up resorting to amazing numbers of preprocessor macros (is this
abstraction?  why not just use the macro processor (it's computationally
adequate) and dump the C compiler?) in order to get the polymorphic
functional style, and it was pretty messy.  Why should one have to tinker
with pointers explicitly, or allocate storage manually?  I have yet
to see a nontrivial C program that dispensed entirely with assignment
statements.

There are at least two reasons for doing "imperative style" in Lisp.
The first reason is to reduce the complexity of programs.  True functional
style requires that you *always* pass around all data that you will
ever use.  For instance, any I/O parameters can never be defaulted -
all of them will always have to be passed to the I/O functions.  I've
heard very few people actually advocating that in practice (although
many are quick to advocate in theory...).  Another way to put it is that
global variables are completely disallowed!  The second reason is that
Lisp kernels generally have to be coded for VN machines, and so their
code tends to look more "imperative" in nature (of course, I'm assuming
that one is doing Lisp-in-Lisp).  The PSL kernel definitely has an
atypical coding style, but of course you can't implement LAMBDA using
LAMBDA directly!

In any case, I've only seen a few Lisp programs that were totally
without side-effect operators, and those were small examples.  I'd
be interested to hear of a major system being done in a true functional
style (Steele's RABBIT compiler for Scheme is the closest candidate
I know).  Side effects have their place, albeit a rather small one...

                                                        stan shebs

------------------------------

Date: Wed 31 Oct 84 10:16:48-MST
From: Stan Shebs <SHEBS@UTAH-20.ARPA>
Subject: What To Do With All Those Functions

I use lots and lots of small functions in Lisp programs also, and have
adopted a sort of semi-systematic depth-first scheme for ordering them
in a file.  That is, if A calls B and C, and B calls D, and C calls
E and F, then I put them in the order A B D C E F.  The rationale is
that B and D (for instance) form a unit, and should therefore be
grouped together.  If a function is used in several places, I usually
put it close to the first place.  If it's used in *lots* of places,
it's a utility, and therefore goes in a separate utilities file.
Files should be kept relatively small (<1000 lines), and should have
plenty of "separating" documentation that divides larger files into
several parts.

Don't think of functions as a burden;  they are an advantage.  There's
no limit on name lengths, and their cost is trivial, so you can name
them to be very mnemonic (such as "get-first-item-and-mung").  This
is a great aid for debugging.  Also, programs will be easier to modify
later on (and save scrolling work for the text editor!).

                                                        stan shebs

------------------------------

Date: Wed 31 Oct 84 14:18:32-MST
From: Uday Reddy <U-REDDY@UTAH-20.ARPA>
Subject: Functionitis

I thought that there were several books answering questions of the sort
Shawn Amirsardary posed and that all decent Universities offered courses
that dealt with such questions.  The subject is called "programming
methodology".  Since the questions are age-old and so are the answers to
them, I will be brief.

What do you do with "million and a half functions that get called from
usually one place"?  You use "abstraction".  If you are trying to
understand a program by tracing it, you are NOT using abstraction.  In that
case you would naturally prefer SETQ's to functions.  But, if you know how
to use abstraction, you would hate SETQ's.

How do you order function definitions?  You organize them into "modules"
which are also called "classes", "forms", "clusters" or "packages" in
various contexts.  If you are using a state-of-the-art language, it should
support modules.  Otherwise, you can still organize the functions into
modules on your own.

------------------------------

Date: Fri 2 Nov 84 14:33:58-CST
From: CMP.BARC@UTEXAS-20.ARPA
Subject: Re: Lisp Function-itis

Would you consider trading your LAMBDA (or 3600 or Dandelion) for a NORMA
(Normal Order Reduction Machine Architecture), and using a purely functional
language that supports modules (SASL)?

Dallas Webster (CMP.BARC@UTexas-20)

------------------------------

End of AIList Digest
********************