COMTRAN(ID:387/com052)Commercial Translatorfor COMmercial TRANslator, later in fact released as Commercial Translator Bob Bemer, Roy Goldfinger et al IBM 1959 IBM Business programming language : dsigned with two goals in mind: 1) to be as machine-independant and portable as FORTRAN 2) to express non-mathematical problems to computers easily (ie English) Influence on COBOL - sources for: group items (01 and 02) PICTURE symbols fancy IF statements COMPUTE formulas Places People: Hardware:
Related languages
References: An important decision of the committee was to agree (Asch, 1959) "that the following language systems and programming aids would be reviewed by the committee: AIMACO, Comtran [sic], Flowmatic [sic], Autocoder III, SURGE, Fortran, RCA 501 Assembler, Report Generator (GE Hanford) , APG-I (Dupont)" employ new methods in many areas of research. Performance of 1 million multiplications on a desk calculator is estimated to require about five vears and to cost $25,000. On an early scientific computer, a million multiplications required eight minutes and cost (exclusive of programing and input preparation) about $10. With the recent LARC computer, 1 million multiplications require eight seconds and cost about 50 cents (Householder, 1956). Obviously it is imperative that researchers examine their methods in light of the abilities of the computer. It should be noted that much of the information published on computers and their use has not appeared in educational or psychological literature but rather in publications specifically concerned with computers. mathematics, engineering, and business. The following selective survey is intended to guide the beginner into this broad and sometimes confusing area. It is not an exhaustive survey. It is presumed that the reader has access to the excellent Wrigley (29571 article; so the major purpose of this review is to note additions since 1957. The following topics are discussed: equipment availabilitv, knowledge needed to use computers, general references, programing the computer, numerical analysis, statistical techniques, operations research, and mechanization of thought processes. Extract: Compiler Systems Compiler Systems A compiler is a translating program written for a particular computer which accepts a form of mathematical or logical statement as input and produces as output a machine-language program to obtain the results. Since the translation must be made only once, the time required to repeatedly run a program is less for a compiler than for an interpretive system. And since the full power of the computer can be devoted to the translating process, the compiler can use a language that closely resembles mathematics or English, whereas the interpretive languages must resemble computer instructions. The first compiling program required about 20 man-years to create, but use of compilers is so widely accepted today that major computer manufacturers feel obligated to supply such a system with their new computers on installation. Compilers, like the interpretive systems, reflect the needs of various types of users. For example, the IBM computers use "FORTRAN" for scientific programing and "9 PAC" and "ComTran" for commercial data processing; the Sperry Rand computers use "Math-Matic" for scientific programing and "Flow-Matic" for commercial data processing; Burroughs provides "FORTOCOM" for scientific programming and "BLESSED 220" for commercial data processing. There is some interest in the use of "COBOL" as a translation system common to all computers. The properties of data It is, of course. the available properties of the data which to a large extent determine the power of an automatic programming system, and distinguish commercial from mathematical languages. Consider the function of moving data within the internal store. In a mathematical language the problem is trivial because the unit which may be moved is very restricted, often to the contents of a single machine word. But in a commercial language this limitation is not acceptable. There, data units will occur in a variety of shapes and sizes. for example: i) Fixed Length Units (i.e. those which on each occurrence will always be of the same length) may vary widely in size and will tend not to fit comfortably into a given number of words or other physical unit of the machine. Generally the move will be performed by a simple loop. but there are some awkward points such as what to fill in the destination if the source is the smaller in size; ii) Static Variable Length Units (i.e. those whose length may vary when they are individually created but will not change subsequently) are more difficult to handle. Essentially the loop will have two controlling variables whose value will be determined at the moment of execution. There are again awkward points such as the detection of overflow in the destination (and deciding what to do when it occurs, since this will only be discovered at run time); iii) Dynamically Variable Length Units (i.e. those which expand and contract to fit the data placed in them) are even more difficult. They have all the problems of (ii), together with the need to find and allot space when they expand. It is clear, therefore, that a simple MOVE is less innocuous than it might seem at first. Actually the above remarks assumed that it was not possible to move data between different classes of units. The absence of this restriction, and the performance of editing functions during the process, can make the whole thing very complicated for the compiler indeed. The properties of data will have a similar influence on most of the other operators or verbs in the language. This has particular significance when the desired attribute is contrary to that pertaining on the actual machine. Thus arithmetic on decimal numbers having a fractional part is thoroughly unpleasant on fixed-word binary machines. Nevertheless, despite these difficulties considerable progress has been made toward giving the user the kind of data properties he requires. Unfortunately this progress has not been matched by an improvement in machine design so that few, if any, of the languages have achieved all of the following. (a) The arbitrary grouping of different classes of unit, allowing their occurrence to be optional or for the repetition in variable-length lists. (b) The input and output of arbitrary types of records, or other conglomerations of data units. having flexible formats. editing conventions and representations (c) The manipulation of individual characters, with the number and position of the characters being determined at run time. (d) The dynamic renaming or grouping of data units. Yet users do need these facilities. It is not always acknowledged that getting the main files on to the computer, before any processing is done, may constitute the largest single operation in many applications. Furthermore. these files will have a separate independent existence apart from the several programs which refer to them. Progress has also been made in declaring the data properties in such a way as to imply a number of necessary procedures to the compiler. For example, if one declares both the layout of some record to be printed, and the printed record, the compiler may deduce the necessary conversion and editing processes. It is here, in the area of input and output, that some languages have approached the aim of being problem-orientated. Extract: COMMERCIAL TRANSLATOR COMMERCIAL TRANSLATOR This is a language of I.B.M.; it is currently working on the 705 and 7070 systems and is committed for the 7090. It is a simple but elegant language supported by an excellent manual. It contains both adequate means for defining new functions and other facilities not yet available in COBOL, but rather surprisingly it does not allow variable-length fields. COMMERCIAL TRANSLATOR does not have anything approaching the facilities of FACT for input and output. Presumably they are available on the systems tape or otherwise as software packages, but it is in consequence impossible to make a proper comparison between the two languages. Actually they are both very good in different ways, and if COBOL-63 combines the best of both it will indeed be a step forward. in The Computer Journal 5(2) July 1962 view details in Goodman, Richard (ed) "Annual Review in Automatic Programming" (3) 1963 Pergamon Press, Oxford view details The paper contains some detailed description of the problems involved in data handling in commercial translators with emphasis on the need for more flexibility than presently available. The author, as have many before him, again questions the value of attempting to create languages "any fool can use" at the cost of efficiency and flexibility, when even these languages will not prevent the fool from having to debug his programs. On existing commercial translators, the author lists and compares briefly COBOL, FACT, COMTRAN and several English efforts which "are either not working, or not on a par with their American equivalents." The paper concludes with some not so new but nevertheless appropriate recommendations to computer manufacturers and standards committees, and the expectation of the universal acceptance of COBOL as He commercial language. in ACM Computing Reviews 4(01) January-February, 1963 view details in [AFIPS JCC 25] Proceedings of the 1964 Spring Joint Computer Conference SJCC 1964 view details in ACM Computing Reviews 5(06) November-December 1964 view details in ACM Computing Reviews 5(06) November-December 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(06) November-December 1964 view details The family tree of programming languages, like those of humans, is quite different from the tree with leaves from which the name derives. That is, branches grow together as well as divide, and can even join with branches from other trees. Similarly, the really vital requirements for mating are few. PL/I is an offspring of a type long awaited; that is, a deliberate result of the marriage between scientific and commercial languages. The schism between these two facets of computing has been a persistent one. It has prevailed longer in software than in hardware, although even here the joining was difficult. For example, the CPC (card-programmed calculator) was provided either with a general purpose floating point arithmetic board or with a board wired specifically to do a (usually) commercial operation. The decimal 650 was partitioned to be either a scientific or commercial installation; very few were mixed. A machine at Lockheed Missiles and Space Company, number 3, was the first to be obtained for scientific work. Again, the methods of use for scientific work were then completely different from those for commercial work, as the proliferation of interpretive languages showed. Some IBM personnel attempted to heal this breach in 1957. Dr. Charles DeCarlo set up opposing benchmark teams to champion the 704 and 705, possibly to find out whether a binary or decimal machine was more suited to mixed scientific and commercial work. The winner led to the 709, which was then touted for both fields in the advertisements, although the scales might have tipped the other way if personnel assigned to the data processing side had not exposed the file structure tricks which gave the 705 the first edge. Similarly fitted, the 704 pulled ahead. It could be useful to delineate the gross structure of this family tree for programming languages, limited to those for compilers (as opposed to interpreters, for example). On the scientific side, the major chronology for operational dates goes like this: 1951, 52 Rutishauser language for the Zuse Z4 computer 1952 A0 compiler for Univac I (not fully formula) 1953 A2 compiler to replace A0 1954 Release of Laning and Zierler algebraic compiler for Whirlwind 1957 Fortran I (704) 1957 Fortransit (650) 1957 AT3 compiler for Univac II (later called Math-Matic) 1958 Fortran II (704) 1959 Fortran II (709) A fuller chronology is given in the Communications of the ACM, 1963 May, 94-99. IBM personnel worked in two directions: one to deriving Fortran II, with its ability to call previously compiled subroutines, the other to Xtran in order to generalize the structure and remove restrictions. This and other work led to Algol 58 and Algol 60. Algol X will probably metamorphose into Algol 68 in the early part of that year, and Algol Y stands in the wings. Meanwhile Fortran II turned into Fortran IV in 1962, with some regularizing of features and additions, such as Boolean arithmetic. The corresponding chronology for the commercial side is: 1956 B-0, counterpart of A-0 and A-2, growing into 1958 Flowmatic 1960 AIMACO, Air Material Command version of Flowmatic 1960 Commercial Translator 1961 Fact Originally, I wanted Commercial Translator to contain set operators as the primary verbs (match, delete, merge, copy, first occurrence of, etc.), but it was too much for that time. Bosak at SDC is now making a similar development. So we listened to Roy Goldfinger and settled for a language of the Flowmatic type. Dr. Hopper had introduced the concept of data division; we added environment division and logical multipliers, among other things, and also made an unsuccessful attempt to free the language of limitations due to the 80-column card. As the computer world knows, this work led to the CODASYL committee and Cobol, the first version of which was supposed to be done by the Short Range Committee by 1959 September. There the matter stood, with two different and widely used languages, although they had many functions in common, such as arithmetic. Both underwent extensive standardization processes. Many arguments raged, and the proponents of "add A to B giving C" met head on with those favoring "C = A + B". Many on the Chautauqua computer circuit of that time made a good living out of just this, trivial though it is. Many people predicted and hoped for a merger of such languages, but it seemed a long time in coming. PL/I was actually more an outgrowth of Fortran, via SHARE, the IBM user group historically aligned to scientific computing. The first name applied was in fact Fortran VI, following 10 major changes proposed for Fortran IV. It started with a joint meeting on Programming Objectives on 1963 July 1, 2, attended by IBM and SHARE Representatives. Datamation magazine has told the story very well. The first description was that of D. D. McCracken in the 1964 July issue, recounting how IBM and SHARE had agreed to a joint development at SHARE XXII in 1963 September. A so-called "3 x 3" committee (really the SHARE Advanced Language Development Committee) was formed of 3 users and 3 IBMers. McCracken claimed that, although not previously associated with language developments, they had many years of application and compiler-writing experience, I recall that one of them couldn't tell me from a Spanish-speaking citizen at the Tijuana bullring. Developments were apparently kept under wraps. The first external report was released on 1964 March 1. The first mention occurs in the SHARE Secretary Distribution of 1964 April 15. Datamation reported for that month: "That new programming language which came out of a six-man IBM/ SHARE committee and announced at the recent SHARE meeting seems to have been less than a resounding success. Called variously 'Sundial' (changes every minute), Foalbol (combines Fortran, Algol and Cobol), Fortran VI, the new language is said to contain everything but the kitchen sink... is supposed to solve the problems of scientific, business, command and control users... you name it. It was probably developed as the language for IBM's new product line. "One reviewer described it as 'a professional programmer's language developed by people who haven't seen an applied program for five years. I'd love to use it, but I run an open shop. Several hundred jobs a day keep me from being too academic. 'The language was described as too far from Fortran IV to be teachable, too close to be new. Evidently sharing some of these doubts, SHARE reportedly sent the language back to IBM with the recommendation that it be implemented tested... 'and then we'll see. '" In the same issue, the editorial advised us "If IBM announces and implements a new language - for its whole family... one which is widely used by the IBM customer, a de facto standard is created.? The Letters to the Editor for the May issue contained this one: "Regarding your story on the IBM/SHARE committee - on March 6 the SHARE Executive Board by unanimous resolution advised IBM as follows: "The Executive Board has reported to the SHARE body that we look forward to the early development of a language embodying the needs that SHARE members have requested over the past 3 1/2 years. We urge IBM to proceed with early implementation of such a language, using as a basis the report of the SHARE Advanced Language Committee. " It is interesting to note that this development followed very closely the resolution of the content of Fortran IV. This might indicate that the planned universality for System 360 had a considerable effect in promoting more universal language aims. The 1964 October issue of Datamation noted that: "IBM PUTS EGGS IN NPL BASKET "At the SHARE meeting in Philadelphia in August, IBM?s Fred Brooks, called the father of the 360, gave the word: IBM is committing itself to the New Programming Language. Dr. Brooks said that Cobol and Fortran compilers for the System/360 were being provided 'principally for use with existing programs. ' "In other words, IBM thinks that NPL is the language of the future. One source estimates that within five years most IBM customers will be using NPL in preference to Cobol and Fortran, primarily because of the advantages of having the combination of features (scientific, commercial, real-time, etc.) all in one language. "That IBM means business is clearly evident in the implementation plans. Language extensions in the Cobol and Fortran compilers were ruled out, with the exception of a few items like a sort verb and a report writer for Cobol, which after all, were more or less standard features of other Cobol. Further, announced plans are for only two versions of Cobol (16K, 64K) and two of Fortran (16K and 256K) but four of NPL (16K, 64K, 256K, plus an 8K card version). "IBM's position is that this emphasis is not coercion of its customers to accept NPL, but an estimate of what its customers will decide they want. The question is, how quickly will the users come to agree with IBM's judgment of what is good for them? " Of course the name continued to be a problem. SHARE was cautioned that the N in NPL should not be taken to mean "new"; "nameless" would be a better interpretation. IBM's change to PL/I sought to overcome this immodest interpretation. Extract: Definition and Maintenance Definition and Maintenance Once a language reaches usage beyond the powers of individual communication about it, there is a definite need for a definition and maintenance body. Cobol had the CODASYL committee, which is even now responsible for the language despite the existence of national and international standards bodies for programming languages. Fortran was more or less released by IBM to the mercies of the X3. 4 committee of the U. S. A. Standards Institute. Algol had only paper strength until responsibility was assigned to the International Federation for Information Processing, Technical Committee 2. 1. Even this is not sufficient without standard criteria for such languages, which are only now being adopted. There was a minor attempt to widen the scope of PL/I at SHARE XXIV meeting of 1965 March, when it was stated that X3. 4 would be asked to consider the language for standardization. Unfortunately it has not advanced very far on this road even in 1967 December. At the meeting just mentioned it was stated that, conforming to SHARE rules, only people from SHARE installations or IBM could be members of the project. Even the commercial users from another IBM user group (GUIDE) couldn't qualify. Another major problem was the original seeming insistence by IBM that the processor on the computer, rather than the manual, would be the final arbiter and definer of what the language really was. Someone had forgotten the crucial question, "The processor for which version of the 360? , " for these were written by different groups. The IBM Research Group in Vienna, under Dr. Zemanek, has now prepared a formal description of PL/I, even to semantic as well as syntactic definitions, which will aid immensely. However, the size of the volume required to contain this work is horrendous. In 1964 December, RCA said it would "implement NPL for its new series of computers when the language has been defined.? If it takes so many decades/centuries for a natural language to reach such an imperfect state that alternate reinforcing statements are often necessary, it should not be expected that an artificial language for computers, literal and presently incapable of understanding reinforcement, can be created in a short time scale. From initial statement of "This is it" we have now progressed to buttons worn at meetings such as "Would you believe PL/II?" and PL/I has gone through several discrete and major modifications. Extract: Introduction The family tree of programming languages, like those of humans, is quite different from the tree with leaves from which the name derives. That is, branches grow together as well as divide, and can even join with branches from other trees. Similarly, the really vital requirements for mating are few. PL/I is an offspring of a type long awaited; that is, a deliberate result of the marriage between scientific and commercial languages. The schism between these two facets of computing has been a persistent one. It has prevailed longer in software than in hardware, although even here the joining was difficult. For example, the CPC (card-programmed calculator) was provided either with a general purpose floating point arithmetic board or with a board wired specifically to do a (usually) commercial operation. The decimal 650 was partitioned to be either a scientific or commercial installation; very few were mixed. A machine at Lockheed Missiles and Space Company, number 3, was the first to be obtained for scientific work. Again, the methods of use for scientific work were then completely different from those for commercial work, as the proliferation of interpretive languages showed. Some IBM personnel attempted to heal this breach in 1957. Dr. Charles DeCarlo set up opposing benchmark teams to champion the 704 and 705, possibly to find out whether a binary or decimal machine was more suited to mixed scientific and commercial work. The winner led to the 709, which was then touted for both fields in the advertisements, although the scales might have tipped the other way if personnel assigned to the data processing side had not exposed the file structure tricks which gave the 705 the first edge. Similarly fitted, the 704 pulled ahead. It could be useful to delineate the gross structure of this family tree for programming languages, limited to those for compilers (as opposed to interpreters, for example). in PL/I Bulletin, Issue 6, March 1968 view details in PL/I Bulletin, Issue 6, March 1968 view details [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 PL/I Bulletin, Issue 6, March 1968 view details in ACM Computing Reviews 15(04) April 1974 view details 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 ACM Computing Reviews 15(04) April 1974 view details in SIGPLAN Notices 14(04) April 1979 including The first ACM SIGPLAN conference on History of programming languages (HOPL) Los Angeles, CA, June 1-3, 1978 view details in IBM Journal of Research and Development, 25(5), September 1981 25th anniversary issue view details The author is eminently qualified to have written this paper. She is a long-time employee of IBM, and has written many papers and a definitive book on the development of programming languages. Her account of the contributions of IBM to the development of programming languages is itself a contribution to the subject. in IBM Journal of Research and Development, 25(5), September 1981 25th anniversary issue view details In mid-1956, McPherson asked his most experienced programmers whether a "business language" might facilitate commercial accounting applications in roughly the degree that FORTRAN had facilitated scientific applications. Early in 1957, he launched a project in Programming Research to develop such a language, to be called COMTRAN. The task was removed to Applied Programming in mid-1957 and divulged to the user organizations later in the year. At a GUIDE meeting in November 1958, Roy Goldfinger, a leader in COMTRAN development, described the proposed language. IBM's motivations, he said, went beyond the programmer convenience and efficiency purposes that had provoked FORTRAN: COMTRAN . . . represents a blueprint of what we think programming should be in the future. We are motivated by two interests. The first is to produce a large-scale programming system which is going to apply over a fairly wide range of machines. We are looking forward to the day when conversion problems are eliminated through having a single programming language that applies to many different machines. FORTRAN is an excellent example of a language for scientific users which permits a program to be written once, and then with little or no modification may be extended to machines other than the one for which the program was written originally. We would like to accomplish the same thing for the commercial data processing user. Our second motivation is also on behalf of the data processing user. We want to arrive at a language which is best for defining commercial programs to the computer . . . which talks directly about the problem, a language which has to depend for its interpretation as little as possible on a knowledge on the part of the programmer of the precise logic that is built into the hardware. His example of a conditional statement illustrates the character of the language: IF AGE IS MORE THAN 21 AND (SINGLE OR MARRIED AND NO DEPENDENTS) THEN SET DRAFT STATUS EQUAL TO I.) Subsequently, the language was renamed Commercial Translator. Extract: COBOL vs COMTRAN The possibility of a language at once convenient and applicable to a variety of machines had become a matter of keen concern to large organizations, such as the military branches, that managed scores of diverse computers. At the suggestion of a broadly constituted group that met to discuss the objectives in April 1959, the U.S. Department of Defense in May sponsored a meeting that resulted in an industry-wide project, manned by committees of volunteers, to develop a business programming language. The principal result was In August 1959, IBM had announced that in 1961 it would provide Commercial Translator compilers for the IBM types 705 III, 7070, and 709/7090. Later in the year, while the COBOL document was being written, IBM found itself at odds with its customers on how to arrive at a shared long-term goal: a single business programming language, supported by one compiler for each IBM machine. In November, GUIDE members passed a resolution asking that IBM develop compilers only for COBOL. IBM was not willing to link its support for higher-level language programming of business applications to an as-yet-unspecified target, one that indeed might prove to be a moving target as revised versions of COBOL were developed. At a SHARE meeting in February 1960, Alvin L. Harmon, successor to Ahlin as Applied Programming head, stated that the Commercial Translator language would be modified to include new developments "from . . . efforts ... of the COBOL Committee" and that customers could use the modified language for programming in anticipation of compilers for the 705, 7070 and 709/90. The revised specifications were published in June, the same month that the COBOL specifications appeared. In April 1960, IBM announced that the Commercial Translator compilers would be available in the second quarter of 1961 and that COBOL compilers would follow later. At the May GUIDE meeting, a number of users pressed vigorously for COBOL compiler availability dates. Harmon declined to set dates, mindful of both evident and probable lurking ambiguities in the COBOL specifications, which he knew the industry committee would have to resolve. In September, nevertheless, he committed to deliver COBOL compilers in the third quarter of 1961. However, the COBOL specifications were substantially revised: at the June 1961 GUIDE meeting, following a report on initial user experience with the 705 and 7070 Commercial Translator compilers, a member of the industry COBOL project's Executive Committee confirmed that new specifications, called COBOL-61, would be published a month later. He said, "The changes are sufficient in scope that a program written in COBOL-60 will not compile-properly using a compiler specifically written for COBOL-61 specifications." in C.J. Bashe, L.R. Johnson, J.H. Palmer, and E.W. Pugh "IBM's Early Computers" MIT Press, 1986 (Vol. 3 in the History of Computing series) view details As a pioneer in the development of commercial (rather than strictly scientific) computing, Bob Bemer developed the COMTRAN (COMmercial TRANslator) programming language in 1957. COMTRAN became one of the three forerunner languages of the COBOL (COmmon Business Oriented Language) programming language. Bemer's conversations with Grace Hopper in the prior year had convinced him that programming languages specifically for business had a future. Hopper was a famous computing pioneer and the "mother" of COBOL. It may seem self-evident today, but the concept of a programming language useful for business purposes was revolutionary at the time. Bob Bemer also invented the "Escape" key found on every computer keyboard, the backslash character, and is the "father" of ASCII - but those are other stories. Bob Bemer's COMTRAN language originally included the Picture Clause. The Picture Clause was the first programming language element to specify data format, size, and type. Much like a dictionary defines the spelling and meaning of a word, a Picture Clause defines the length of a piece of data, whether the data must contain letters or numbers, and other characteristics of the data. A Picture element could define a piece of data - say the year of a date - as a four digit long representation with each digit being a number between 0 to 9. And violà, a Y2K-proof data element has been defined. By 1958, Bob Bemer's Picture Clause had provided the flexibility to define a year as a complete, 4-digit representation within COMTRAN and subsequently COBOL. While Bemer suspected that this ability was a needed feature for business programming, he didn't have an immediate use in mind for it. The Picture Clause from Bemer's COMTRAN language was carried forward as a standard part of the COBOL programming language. Bemer had always been concerned that the 2-digit year shortcut was unnecessarily limiting. COBOL's use of the Picture Clause gave the programming language the ability to define a 4-digit year. However, with processing and memory being highly expensive, COBOL programmers could still use the Picture Clause just as easily to define a 2-digit date. The ability to make year dates fully flexible for handling any given year thus became optional within COBOL. It was left up to the individual COBOL programmer to decide how to format year data. Some chose 4-digit years, some did not. Today COBOL remains one of the most commonly used business programming languages in the world. in C.J. Bashe, L.R. Johnson, J.H. Palmer, and E.W. Pugh "IBM's Early Computers" MIT Press, 1986 (Vol. 3 in the History of Computing series) view details CR: How did you arrive at the name COBOL? BB: Cobol to me has a nice round sound - a lyrical quality (drawing an imaginary hourglass in the air). The sound reminds me of a women’s figure. CR: Are you saying that Cobol, the language that is often considered the epitome of design by committee and bureaucracy, was named with Venus de Milo musings in mind? BB: Yes (laughing). CR: I must say I've been programming for over 20 years in Cobol and never heard that one. What did Grace Hopper have to say about your metaphorical naming? BB: She just laughed and said okay. in C.J. Bashe, L.R. Johnson, J.H. Palmer, and E.W. Pugh "IBM's Early Computers" MIT Press, 1986 (Vol. 3 in the History of Computing series) view details |