The Relationship Between COBOL and Computer Science BEN SHNEIDERMAN
Total Page:16
File Type:pdf, Size:1020Kb
The Relationship Between COBOL and Computer Science BEN SHNEIDERMAN Based on interviews, reviews of the literature, and personal impressions, the author offers historical, technical, and social/psychological perspectives on the fragile relationship between COBOL and computer science. The technical contributions of COBOL to programming language design are evaluated. Five proposals for computer science research on COBOL and fourth-generation languages are described. Categories and Subject Descriptors: 0.3.0 [Genera/]-standards; 0.3.2 [Language Classifications]-cosoc K.2 [History of Computing]-coso& software; K.3.2 [Computers and Education] Computer and Information Science Education-computer science education General Terms: Design, Languages, Standardization For a computer scientist to write sympathetically More recently I have turned my attention to psycho- about COBOL is an act bordering on heresy. It requires logical or human-factors issues of programming, courage because academic colleagues and data proc- database query facilities, and human-computer inter- essing professionals are both likely to be suspicious of action (Shneiderman 1980). I have taught introduc- my motives. Therefore, I feel my first obligation is to tory PrOgramming coursesin FORTRAN,BASIC,&isCal, make clear my intention and orientation. COBOL, APL, and PL/~ and have written or coauthored I believe that COBOL has had a strong and largely textbooks using the first three of these languages. positive influence on the emergence of computer usage. The development of COBOL was a pioneering Historical Perspective effort that advanced the state of the art in practical data processing and language design. COBOL clearly Five aspects of the historical development of COBOL had many flaws, some of which have been overcome can be traced as important influences in the alienation by revisions to the original language. Designers of of COBOL from the computer science community. First, other languages have learned from the mistakes and academic computer scientists did not participate in overcome the problems with novel constructs. This the design team. The developers of COBOL were from paper offers three perspectives on the rise of COBOL the commercial community: the manufacturers and (historical, technical, and social/psychological) and users of large data processing systems in industry and suggests directions for future cooperation. government (see the minutes in this issue for lists of My orientation is as a computer scientist whose the participants). early work was in database systems and programming. In 1959-1960 very few academics could have been classified as computer scientists, of course, and few of them could have made useful contributions, but en- 0 1985 by the American Federation of Information Processing Societies, Inc. Permission to copy without fee all or part of this gaging them might have been beneficial. material is granted provided that the copies are not made or distrib- The developers of the Ada language realized this uted for direct commercial advantage, the AFIPS copyright notice possibility and made ambitious and successful efforts and the title of the publication and its date appear, and notice is given that the copying is by permission of the American Federation to elicit the participation of academic and industrial of Information Processing Societies, Inc. To copy otherwise, or to researchers. Computer scientists can do more than republish, requires specific permission. contribute ideas; they are often effective in dissemi- Author’s Address: Department of Computer Science, University of Maryland, College Park, MD 20742. nating new concepts through their publishing, teach- 0 1985 AFIPS 0164-l 239/85/040348-352$01 .OO/OO ing, and lecturing efforts. 348 . Annals of the History of Computing, Volume 7, Number 4, October 1985 6. Shneiderman - COBOL and Computer Science The second historical aspect is that the COBOL science. It is not surprising that they worked sepa- developers apparently had little interest in the aca- rately and in parallel. The development of computer demic or scientific aspects of their work. The May science and data processing might have been substan- 1962 issue of the Communications of the ACM was tially altered if these communities had taken the time devoted to 13 papers describing COBOL and related to meet and work together. issues. Every article was written by an industry or government person. These people did not have the Technical Perspective academic frame of mind that involves referencing previous and related work; only four of the papers had Getting convergence on the technical successes and any references. Sociologists of science who use cita- failures of COBOL was a difficult task. I spoke to 30- tions to trace the flow of ideas would recognize this 40 computer scientists and data processing profession- pattern as an indicator of intellectual separatism. als in trying to sort out the issues. The following The third aspect is the decision of the COBOL de- analysis is my own view guided by the interviews. velopers not to use the Backus-Naur Form (sometimes First the successes. The strongest point of agree- called Backus Normal Form) notation as the metalan- ment was that COBOL contributed the record structure, guage to describe COBOL. The COBOL developers were explicit file structure definition, and the separation of unaware of this work, which appeared in a conference data definition from procedural aspects. The COBOL report in June 1959. I don’t see the failure to use BNF record and file structure certainly influenced the de- as central, but apparently the criticism at the time sign of PL/~ and Pascal. The notion of an aggregation was severe (Sammet 1981, p. 233). The COBOL style of of dissimilar items is a major advance over the FOR- metalanguage has become widely used and might be TRAN array. The Pascal notion of variant records can considered as an important contribution. be traced to the COBOL REDEFINES clause. A fourth concern is the process of describing COBOL Explicit file structure definitions that included a to the academic and industrial community. Profes- hierarchy of names for fields and the separate DATA sionals could learn the language from programmer Division were the predecessors of the database man- reference manuals, but a well-written book emphasiz- agement system (DBMS) concept. DBMSs are a vital ing the conceptual foundations of COBOL would have part of computer science and are the source of a rich been an asset. It took a few years before successful theory that is still developing rapidly. introductions were available (McCracken 1963; Saxon Another contribution was the diverse set of control 1963) to teach COBOL to novices. Note the contrast structures, which were quite sophisticated for the time. with the dissemination of Pascal. Niklaus Wirth pub- The COBOL IF-THEN-ELSE, in spite of its awkward lished a precise description of the language in Acta scope delimiter rules, reduced the need for GOTOS and Informatica (1971), an interesting book titled System- permitted the creation of more comprehensible code. atic Programming: An Introduction (1973), the widely The variety of PERFORM statements allowed conveni- read Pascal User Manual and Report (1975), and a ent and powerful looping and some degree of modular forward-looking textbook Algorithms + Data Struc- design. The ease with which paragraphs could be tures = Programs (1976). created, named, and used facilitated hierarchical de- A search of the Library of Congress SCORPIO system sign. revealed 252 books indexed under COBOL, 529 under A popular feature of COBOL that has appeared in FORTRAN, and 1054 under BASIC, demonstrating the other languages is the COPY statement. By including relatively lower rate of publication on COBOL. Pascal groups of statements from a library, organizational is more recent, but already 208 books are indexed standards were easily enforced, programmers were under that programming language. encouraged to cooperate, and reuse of code became The fifth historical aspect is that the people who convenient. might have accepted the title of computer scientist in Another interesting COBOL concept is the ENVIRON- 1960 were not interested in the problem domain of MENT Division, which allowed users to specify COBOL programs. The commercial file-processing machine or compiler dependencies. It permitted deli- problems were remote from the concerns of computer nition of separate host and target computers, thus scientists, who generally dealt with numerical analy- foreshadowing the idea of cross-compilers. sis, physics, engineering problems, and systems pro- Finally, the COBOL community demonstrated the gramming. power of portability and standardization. In spite of In summary, the people and the problems in the some local variations, COBOL is largely machine inde- COBOL world were very different from the people and pendent. Programmers could successfully transfer problems who were laying the basis for computer their knowledge and often their programs from one Annals of the History of Computing, Volume 7, Number 4, October 1985 l 349 B. Shneiderman * COBOL and Computer Science organization to another. Standardization also encour- somewhat more powerful INSPECT command, plus aged the development of software tools and reuse of STRING and UNSTRING. code. Several computer scientists complained about the Some of the perceived technical failures of COBOL lack of recursion in COBOL, but I think that it hardly might have been avoided by early