A description of the APT language
November 1963 - Vol. 6 No. 11
Features
The APT (Automatically Programmed Tools) language for numerical control programming is described using the metalinguistic notation introduced in the ALGOL 60 report. Examples of APT usage are included. Presented also are an historical summary of the development of APT and a statement concerning its present status.
USA participation in an international standard glossary on information processing
A considerable number of glossaries in the area of information processing have been produced in the USA in the last ten years [1, 2]. In some cases the glossaries were reworked versions of earlier glossaries, while in other cases major new contributions were made. All told, the glossary effort has cost thousands of man-hours of work.
Several years ago the ASA X3 sectional committee sponsored by BEMA was established to prepare standards for the USA in the information processing field. (See Appendix 1 for the meaning of abbreviations and acronyms. See also [3].) ASA X3.5 was assigned the double scope of advising the other X3.n subcommittees on the establishment of definitions required for their proposed standards and of establishing a standard glossary, pASGIP, for general use.
At the same time there was important British standardization activity. After reworking a number of earlier drafts, the BSI released the “Glossary of Terms Used in Automatic Data Processing,” British Standard 3527: 1962. The British effort differed in at least one very important respect from the USA glossaries. It was organized along subject rather than alphabetical lines. This was to have important consequences, as we shall see.
Report of a visit to discuss common programming languages in Czechoslavakia and Poland, 1963
Early in June 1963 there was a meeting in Berlin [1] of the Subcommittee for Programming Languages, SC5 of TC97, the Technical Committee for Standardization of Computers and Information Processing [2]. Taking advantage of the proximity of Poland and Czechoslovakia, who are interested in the subject but have not actively participated in SC5, a small group representing the Secretariat of SC5 visited those countries. The major purpose of the visit was to discuss such topics as the state of the art of programming languages in each country—both development and use, any national standardization activity, participation in international standardization, and the present state and future prospects of international standardization. A formal report was made to SC5 in Berlin after the visit. The present report is not an official report of the visit. It is a private report of the group, intended for public dissemination. It includes some material not directly relevant to the official purpose of the visit and omits some of the material pertinent only to the official ISO activity, or parts of the discussions which it would be premature or discourteous to publish at this time.
A serial technique to determine minimum paths
The need to determine minimum paths through a maze very often arises in such fields as traffic, transportation, communication and network studies. Computer analysis of these maze problems has been hampered in many cases due to the excessive size of the network under consideration. A technique has been developed to handle networks of very large magnitude by serially processing the network repetitively until only minimum paths remain.
Recursive programming in Fortran II
An oft-mentioned advantage of ALGOL over FORTRAN is the recursion capability of the former. FORTRAN adherents often belittle this advantage by claiming that all recursive relations can be reduced to recurrence or iterative relations, or that no recursive relations exist which are worth coding as recursive relations. The question of the truth of this must be left unanswered here. It is hoped that the technique described below will draw the poison from the FORTRANers' wounds by allowing them to recurse to their complete satisfaction. There is an hereditary resemblance between this technique and the MAD (Michigan Algorithm Decoder) recursion technique.
Flexible abbreviation of words in a computer language
An increasing number of computer programs are designed to accept and translate a symbolic, English-like language which facilitates communication between the user and the computer. A common feature of such programs is a pre-determined vocabulary of expressions for specifying the input to the program. This note describes a generalized technique for permitting flexible abbreviation of such expressions in order to further simplify the task of writing source programs.
An error-correcting parse algorithm
During the past few years, research into so-called “Syntax Directed Compiler” and “Compiler Compiler” techniques [1, 2, 3, 4, 5, 6] has given hope that constructing computer programs for translating formal languages may not be as formidable a task as it once was. However, the glow of the researchers' glee has obscured to a certain extent some very perplexing problems in constructing practical translators for common programming languages. The automatic parsing algorithms indeed simplify compiler construction but contribute little to the production of “optimized” machine code, for example. An equally perplexing problem for many of these parsing algorithms has been what to do about syntactically incorrect object strings. It is common knowledge that most of the ALGOL or FORTRAN “programs” which a compiler sees are syntactically incorrect. All of the parsing algorithms detect the existence of such errors. Many have considerable difficulty pinpointing the location of the error, printing out diagnostic information, and recovering enough to move on to other correct parts of the object string. It is the author's opinion that those algorithms which do the best job of error recovery are those which are restricted to simpler forms of formal languages.
MADCAP is a programming language admitting subscripts, superscripts and certain forms of displayed formulas. The basic implementation of this language was described in a previous paper [MADCAP: A scientific compiler for a displayed formula textbook language, Comm. ACM 4 (Jan. 61), 31-36]. This paper discusses recent improvements in the language in three areas: complex display, logical control, and subprogramming. In the area of complex display, the most prominent improvements are a notation for integration and for the binomial coefficients. In the area of logical control the chief new feature is a notation for variably nested looping. The discussion of subprogramming is focused on MADCAP's notation for and use of “procedures.”
Optimizing bit-time computer simulation
A major component of a bit-time computer simulation program is the Boolean compiler. The compiler accepts the Boolean functions representing the simulated computer's digital circuits, and generates corresponding sets of machine instructions which are subsequently executed on the “host” computer. Techniques are discussed for increasing the sophistication of the Boolean compiler so as to optimize bit-time computer simulation. The techniques are applicable to any general-purpose computer.
Length of strings for a merge sort
Detailed statistics are given on the length of maximal sorted strings which result from the first (internal sort) phase of a merge sort onto tapes. It is shown that the strings produced by an alternating method (i.e. one which produces ascending and descending strings alternately) tend to be only three-fourths as long as those in a method which produces only ascending strings, contrary to statements which have appeared previously in the literature. A slight modification of the read-backward polyphase merge algorithm is therefore suggested.
Coding clinical laboratory data for automatic storage and retrieval
A series of clinical laboratory codes have been developed to accept and store urinalysis, blood chemistry, and hematology test results for automatic data processing. The codes, although constructed as part of a computerized hospital simulation, have been able to handle the results of every laboratory test that they have encountered. The unique feature of these codes is that they can accept conventionally recorded qualitative as well as quantitative test results. Consequently, clinical test results need not be arbitrarily stratified, standardized, or altered in any way to be coded. This paper describes how the codes were developed and presents a listing of the urinalysis codes. Five criteria used in developing the codes are outlined and the problem of multiple-synonymous terminology is discussed. A solution to the problem is described. Flexible, computer-produced, composite laboratory reports are also discussed, along with reproduction of such a report. The paper concludes that even though many problems remain unsolved, the next ten years could witness the emergence of a practical automated information system in the laboratory.
Application of IBM 1620 EDP methods to the calculation of the formulation constants of complex ions
In the course of our work on the physical chemistry of histamine and related compounds, we have done extensive work involving potentiometric titration of systems of chelates of these ligands with various metallic ions, negative ions, and small molecules. The resulting data is used to calculate the stability constants in solution (1, 2, 3, 4). The mathematical calculations for a single titration require two to four hours when done on a desk calculator, even when the operator is experienced. This is a serious disadvantage of the technique. The more accurate methods of successive approximations and of simultaneous equations [2] are so time consuming that their routine use is impractical without the aid of a high speed computer.