MADCAP(ID:148/mad006)Two dimensional maths and set languageMath and set problems, for the Maniac II and CDC 6600. Places
People: Structures: Related languages
References: in [ACM] CACM 4(01) (Jan 1961) view details Introduction This paper describes the internal structure of a translator for the MAD language. The language is very similar to that of ALGOL 60, although it is more restricted in some respects and more general in other's. We shall assume a familiarity with the MAD language, although many of the remarks made below will be clear even to those with only a slight knowledge of the language. Throughout any discussion of the organization of a translator, it is important to understand the primary objectives that have been set for its behavior. This translator was designed to have the following properties (in the order given): (1) high speed of translation, (2) generality (i.e., as few restrictions on the user as possible), and (3) object program efficiency. Many decisions were made by means of these criteria which might have been made differently if there were other objectives. The design was also influenced to some extent, although not very much, by the organization of the computer (IBM 704) on which the translator was to operate. in [ACM] CACM 4(01) (Jan 1961) view details in ACM Computing Reviews 5(03) May-June 1964 view details An important step in artificial language development centered around the idea that i t is desirable to be able to exchange computer programs between different computer labs or at least between programmers on a universal level. In 1958, after much work, a committee representing an active European computer organization, GAMM, and a United States computer organization, ACNI, published a report (updated two years later) on an algebraic language called ALGOL. The language was designed to be a vehicle for expressing the processes of scientific and engineering calculations of numerical analysis. Equal stress was placed on man-to-man and man-to-machine communication. It attempts to specify a language which included those features of algebraic languages on which it was reasonable to expect a wide range of agreement, and to obtain a language that is technically sound. In this respect, ALGOL Set an important precedent in language definition by presenting a rigorous definition of its syntax. ALGOL compilers have also been written for many different computers. It is very popular among university and mathematically oriented computer people especially in Western Europe. For some time in the United States, it will remain second to FORTRAN, with FORTRAN becoming more and more like ALGOL. The largest user of data-processing equipment is the United States Government. Prodded in Part by a recognition of the tremendous programming investment and in part by the suggestion that a common language would result only if an active Sponsor supported it, the Defense Department brought together representatives of the major manufacturers and Users of data-processing equipment to discuss the problems associated with the lack of standard programming languages in the data processing area. This was the start of the conference on Data Systems Languages that went on to produce COBOL, the common business- oriented language. COBOL is a subset of normal English suitable for expressing the solution to business data processing problems. The language is now implemented in various forms on every commercial computer. In addition to popular languages like FORTRAN and ALGOL, we have some languages used perhaps by only one computing group such as FLOCO, IVY, MADCAP and COLASL; languages intended for student problems, a sophisticated one like MAD, others like BALGOL, CORC, PUFFT and various versions of university implemented ALGOL compilers; business languages in addition to COBOL like FACT, COMTRAN and UNICODE; assembly (machine) languages for every computer such as FAP, TAC, USE, COMPASS; languages to simplify problem solving in "artificial intelligence," such as the so-called list processing languages IPL V, LISP 1.5, SLIP and a more recent one NU SPEAK; string manipulation languages to simplify the manipulation of symbols rather than numeric data like COMIT, SHADOW and SNOBOL; languages for command and control problems like JOVIAL and NELIAC; languages to simplify doing symbolic algebra by computer such as ALPAK and FORMAC; a proposed new programming language tentatively titled NPL; and many, many, more. A veritable tower of BABEL! in ACM Computing Reviews 5(03) May-June 1964 view details in [ACM] CACM 9(08) August 1966 view details in Computers & Automation 16(6) June 1967 view details in Computers & Automation 16(6) June 1967 view details INTRODUCTION The Maniac computer, developed at Los Alamos and used primarily for computer science research, has been maintained in an atmosphere of close manmachine interaction [Lazarus et al, 1968]. Early communication methods were limited by slow interactive input~output equipment. Facilities included switches on the console, typewriters for insertion of absolute machine instructions or data values directly into the computer registers, and special Flexowriters with subscript and superscript capabilities which were used to type input values when requested by the computer and for immediate on-line editing of programs or data. These Flexowriters were also used by the system for job requests and to type out compiling or editing diagnostics. Printed output for the two-dimensional programming language Madcap was displayed on a fast printer that had half-line spacing and an extended character set. Currently, the computing industry is exploring the belief that on-line creation and modification of programs by a scientist can be a productive process. Our goal in designing the terminal control language for Madcap's current interactive system has been to allow the user to enter his programs into the system, obtain evaluations, do required editing tasks, and interact with executing codes in a convenient and uncomplicated manner, using language consistent with that in which he writes his programs. in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details in [ACM] CACM 15(06) (June 1972) view details Extract: MADCAP The Madcap language developed at Los Alamos was an early two-dimensional programming language making use of hardware to avoid human two-dimensional to one-dimensional translation. The earliest version Madcap 3 [Wells, 1961], had only subscripting and exponentiation capabilities, but additional two-dimensional constructions have been incorporated as the language has grown and developed [Sammet, 1969]. The latest version is Madcap 6. All versions of Madcap have been keyboard languages, and until recently, typewriter based; Madcap 6 is a scope based language. The Madcap languages have allowed representation only of textual twodimensional information, although one form of tabular data, linear algebraic matrices, will most likely be allowed in the very near future. All three subclasses of textual display, expression formation, symbol formation, and page formatting have appeared in the Madcap languages. Expression formation has included subscripting, initially restricted and now arbitrary exponentiation, displayed division, sun, nation and integral scripting, binomial coefficient display and Knuth's display notation for Stirling numbers of the second kind, and, recently, underlining. Underlining is used in Madcap 6, in lieu of declarations, to indicate the point of an identifier's definition. Symbol formation in earlier versions included construction of capital ~ [two less than symbols one half line apart), capital N (two vertical bars overscored three half lines above the underscores), and various other symbols--V, ~, e, ~, <, ~, etc. The use of a large basic character set in Madcap 6 [Devaney and Hudgins, 1972] and the ability to plot characters in more than one size on the scope face obviates many of these constructions, but symbol formation does still exist. The two most prominent examples in the current version are the use of overprinted letters for identifier formation (e.g. a, p, R) and the construction of large absolute value, floor, and ceiling notations. (A recent two-dimensional language, Ha] [Miller, 1972], uses such overprinting in its output to indicate the data type of the identifiers.) Page formatting in Madcap is rather unique. Early versions used indentation to display loop and conditional bodies as well as arguments (arbitrary expressions) of input~output commands [Wells, 1963]. This use of indentation proved to be extremely natural and made Madcap source programs exceptionally readable. (Note that many published A]9o] programs are written in a similar manner although of course it is a begin-end pair which delimits the block.) in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details in Proceedings of the SIGPLAN symposium on Two-dimensional man-machine communication 1972 , Los Alamos, New Mexico, United States view details in ACM Computing Reviews 15(04) April 1974 view details Extract: SETL and MADCAP We will discuss the languages SETL (Schwartz, 1973) and MADCAP (Morris and Wells, 1972) as representative of a class of set oriented langauges. [...] SETL is a very high level mathematically oriented language.Its important composite data structures are finite unordered sets, tuples, and functions. The set operations in both languages are very similar except that SETL allows heterogeneous sets. Functions in both SETL and MADCAP are not only available in the conventional sense but can also be represented by sets of tuples, i.e., relations. Both languages have a "set former" capability which is to say that they provide associative referencing on the elements of sets. SETL has a "compound operator" which works very much like the APL reduction operator, and both languages have other constructions which can be used to obviate loops in most cases. MADCAP has a backtracking facility (not currently provided in SETL) as well as a control structure called an iterative expression. As an example of the power of SETL, consider the following expression which specifies the prime numbers between 2 and lO0: {P,2 <= P <= lO0 + (v 2 <: N < P ÷ (P//N)NE. 0)} which can be read in English as "the set of P's between 2 and 1O0 such that for every N greater than or equal to 2 and less than P the remainder of P/N is not equal to zero". The above specification is obviously not an efficient one; a practical program at the very least would just consider the odd numbers from 3 to lO0. in Proceedings of the ACM SIGPLAN symposium on Very high level languages, March 28-29, 1974, Santa Monica, California, United States view details External link: Online copy in SIGPLAN Notices 11(09) September 1976 view details A different group at Los Alamos developed the MADCAP language under the leadership of Mark Wells to run on the MANIAC. [...] The input/ output device was a modified Friden Flexowriter that used paper tape and allowed subscripts and superscripts in their proper locations. in Annals of the History of Computing, Spring 1987 view details |