The Best of Creative Computing Volume 1 (published 1976)

Page 60 << PREVIOUS >> NEXT Jump to page:
Go to contents Go to thumbnails

Toward a Human Computer Language

graphic of page

Basic
10 PRINT "DO YOU NEED INSTRUCTIONS?"

20 INPUT A$
30 DIM A$(1)
40 IF A$="N" THEN 80
50 PRINT "PLEASE GUESS A NUMBER BETWEEN 1 AND
60 PRINT "THEN I WILL GIVE YOU A HlNT"  100/';
70 LET X=lNT((100*RND(0) 1) ‘--'

80 INPUT R
90 IF X=R THEN 150
100 IF R<X THEN 130
110 PRINT "GUESS LOWER"

120 GOTO 80
130 PRINT "GUESS HIGHER"

140 GOTO 80
150 PRINT 'YES!"

160 GOTO 10
Logo
TO START
10 PRINT "DO YOU NEED INSTRUCTIONS?"

20 IF IS REQUEST "YES"

   THEN PRINT "PLEASE GUESS A NUMBER BETWEEN
   1 AND 100, THEN I WILL GIVE YOU A HINT"

30 QUIZ RANDOM 1 100 REQUEST
END
TO QUIZ :X: :GUESS:

10 IF EQUAL :X: :GUESS: THEN WON ELSE LOST
   LESS :GUESS: :X:

END
TO WON
10 PRINT "YES!"

20 START
END
TO LOST TOOLOW:

10 IF :TOOLOWS: THEN PRINT "GUESS HIGHER"

   ELSE PRINT "GUESS LOWER"

20 QUIZ :X: REQUEST
END

To which language should we prefer to expose ourselves or
our children? Keep in mind that most machines including
microprocessors have long had all the instructions needed
to easily realize Algol-like control, which Fortran-like
languages use only for parsing formulas. A decade ago
Fortran was wasting abilities of most machines it ran on,
now it and its relatives are simply more wasteful of more
machines.

The actual range of computations and data-types could
also be a topic of discussion (e.g. Fortran and Basic do
numerical work easily, string manipulations with difficulty).

Apart from attempting elegance, some languages
serve particular computational audiences (eg. Snobol for
strings, Lisp for lists/functions). However, nearly all
languages suffer idiosyncratic limitations when type
definitions lend predisposition of meaning to data.

Profusion of data-types is all right as long as it does not
hamper the user's own constructions. The enterprise of
reality or programming is message processing and the effect
(meaning) of a particular message depends upon the action
of the computational chunk (object) that receives it. This
merges with the idea of an extensible language in which the
user can construct new entities which truly expand the
power of the language. Procedure definitions in Algol,
Pascal, Logo, etc. constitute only a beginning (subroutines
in Fortran and Basic are but trivial excursions into machine
language, because they lack even the syntactic status of
primitives). Education and computers can be linked via
language extensibility.

We want the machine to understand us in our vernacular
or a sensible approximation of it. We want to phrase
programs as solutions to our problems in clear, powerful
prose. For these purposes, no existing language may ever be
satisfactory as it stands. Including English, etc.I Thus the
need for extensibility - syntax and semantics being under
our control during the course of a computation. Languages
which allow the creation of new types of objects and new
examples of existing types have been around for some time,
Simula for instance. Generally their births were motivated
by desires to model real-world systems by simulation (e.g.

of forests, hospitals, etc.). Their abilities to create new
types and examples of objects that intercommunicate at
will allows one to begin to program with a greater sense of
reality. But restrictions remain, Simula is fixedly Algol-like,
Simscript is incomprehensibly couched in Fortran syntax,
and so on. Perhaps the ideal is a language which captures
the essence of "objectness" and intercommunication, yet is
itself an editable object accessible to its users. Exciting
work along such lines is being done by some people and will
surely leave a mark on our computational future.

So, the rest of the answer to the opening question is:

"certainly every effort should be made to breach the gap
between computer and human language". Particularly in
educational settings, where it is paramount that the
student's language be the language through which learning
proceeds. The goal isn't English, or any other known
language in particular, but the ability to construct whatever
objects/languages one wants.

'Say something in computerese."

Page 60 << PREVIOUS >> NEXT Jump to page:
Go to contents Go to thumbnails