DASK Algol(ID:3549/das003)

Danish ALGOL 


An Algol 60 implementation for the Danish DASK (Dansk Algoritmisk Sekvens Kalkulator) built at the Regnecentralen



Hardware:
Related languages
RegneCentralen ALGOL => DASK Algol   One of series

References:
  • Jensen, J and Naur, P "An Implementation of Algol 60 Procedures" BIT 6(11) 1961 pp38-47 view details
  • Jensen, J, Honorup, P and Naur, P "An Allocation Scheme for Algol 60 Procedures" BIT 6(12) 1961 pp89-102 view details
  • Jensen, Jorn; Jensen, Toke; Mondrup, Peter; and Naur, Peter "A manual of the DASK ALGOL language a supplement to the ALGOL 60 report" Regnecentralen, Copenhagen 1961 view details
  • Tampa, Yasuo review of Jensen and Naur (BIT) 1961 (DASK Algol) view details Abstract: The paper describes the manner in which ALGOL 60 procedures are implemented in the ALGOL translator system developed for the machine DASK of Regnecentralen, Copenhagen. The independence of call and declaration is first discussed through an analysis of an example shown below:
    begin
    procedure A(w); value w; integer w; begin---end A; procedure B(z); real z, begin - -- end B.
    procedure C(u); procedure u; begin real a; --- u(a)-end C;
    C(A); C(B)
    end
    The example shows that this procedure call at different times within the same program may represent calls of different procedures (A & B in the example). This shows that when the call u(a) is translated no knowledge of any declaration for u may be assumed. Consequently, a general scheme for implementing ALGOL 60 procedures must translate the procedure call in a uniform manner, no account being taken of the procedure declaration. Only at run times can the necessary link between the call and the declaration be established. The authors further state that the proper way to implement the procedure call is to represent each parameter as a subroutine which may be called from any place and as often as desired. In case of a general expression, this subroutine must calculate the value of the expression and place it in a universal location each time it is called.

    There are several possibilities as to establishment of the link between the information in the call and the procedure body. The particular scheme which has been very convenient in DASK is described. A set of working locations, a pair for each formal parameter, called the "formal locations", is reserved for the machine instructions representing the procedure declaration. In case of a parameter called by value, the formal location will contain its value and references to it will take the form of ordinary clear-add -to-accumulator and store -from - ac cumulator instructions, that is, a direct reference.

    In the case of parameters called by name, indirect references will be made by using the so-called execute instructions (jump) which will take the form of formal 1 or formal 2 (formal 1: Call actual parameter subroutine; formal 2: Call fixed assign to subscripted variable subroutine).

    The authors classify the possible actual parameters in the following classes: (1) simple variables, numbers, labels, and formal parameters called by value; (2) array identifiers; (3) switch identifiers; (4) procedure identifiers; (5) formal parameters called by name; (6) subscripted variables; and (7) all other expressions, i.e. not class 1 or 6.

    The instructions representing actual parameters in general serve two functions: (1) During the action of the administrative subroutine for procedure entry they supply information on the nature of the actual parameters; and (2) during the work of the instructions representing the procedure body they act as subroutines. Using the operation part of the instruction as a code characterizing the class and type of the parameter, it is possible to represent any actual parameter of the first five classes by a single one-address instruction. The instructions for classes 6 and 7, on the other hand, must take the form of subroutines. The present scheme introduced in this paper does not deal with the complete ALGOL 60 procedure concept. The authors state, however, that removal of the remaining restrictions might be achieved with the additional complication of addressing the references to variables and administrative parameters.


          in ACM Computing Reviews 2(06) November-December view details
  • Esner, E. review of Jensen et al (ACM) 1961 (DASK Algol) view details Abstract: The effective use of a hierarchical storage is a problem pertinent to all computer setups. A method of using an Amo~type language to deal with this problem in conjunction with the DASK computer is documented here. The scheme is the use of comments to distinguish various possible hardware configurations but most of the details are likely to be of interest only to those actually engaged in solving a problem for a similar hardware configuration.


          in ACM Computing Reviews 3(05) September-October 1962 view details
  • Early Computing in Denmark by Lars Poulsen view details External link: WEb-page
          in ACM Computing Reviews 3(05) September-October 1962 view details