Click for next page ( 9

The National Academies of Sciences, Engineering, and Medicine
500 Fifth St. N.W. | Washington, D.C. 20001

Copyright © National Academy of Sciences. All rights reserved.
Terms of Use and Privacy Statement

Below are the first 10 and last 10 pages of uncorrected machine-read text (when available) of this chapter, followed by the top 30 algorithmically extracted key phrases from the chapter as a whole.
Intended to provide our own search engines and external engines with highly rich, chapter-representative searchable text on the opening pages of each chapter. Because it is UNCORRECTED material, please consider the following text as a useful but insufficient proxy for the authoritative book pages.

Do not use for reproduction, copying, pasting, or reading; exclusively for search engines.

OCR for page 8
INDUSTRY AND THE UNIVERSITY IN NINE SUBAREAS OF COMPUTER SCIENCE 1. SYSTEMS SOFTWARE Successive waves of development have led to improvements in the reliability of hardware, reductions of costs and economies of scale, development of large-capacity random-access storage, and minicomputers and microcomputers and the distributed computing networks associated with them. Each of these developments has altered the focus and direction of systems software. Though the university contribution to this area was initially quite strong, the increasing functional complexity demanded by the marketplace has progressively transferred dominance in systems software innovation to industry. Universities have played various roles in systems software, including (1) demonstrating new systems concepts, (2) providing analysis, codification, and under- standing of existing systems, (3) developing better algorithms and protocols for improved systems, and (4) building new systems. Universities have been very successful at doing (2) and {3~. A lack of contact with field requirements has limited university successes in (4), but the increasing availability of smaI1 machines may provide an opportunity for university work to have a greater impact in that area. . _ _ . . . , _ ~ , ~ . 2. INTEGRATED CIRCUITS Industry has shown leadership in the development of integrated circuits. In fact, industry has dominated this development-oriented and capital-intensive area of technological innovation. Today, very large scale integrated (VSLI) circuits have become so complex that systems for automating the design of VLSI circuits have become necessary. Universities have made important contributions is this area. The present trend of increased involvement of universities in practical aspects of the VLSI industry shows great promise for providing new research perspectives but also may contain the risk of financial overcommitment. 8

OCR for page 8
9 3. THEORETICAL RESEARCH m eoretical research explores the mathematical limits of the power of computing techniques. Theory provides structures that codify, synthesize, and transmit ideas. It also provides standard problem approaches and a conceptual vocabulary for developing and communicating those approaches. Although industrial contributions to theory have also been substantial, universities have played the leading role in the development of theoretical computer science. Compiler writing, reviewed in more detail in the next section {4), furnishes good examples of the codifying role of theory in an essentially pragmatic area; e.g., formal techniques for syntactic analysis of high-level languages, begun in the 1960s, have become a major influence on language development. m e theory of encryption, which has had a very practical impact on national security, is another example of the practical impact of theory. m ere are many examples of special techniques and algorithms that have made significant contributions to performing computing tasks efficiently. These examples, including linear programming, fast Fourier transform, finite element techniques, data-compression techniques, sorting algorithms, and others, drive home the importance of careful theoretical consideration of the nature of computing tasks and the ultimate limitations of each of there techniques available for dealing with them. Theoreticians have played an important role in making ideas of this kind available, intelligible, and useful to programmers. 4. COMPILER WRITING Compilers are needed for the generation of machine code because of the prohibitively large number of man-hours that would otherwise be required for manual program construction. Although the first efforts took place in industry spurred by pragmatic considerations, theoretical contributions from the university community to the art of compiler development have attained a substantial influence on practice. These contributions include formal syntax analysis, techniques for efficiency improvement through code optimization, and global program analysis using graph-theoretical techniques. Refined algorithms developed by university theoreticians are beginning to have an impact on practical _ compiler design. As an examule. register allocation procedures. which _ , _ are crucial to the production of high-efficiency code, have come from the connection of the register allocation problem with the well-known graph-coloring problem, and thus the extensive mathematical literature on that apparently abstruse topic has had practical applications. The general trend is toward a more extensive use of systematic, theoretically based methods. Ultimately, this development may allow much compiler construction to be handled systematically. .

OCR for page 8
10 5. ARTIFICIAL INTELLIGENCE When algorithmic methods cannot be found for solving problems, adaptive strategies can be used to seek solutions. The extension and application of these so-called weak methods form part of the substance of the field known as artificial intelligence (AI). Because AI holds forth the possibility of simulating the process of understanding and intelligent response in machines, it has attracted much public interest. Research in AI has focused on such topics as . how to encode knowledge how to make inferences from data how to analyze visual scenes how to understand and generate speech or text how to model problem solving Most of this research has been done at a few university centers with substantial federal funding. But corporate AI research is growing stronger. Although they are byproducts of its central thrusts, some of the most important contributions of AI to computer science and industrial computing have been the invention of new programming techniques. Examples include time sharing and list processing. Domestic industry has been, and to some extent remains, skeptical of the AI field. The Japanese, by contrast, plan to invest $100 million in a fifth-generation computer project having a strong AI focus. 6 . ROBOTIC S In this area, the goals of artificial intelligence and the needs of the marketplace come together. Industry took the lead early on in robotics, but progress was slow until the MIT and Stanford groups began applying the approaches of artificial intelligence to the robotics problem. m e savings in processor cost realized through the development of microprocessors encouraged continued industrial interest in the 1970s. Industrial investment in robotics is now increasing rapidly. A number of university robotics laboratories have been established, with industry now building up large robotics activities of its own and also playing an important role in supporting university developments. To accelerate progress, well-structured university-industry cooperation will be necessary. The research issues that need to be addressed by work in robotics are broad and include geometry, dynamics, image processing, and software. Close collaboration between industry and universities can help give industry the mathematical skills required for work in this field and can help universities to find the capital resources and engineering capacity that they will need.

OCR for page 8
11 7. SCIENTIFIC COMPUTING Large-scale computing is very important for modeling and understanding problems in climate, aerodynamics, high-energy and solid-state physics, chemistry, and numerous other fields. For example, medical imaging devices such as computerized axial tomographic {CAT) scanners would not be practical without powerful small computers using sophisticated image-reconstruction algorithms. Research in scientific computing is dominated by work in universities, although there are also important efforts in a few industrial computing and government laboratory centers. Improving the precision and fineness of detail with which large physical systems can be modeled often requires large increases in computing power, and this demand for increased scientific computing power has been an important factor in motivating innovations in large machine architecture. But expertise in the theory of the problem to be solved is usually necessary to find practical approaches to large-scale scientific computing problems. Thus, to carry out such computations, expertise in both the relevant science and numerical techniques is required. This makes it important that scientific computing facilities be organized to promote effective interaction among scientists and experts in computer science. But trends in the organization of computing centers over the past decade have not promoted the desirable increased opportunity for experimentation in basic numerical techniques. This has impeded the production of adequate trained manpower in this field. The results of university research in scientific computing are disseminated to only a special group drawn from disciplines other than computer science. This lack of focus also impedes the production of adequately trained manpower in this field. Two steps could alleviate these problems. First, a new model program in large-scale scientific computing at one or two universities could be created with strength in both scientific comDutina and _ _ , ~ _ _ , _ _ . _ numerical analysis. Second, ways should be sought to promote access for scientific computing groups to the most powerful computer facilities available. 8 . RESEARCH IN DATA PROCESSING The term data processing has historically been associated with business applications, but the usage of the term has now broadened to include more general computer-based information retrieval systems. Data processing accounts for the greatest proportion of institutional computer use measured by computer-hours. As organizations become more complex and requirements for documentation, reporting, and management information become more demanding, the complexity of data processing systems will continue to grow. However, little basic research, especially university research, has been devoted to this area. A list of major developments in the field would include high-level programming languages such as COBOL, data base management systems, decision support systems, and a variety of application development systems that facilitate development of data i

OCR for page 8
12 processing application programs. All these developments originated in field practice rather than from universities or industrial research centers. For example, COBOL, in wide use for business applications, was developed by a diverse group of hardware vendors. An exception to the general statement that only limited research has been devoted to the problems of data processing is data base management, which is one area where the work of such industrial research centers as the IBM San Jose Laboratory and the Computer Corporation of America has recently attracted university interest and involvement. Aside from this, university-based theoretical work has made its most notable contribution to data base technology in the development of advanced data access structures such as the B*-tree. Interestingly, the B*-tree descends from a collaboration of two researchers, one from industry and one from academe. Continuing interchange between researchers and practitioners must be fostered to promote continued productive development in data processing. m is is the only way in which university researchers can be made aware of the constantly shifting foci of attention in this dynamic field. 9. SOFTWARE DEVELOPMENT The cost of developing software has been widely recognized as a problem for many years, especially in industry, which has taken the lead in developing software to meet certain practical needs. m e productivity of programmers is rising only very slowly, while software efficiency and reliability continue to be subjects of concern in industry. Although significant advances have come over the last 30 years from research in the science of programming, much more must be done to improve the productivity of programmers and the reliability of programs. The concepts that have thus far aided programmer productivity include high-level languages, interactive computing environments, disciplined approaches such as structured programming, and related management methodologies. Continued progress will come from both industrial and university research laboratories. As in the past, developments will come from attempts to solve real problems. Much of the development will need to be done with experimental hardware that may appear uneconomical but that will become practical as costs are reduced through high-volume production and technological breakthroughs. Enhanced progress can come from (1) increased contact between researchers and real-world software development problems, (2) revitalization of experimental computing facilities, and {3) support of experiments with software productivity tools. Such steps promote the conditions that naturally foster progress in software development.