FINSTER(ID:8442/)


for  FORMAC INteractive System for TERminals

according to van Hulzen 1974
"A prototype of FINSTER ran on the
IBM 360/75 of KFA-Juelich in 1970, in a 160 K
partition under OS/MFT and serving four 2260
terminals."


Related languages
PL/I-FORMAC => FINSTER   Conversational system for

References:
  • H. HOMRIGHAUSEN, K. KROPIK, H. MEUER, M. OHST "FINSTER, a FORMAC Interactive System for Terminals" KFA Jülich 1970 view details
  • André M. L. LaPlace, PL/I list processing used as interactive system support, ACM SIGSAM Bulletin 22 (March 1972) pp10-24 view details DOI Extract: FORMAC and PL/I
    I 'EY OF PL/]-FO C
    FORMAC is not a pure language, it may be considered as an extension of a, host
    language (PL/I or FORTRAN). Formac allows, in addition to numeric evaluations,
    formal manipulations of mathematical expressions.
    PL/I-FORI~C contains the whole set of PL/1 instructions {5 ] and specific Formac
    statements [6 ].
    In batch processing a PL/1-FORHAC program unit is submitted to four steps. This
    program unit is given first to a preprocessor which will "translate" the pure
    Formac statements into legal PL/I statements. The PL/I source module thus obtained
    will be passed then to the compiler and the linkage editor, and finally
    executed. During the linkage editor step two libraries are called : standard
    PL/i library and FORMAC run time routires library.
    For example the statement : LET(A = B + C) ;
    given to the preprocessor becomes : CALL DENFMCI('A=B+C');
    The string appearing as argument of DE:IFI4C1 routine will not be altered during
    th~ compilation. During the execution ~f this statement, the Formac system will
    buil~ a tree which shall be the internal representation of the expression :
    A=B+C
    I
    B ~ C
    All Formac run time routines work upo'. trees and generally admit as argun~nts
    alphanumeric strings. Extract: FORDECAL
    DESCRIPTION OF FORDECAL
    We have seen (§ 2) that a Formac statement is first translated into a PL/i statement.
    All the problem is to have a go)d preprocessor in view of extending Formac capabilities. So it would be possible "easily" to write procedures with Formac arguments, to have the notion of block in Formac, .... But one of th~ particularities of Formac lies in the fast that each Formac variable is of "universal" domain of definition. This imple; that it is impossible to have the block
    notion, and the recursion problem will be hard to be solved. It is nevertheless possible to write a more "flexible" rreprocessor allowing recursion and particularly Formac variables with LOCAL attribute.
    An elementary interactive system could consist of a very short PL/I program which while reading a string gives it to the run time routine DENFMC2 (1) and gives back control to the user.
    We have develop considerab]y such a system by putting in near the whole set of OS/FORV~C "statements" with the appearence of corresponding run time routines
    calling sequence.

    We must, in a f i r s t step, provide a set of "commands" whose syntax must be very
    near of the usual mathematical writing. In a second step we have introduced the
    notion of "program unit' by the introduction of blocks and of procedures.
    The syntax of the commands of FORDECAL has been chosen as near as possibl~ to the
    syntax of the "equivalent" PL/I statement. Thus the command : A = B + 5 ;
    is the "equivalence" of the PL/I assignment statement : A = B + 5 ;
    apart the fact the system works only with Formac variables.
    The FORDECAL system consists of an int~rpreter~ written in PL/i; and of a run t i -
    me program library obtained from the PL/I and 0S/360 PL/i-FORI.~C librari~.;. Formac
    run time routines have not been altered in the part concerning formula manipulations,
    llowever some modules have been re-written either to take into account the
    CI.IS environment under which Fordecal is running or to introduce new possibilities.
    The user, once in the Fordecal environment, dialogues with the system by means
    of the provided commands. These are submitted to two phases :
    - one of "reading-interpretation",
    - one of execution.
    It is also possible ~ divide ~he commands into three categories :
    - elementary command,
    - macro-command,
    - declare command and DEBUG facility command.
    The action taken by the system during the two phases may differ according to the
    command category.
    For an elementary command, the execution is immediate. For example : ~A= FAC(iO) ;
    This co,and will ca]cu}ate i0i, affect the result to the variable A and print
    this result according to the standard printing of PL/I-FORMAC. The input phase
    consists of :
    - recovering the input string '~A=FAC(IO)'
    - detecting the character <$> in the f i r s t position of the string,
    - going to the execution sequence corresponding to the print out
    command.
    Th( execution phase of this command consists in giving to the run time routine
    DE~FI4C2 the arQument 'A=FAC(IO)'. This routine provokes the evaluation of 10!
    ev(ntually builds a "repword" for A, attaches the value 10! to this repword
    ant then prints out the result.
  • van Hulzen, J. A. "FORMAC today, or what can happen to an orphan", ACM SIGSAM Bulletin, 8(1), February 1974 pp5-7 view details Extract: Introduction: The simple past
    Introduction: The simple past.
    The first version of FORMAC was written for the IBM 7090/94 as an extension of FORTRAN IV running under the IBM IBSYS-IBJOB monitor.  It was an experimental programming system to assist in the symbolic manipulation of mathematical expressions and provided such capabilities as symbolic differentiation, expansion, substitution, comparison and evaluation of expressions.  The project originated in August 1962 and the system was released in November 1964.  References are given in [27].
    Comments of users initialized the design and implementation of PL/I-FORMAC, a more flexible system based on the same principles.  The first version was released in 1967, the second in September 1969, [27].  The PL/I-FORMAC interpreter, an extension of the OS/360 PL/I(F) compiler, was originally designed to run on an IBM S360 H-level model 40 and above.  It consists of two modules of assembled routines whi6h are added to a system's library:  the preprocessor and the objecttime library. In March 1970 the SHARE SMC project (now LASM project) composed a list of known errors and proposed extensions of the IBM preprocessor, [21].  In April 1970 a new preprocessor became available.  It was developed at KFA-Julich, Germany-West, by R. Schwerdt, [19].  The errors were corrected and most of the proposed extensions were implemented.
    To make the FORMAC-system again available to FORTRAN-users, a new FORTRAN-FORMAC, comparable with PL/I-FORMAC, has been written for and tested with FORTRAN IV(H) under 0S/360 in 1970 at DRZ-Darmstadt, Germany-West, by Knut A. Bahr, [1].
    At 1.1.1971 IBM stopped the FORMAC project. Information about SHARE's FORMAC maintenance and distribution is given in SIGSAM Bulletin No. 26, page 2.  The address of the FORMAC library of SEAS is: ZAM/KFA-Juelich, Postfach 365, D517 Juelich I, Germany-West.
    Extract: SCOPE FORMAC
    Another early system was the Scope FORMAC
    Language, [28]. When the system was operational
    it ran in a 256 K partition of an IBM 360/50 with
    an IBM 2250 graphic display unit as I/0 device.
    The system was last operational in January 1969,
    at which time IBM decided to support it no
    longer, [29]. Extract: FINSTER
    A prototype of FINSTER ran on the
    IBM 360/75 of KFA-Juelich in 1970, in a 160 K
    partition under OS/MFT and serving four 2260
    terminals. Extract: FORDECAL
    FORDECAL is running in a number of institutions
    on an IBM 360/67 under CP67-CMS and serving 2741
    terminals. The system may be used on an IBM 370
    under VM, although the testing of this FORDECAL
    version is not yet finished, [15]. A TSO-version
    will be announced in the near future, [15].
    FORDECAL is an interactive system similar to a
    desk calculator. The statements are executed as
    soon as they have been typed on the key-board of
    the terminal. Although this system does not
    allow to execute a program with the whole range
    the PL/I-FORMAC language itself offers, some
    statements may be executed repeatedly with either
    a DO or BEGIN command (compound DO-loops, DOgroups
    and blocks respectively). The system allows
    to c~ll user typed (function) procedures, which
    can be recursive. The FORDECAL statements
    resemble the PL/I-FORMAC statements, but are
    written in a syntax as nearly similar as the
    usual mathematical syntax. FORDECAL uses only
    the FORMAC-components of PL/I-FORMAC and can be
    used without any knowledge of PL/I and with only
    a vague impression of FORMAC. [ii] and [12] survey
    the system, [13] contains a description of some
    of the practised implementation techniques and
    [14], written in French, offers an accurate and
    detailed description of FORDECAL and its
    implementation, Extract: TUTOR
    TUTOR, [16], was originally implemented on an IBM
    360/65 at Calspan Corporation, Buffalo, N.Y.,
    under OS/MFT using the FORTRAN GSP package for
    the graphics facility (an IBM 2250 as I/O device)
    and an interface program to make it compatable
    with PL/I. When MVT and the PL/I GSP package
    became available the program was modified for
    these facilities. A normal run at Calspan
    allowed 250 K. Due to changes in Calspan's
    computer configuration TUTOR's future is
    uncertain, [17].
    TUTOR is a simple conversational system without
    advanced control commands as provided in FORDECAL.
    An essential difference between TUTOR and the
    other interactive systems is its capability of
    accepting two-sides equations, that is mathematical
    expressions on either or both sides of the
    equal sign. Special commands to manipulate
    equations are implemented. Extract: SYMBAS
    An experimental version of SYMBAS, a FORMAC
    orientated version of BASIC, is running under TSS
    since summer 1972 at KFA-J~lich serving 2741
    terminals. A TSO-version of SYMBAS, running
    under VS2, is in consideration, [9]. To have a
    system available which is well suited for symbolic
    as well as numerical applications the
    interactive, line-orientated BASIC system was
    chosen and its semantics were extended in the
    case of symbolic applications. This technique
    enabled the implementation of an interpreter
    which evaluates expressions numerically when ~
    ever possible. In this extension BASIC
    variables do not need to have assigned numerical
    values; they may be interpreted as atoms or
    symbolic expressions may be assigned to them. So
    assigning numerical values to all variables of a
    SYMBAS program does the program run as if it
    would have been a proper BASIC program.
    The matrix statements of BASIC are also included
    and are extended to facilitate fraction free
    elimination algorithms for symbolic matrices.
    The run-time routines of FORMAC are used to do
    symbolic computations.
    A special editor is available to create and
    change programs. A debugging system enables the
    user to stop his program at any point, to display
    and to reassign variables, and to change statements
    and program flow.