JEAN(ID:2135/jea001)


Conversational programming lanugage - a dialect of JOSS

Hardware:
  • 1900 ICL (International Computers Limited)

Related languages
JOSS => JEAN   Dialect of

Samples:
References:
  • JEAN, International Computers Ltd., Letchworth, England, 1968 view details
  • International Computers Ltd "ICL 1900 Series: JEAN manual" view details
  • Tavis, M. T. "Conversational computing with Interfact" in Data Processing. London. 11(1) 1969, pp72-73. view details
  • McLain, TG and Trice, AR "The MINIMOP multi-access operating system" pp237-242 view details Abstract: This paper describes the design and development of a multi-access system which has been implemented on the small to medium 1900 series computers.

    Extract: Facilities provided
    Facilities provided
    Our aim was to provide as many of the basic essentials of a large general multi-access system as space would allow, without including facilities which would increase the complexity of the system to an extent where it was attempting the job of a fully fledged operating system offering on-line and batch processing capability. These basic essentials were considered to be:
    A simple easy to use Command Language.
    Adequate filing and editing facilities.
    Compilers interfaced at command level, for running programs written in a high level language.
    Access to a library of other compilers and programs.
    Conversational problem solving capability.
    Capability of allowing the user to extend the system under certain limitations to provide the on-line facilities relevant to his application.
    Internal batch processing to utilise any unused C.P.U. time if multiprogramming under Executive is not possible (background jobs).
    Adequate utility programs to set up the file structure and provide system off-lining.

    The first five formed the requirements on which the initial design was based and the need for the sixth became apparent during the development of the free standing 1900 JOSS type conversational language JEAN, which was being undertaken at about the same time.
    We considered extendability to be the answer in a small multi-access system, to the different needs of a variety of users, and we decided therefore to design the input/output interface between JEAN and MINIMOP in such a way that other conversational packages, written by the user, could be incorporated in the basic MINIMOP system in the same way. For this reason the interface, which is provided by a single monitorable extracode, was made as simple as possible. To have access to such a package it is only necessary to incorporate it in the library with a single marker bit set to indicate its special properties.
    The last two requirements were included for completeness.
    In a 16K processor there would be no unused core space and multiprogramming under Executive would not be possible, so the ability to process background jobs within MINIMOP to absorb unusued C.P.U. time is an added advantage. The provision of utility routines to allow bulk off-line input and output relieves the user of a great deal of the tedium from his work and enables him to obtain required results more quickly. He also needs adequate routines to set up basic file structures, etc. (No attempt to describe these is made in this paper.)
    Finally, we attempted to provide as much security and accounting as was possible within the obvious restrictions of a small system. We were unable to provide incremental dumping and automatic archiving facilities during on-line running because of space restrictions.
    A certain reliance is therefore placed on the organisation of the installation to dump cartridges or files using standard library routines to other cartridges or other magnetic media at regular intervals. File security, in addition to that normally provided by Executive, was achieved by normal password techniques.
    The system allows the user to change his password at will from the console once he has gained access to his file, thus increasing its security. Accounting information, giving total console connect time and C.P.U. time used, is typed at the console when the user logs out. A record of this is also written to the system output file for central accounting purposes. It was obvious that users with large processors would require more extensive facilities than those available in a system designed for the minimum configuration. For this reason we developed two separate versions, MINIMOP 1 under which users could run programs of up to 5.75K words, and MINIMOP 2 under which users could run programs of 11K words. Because of the core size limitations, MINIMOP 1 was only capable of providing JEAN and a FORTRAN I1 compiler, however MINIMOP 2, as well as providing JEAN, has integrated ALGOL, FORTRAN IV and PLAN 3 compilers. These compilers are standard ICL compilers interfaced directly to MINIMOP. (The Command Language is given in Appendix 1.)

    Extract: MINIMOP 2 COMMAND LANGUAGE
    MINIMOP 2 COMMAND LANGUAGE               
    ALGLOAD ALGOL     sfn, sfn,     CONS* sfn, CONS*     Compiles and loads the ALGOL program in the subfile. Compiles the ALGOL program stored in the first subfile and writes the semi-compiled program to the second subfile.
    ALTER     m. n     Resets the contents of location m in the users program with value n, m and n have several formats.
    ASSIGN     peripheral name, sfn     Input assignment.
    ASSIGN     peripheral name     Output assignment.
    ASSIGN     peripheral name, CONS     Output assignment.
    CONDENSE          Removes all deleted subfiles from the users file.
    DATE          Prints the date.
    EDIT     sfn, sfn*     Loads the Editor in readiness to edit a subfile.
    ENTER n          Enters the users program at location 20 4- n.
    ERASE     sfn     Marks this subfile deleted in the file.
    FIND     program name     Loads the specified program from the library.
    FORLOAD     sfn, CONS*     As ALGLOAD but for a FORTRAN program.
    FORTRAN     sfn, sfn, CONS*     As ALGOL but for a FORTRAN program.
    INPUT     sfn     Introduces a new subfile.   Subsequent lines of input up to **** are stored in the subfile.
    JEAN          Loads the JEAN program and enters it.
    LISTFILE     sfn, peripheral name*     Output the subfile to the console or system output file.
    LOAD     sfn, CONS*     Consolidates and loads the semi-compiled program in the subfile.
    LOGIN     file name     Opens the users file and prepares to check the password.
    LOGOUT          Disconnects the user from the system closing his file and printing accounting information.
    MACDEF     sfn     As for INPUT but each line of input represents a command.
    NEWPASSWORD     password     Changes the password of the users file.
    OBEY     sfn, X, Y, Z . . .     Implements the commands listed in the subfile.   X, Y, Z, etc., are actual parameters which replace original undefined parameters %A, %B, %C, etc.
    PLAN     sfn, sfn, CONS*     As ALGOL but for a PLAN program.
    PLNLOAD     sfn, CONS*     As ALGLOAD but for a PLAN program.
    PRINT     m, n     Outputs the contents of locations m to m + n — 1.
    RESTORE     sfn     Restores the users saved object program as his current object program.
    SAVE     sfn     Saves the user's current object program in his file.
    SUMMARY          Prints a summary of the users file at the console.
    TIME          Prints the time.
    N.B. * denotes optional parameter, sfn denotes subfile name
          in The Computer Journal 13(3) view details
  • Barron, DW "Approaches to conversation FORTRAN" pp123-127 view details Abstract: This paper defines the term 'conversational programming system' in a pragmatic way by considering the facilities that the user expects to see in such a system. The difficulties of implementation are discussed, in the context of developing an outline design for a conversational FORTRAN system that makes a reasonable compromise between flexibility and efficiency. Extract: Introduction
    Introduction
    Conversational programming systems are enjoying a great
    vogue at present. Commercial time-sharing services are doing
    good business, and following the success of systems such as
    BASIC and of JOSS (alias TELCOMP alias JEAN) 'conversational
    FORTRAN' and 'conversational ALGOL' are being
    offered. However, these terms are not particularly well defined.
    Very often, all that is provided is a simple editing facility for
    source programs and an ability to communicate with the teleprinter
    at run-time, coupled to a more-or-less standard 'batch'
    compiler. (In one system of the author's acquaintance, the user
    of the conversational FORTRAN system is required to type
    his program as formatted card images, without the benefit of
    a TAB mechanism.)
    Another term that is used in this connection is 'incremental
    compiling', again, often without a clear definition. In this paper
    we aim to define the term 'conversational programming system'
    in a pragmatic way by considering the facilities that the user
    might expect to see. We then discuss various ways of achieving
    this for a FORTRAN-like language, including incremental
    compilation, and suggest a system that combines the external
    features that the programmer wants with reasonable internal
    efficiency. (As will be seen, this does not necessarily imply a
    fully interactive compiler.) Extract: City Conversational FORTRAN
    A few years ago a FORTRAN system was developed for student work at The City University: in order to achieve good diagnostics this system employed many of the techniques outlined in this paper, although it was intended for batch use. Unfortunately, no description of this significant piece of work was published at the time.
          in The Computer Journal 14(1) 1971 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 139 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 309 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in Computers & Automation 21(6B), 30 Aug 1972 view details
    Resources
    • Jean error message by an anonymous usenet poster
    • Jean error message by an anonymous usenet poster
      "The classic short message was from JOSS, one of the early interactive languages (from the mid-1960's; it ran on a machine at RAND Corporation called the JOHNNIAC). It was on a small machine. It had one catchall message: EH?"
      We used a language called JEAN on ICL's 1900 series. We knew this was adialect of JOSS but it must have been closer than we knew as it used the same error message. The JEAN error message I liked was "Your expression has defeated me" which was generated by a program such as

      1.1 X=X
      1.2 PRINT X
      I never understood this until I was explaining to someone the meaning of recursion in Algol. To demonstrate that simpler languages could not handle recursion I gave JEAN a recursive definition of a factorial and to my surprise it gave the right answer!

      To understand this you also need to know that in JEAN
      SET X=3 gave the variable X a value.
      LET X=3 defined X as a function and the default verb was LET, not SET.
      Hence "Your formula has defeated me" meant that it had run out of store because of infinite recursion. What a pity Basic defeated the much more elegant JOSS.
      external link