ECL-1(ID:3049/ecl002)

Environment Control Language 


Environment Control Language-1

Algol (?) extension for controlling psychological experimental


Related languages
ECL-1 => ACT   Reaction Mild Influence

References:
  • Sutherland, N. S., and Francis, J. "ECL — a language for on-line control", Paper read at International Congress of Psychology, London 1969. view details
  • Millenson, J. R. "Language and list structure of a compiler for experimental control" view details Abstract: The data structure of a table drive, on-line experimental control language is described. Multi-linked record blocks are used to represent the set of possible experiments states and to store relevant information about significant internal and external events that may initiate transitions between states. Code compile by an algebraic compiler coexists with the state network and performs foreground or background numerical calculations on the network's variables. The data structure has affinities with certain symbolic manipulating languages, notably CORAL. Extract: Introduction
    ACT (Automated Contingency Translator) is a problem-oriented programming language for time-shared sequential control of on-line experiments in physical and biological sciences (Millenson 1967, 1968 and 1969). ACT has been implemented for the PDP8 family and PDP9, and a compiler is currently projected for the Elliott 903.

    ACT was designed to aid the non-professional programmer in generating computer control of the sequential logic of ongoing experimental conditions. In contrast to familiar systems that supervise experiments in which the principal complexities lie in the nature of the numerical computations, ACT is problem-oriented for applications where the experimental complexity lies in the nature of the logical network of possible conditions that the experiment must anticipate. The latter complexities are particularly exemplified by the contingencies of behavioural sciences where the logical network that specifies all possible conditions and outcomes of an experiment may be exceedingly complicated, yet the individual input/output functions are often trivially simple.

    The motivation of ACT and the corresponding terminology are drawn from applications in experimental psychology, where such logical contingency networks often explicitly constitute the chief independent variables of experiments (Snapper, Knapp and Kushner, 1970). Nevertheless, ACT represents a perfectly general system for expediting time-shared sequential control of a wide spectrum of processes, ranging from management and military contingency maps to traffic control.

    Previous descriptions of the language have concerned themselves with nomenclature and rules for generating control statements. The present report supplements these publications by describing the principal  ACT storage structures.
    Extract: Principles
    ACT is based on the principle that the logical network describing the possible paths that an experiment may take is conveniently represented by a finite state automaton. It has been shown elsewhere that the procedures of experimental psychology are particularly amenable to such a description. An ACT program thus consists of an explicit set of user defined states and transitions. In psychological applications these represent, respectively, the stimuli output to an experimental subject, and the subject initiated inputs that result in changes of experimental states. Additionally, the passage of specified times (as read from an internal clock) and computed events can also act as transitions to change experimental states.

    To actually generate the procedure of an experiment, the user is encouraged to first draw a state diagram corresponding to the network of contingencies that constitute the desired experiment. By a set of simple translation rules, the user next prepares a corresponding English text which he then compiles and executes. Any computations that must be carried out on incoming data or parameters are written in a mini-ALGOL mode which coexists with the control program. Both the control program and these computations are carried out as high priority foreground by an interrupt sensing monitor. Printing, punching, displaying, and auxiliary storage of collected input data are performed as time permits in background. The entire system time-shares in a round-robin the control of a group of independent experiments with service lags largely determined by the setting of the internal synchronising clock (25 msec is a typical value for experiments in psychology). The system presupposes interface hardware for translating the user's named states into environmental control signals, and for sensing analogue or digital subject initiated input signals (Millenson et al.9 1969).

    ACT regards an experiment as a succession of internal states, each one generating an external state (a stimulus) and holding within its data structure information about possible transitions to other states within the network. The fragment of an experimental automata network of Fig. 1 shows two states with several transitions to and from each other, and to states (not shown) outside the fragment. Unlike more familiar state diagrams, no explicit outputs are shown, as these are more conveniently implicitly incorporated into the definition of the states themselves.
    A fully translated program for controlling a given experiment, performing any necessary parameter computation, and retrieving desired data will consist of (i) a set of experimental states, (ii) a set of transitions, and (iii) generally several fixed blocks of compiled code. The storage structures by which ACT represents the states and transitions resemble some of the multi-linked list structures used to represent strings of text and their interrelationships (D'Imperio, 1969). In particular, ACT structures are close relatives of the ring-associative language CORAL (Raphael et al, 1968) and the Reaction Handler (Newman, 1967), languages employed for online modelling of graphic display data. ACT's function, of course, is principally to move from one part of a complex logical network to another, depending on its ability to match a current input signal or current time value with a stored list of significant inputs and times. As such it is far less concerned with manipulating interrelationships between its data elements than are the symbol manipulation languages with whom it shares structural similarities. Moreover, an ACT structure does not grow, shrink, or proliferate during execution, except by explicit direction from an interactive user.

    Nevertheless, like the Reaction Handler, it is a hybrid language: a translator for a state automaton is amalgamated with an algebraic compiler. But, whereas other control languages designed for similar applications have followed the philosophy of supplementing a standardised algebraic compiler with ad hoc control facilities, ACT is first and foremost a synchronous driven state automaton to which limited algebraic computation facilities for shared parameters are grafted. It is by this strategy that the sentences of ACT attempt to mirror in a natural way the problems they are designed to solve.
          in The Computer Journal 13(4) 1970 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 81 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

    [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
          in The Computer Journal 13(4) 1970 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 202 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 The Computer Journal 13(4) 1970 view details