ESI(ID:404/esi001)

Engineering and Scientific Interpreter  


for 8/s Interpreter and then later for Engineering and Scientific Interpreter (but also to sound like "easy")

Dave Waks 1966

Dialect of JOSS for the PDP-8/s




Related languages
JOSS => ESI   Extension of
ESI => ESIX   Extension of

Samples:
References:
  • Waks, David J. "ESI - Conversational-Mode Computing On The PDP-8/S" view details Abstract: An important problem in the computer business is that of "bringing the computer to the user."  This paper discusses the problems involved in the usual solution to this problem ? time-sharing ? and presents, as an alternative solution,  a system called ESI, which provides conversational-mode programming on a minimum PDP-8/S. Extract: Introduction
    Introduction

    Many people have computational problems which could most economically be solved with digital computers, yet which are still solved by pencil-and-paper or desk-calculator techniques, at a high cost in time and convenience.

    Three major barriers exist to putting these problems on computers: (1) The time required to bring them to the computer, wait for them to be run, and bring back the results is intolerable; (2) The problems are of a scale for which the time spent in explaining them to a programmer is large compared to the time required to solve them by hand; and (3) The man with the problem, who should, therefore, write the program himself, is not a programmer and doesn't want to have to become one to solve his problems.  This problem is referred to as being that of "bringing the computer to the user," and is one of the most important problems in the computer business today.

    Any solution to this problem requires two prongs: Hardware to physically place a computing facility at the user's disposal; and Software to make the computing system approachable by providing an interface with the hardware. Extract: Time-Sharing as a Solution
    Time-Sharing as a Solution

    It is widely believed that the best solution is to share a large computer among many users, in order to reduce the cost per user of the hardware and the software.  This requires the construction of an elaborate hardware system, and, typically, an even more elaborate software system largely devoted to solving the problems imposed by the complex hardware.  Such systems physically bring the computer to the user by giving him a console as close as he wants it.

    The software, on the other hand, leaves him as far from the computer as ever before.  This is because most such software systems are "open" in the sense that the entire computer system is available to the user ? in fact, much of the hardware/software design effort is devoted to maintaining this illusion for the user.  The trouble is that only an experienced programmer can really use these "open" systems. The last thing the true user, as opposed to programmer, wants or needs is to have to learn about a complex hardware system and an even more complex software system  (in most systems he must read three or four manuals just to be able to write a FORTRAN program and get it running).  The inexperienced user desperately needs to be isolated from the hardware and software.  He must have an environment expressly created for his use in solving his problems.

    The first time-shared system specifically directed toward the totally inexperienced user was the Rand Corporation's JOHNNIAC Open-Shop System (JOSS).  The major goals in the development of JOSS were: (1) it should be easily approachable by somebody completely inexperienced in computer programming; (2) it should be largely self- teaching; i.e., once a user has some basic knowledge, the use of the system should teach him the rest; (3) the user must be completely isolated from the computer; i.e., he neither knows nor cares about what's going on inside; (4) the user must be protected against his own errors,  so that, for example, there is no way for him to inadvertently destroy his program or the system; (5) there should be a minimum number of arbitrary conventions which the user must learn.  JOSS was implemented on the JOHNNIAC computer, and provided its facilities to up to eight users simultaneously.
    Extract: An Alternate Solution
    An Alternate Solution

         A completely different solution to the physical problem, suggested by the availability of computers in the PDP-8 class, is to give the user an entire computer for his own use. This is quite attractive if the computer is priced low enough, since the cost of a console in a time- shared system, including communications and hardware on the large computer, is comparatively high (about $13 an hour or so).  The lease price of a small computer, available 24 hours a day, might well be less than the price for two- hours-a-day use of a console in a time-shared system.  The problem, however, is whether a user-oriented software system can be built for a small computer.

         When the author first learned of DEC'S plans for the PDP-8/S, he became interested in the feasibility of implementing a JOSS-like system which would operate on a minimum PDP-8/S.  The result of the feasibility study is a program, the Engineering and Scientific Interpreter  (ESI), which provides most of the facilities of JOSS to a single user on a minimum PDP-5, PDP-8, or PDP-8/S.

         ESI is designed as a self- contained system which greatly simplifies the programming and debugging of modest-scale programs. The system is highly interactive with the user, making the transitions from design to coding to debugging to operation of programs very smooth and continuous.  The user can try something out immediately, see if it works, then discard it and try something else if it doesn't, or build on it if it does. The system is very easy to learn to use, taking less than an hour in most cases.  The rules for construction of programs are very concise, and are summarized on one page.
    Extract: A Description of ESI
    A Description of ESI

    As in JOSS, ESI statements have the form of English imperative sentences.  Every ESI statement contains a main clause which starts with an imperative verb (such as TYPE, DELETE, SET, GO) and ends with a period.  Frequently there are parameters between the verb and the period ? such as TYPE X.  Any clause which does not involve the transfer of control can be preceded by one or more iterative clauses which begin with the word FOR and end with a comma.  Any statement, including one which contains one or more FOR clauses, may be preceded by a conditional clause which begins with the word IF and ends with a comma.  Thus, the following is a perfectly legal statement:

         IF X = Y, FOR I = 1(1)N,
         FOR J = 1(1)N, TYPE ACI,J3.

    The following pages constitute the user's Manual for ESI.  Two pages of "conversations" with ESI, plus explanatory notes on those conversations, constitute an introductory primer; the last page, Permissible Forms in ESI-B, is a concise summary which should be the only manual necessary after starting to use ESI.

    In reading the "conversations" with ESI, the reader should look at the notes only if he doesn't understand the statements in the "conversation."  Much more can be learned by trying to figure out what's happening than by always referring to the notes. Extract: Permissible forms

          in Decus Conference Fall 1966 view details
  • Sammet, Jean E. "Computer Languages - Principles and History" Englewood Cliffs, N.J. Prentice-Hall 1969. p.217. view details
          in Decus Conference Fall 1966 view details
    Resources
    • esix documentation
      "Digital's announcement in August of 1966 of the PDP-8/s-- the first computer which
      sold for "less than ten thousand dollars" (it cost $9,995) -- was what
      stimulated me to write ESI. (The price list is dated 8/1/66; my design
      notes start on 8/3.)  The thought was that a newbie could buy a real
      computer at what seemed like a very reasonable price, but what could they
      do with it?  ESI (originally the "Eight S interpreter") was the answer...
      Many of the key concepts came from the Johnniac Open Shop System (JOSS)
      developed at the Rand Corporation - what I believe was actually the first
      interactive computer system as we would define it today.  I had seen a
      talk on JOSS by its developer (Cliff Shaw?) at a computer conference
      (FJCC 64 in SFO?), and was so taken by it that I travelled to Santa
      Monica to meet with the author and get my hands on the system.  (I think
      also in the Fall of 64).  I really wanted to create my own version of
      JOSS, and the 8/S looked like the right target.  (btw, I'm pretty sure
      that John Kemeny of Dartmouth also saw Shaw's talk, and he want back to
      Dartmouth and wrote BASIC.)"external link