HIBOL(ID:4069/hib003)

High Level COBOL 


High Level Language COBOL, with flow as first class structures, for representing data streams

Part of the Protosystem I at MIT


Related languages
COBOL 74 => HIBOL   Extension of
HIBOL => HIB0L 2   Evolution of

References:
  • Ruth, Gregory R. Internal Memo 16: Status of Protosystem I, Project MAC, MIT, 1975 view details
  • Ruth, Gregory R. Internal Memo 21: The New Question Answerer, Project MAC, 1975 view details
  • Ruth, Gregory R. "Automatic design of data processing systems" pp50-57 view details Abstract: An automated business data processing system designer is described. Attention is centered on the I/O aspects of such systems and the development of optimizing design heuristics. The design of data organization and data accessing procedures for data processing systems operating on large keyed files of data is a common and recurrent activity in modern data processing applications. A considerable amount of understanding and expertise in the this area has been developed and it is time to begin codifying and automating this process. It should be possible to develop a system where the user has merely to specify the characteristics of his (input, output, and intermediate) data objects and their interrelations1 and the system will automatically determine the data organizations and accessing procedures that are optimal for his application. The optimizer for Protosystem I (an automatic programming system prototype at MIT's Project MAC) provides an example of how such automation can be accomplished. This paper describes the theory and algorithms behind the optimizer that is currently operational at Project MAC. DOI
          in [ACM SIGACT-SIGPLAN] Proceedings of the 3rd ACM SIGACT-SIGPLAN Annual Symposium on Principles of Programming Languages (POPL) 1976 view details
  • Ruth, Gregory R. "Protosystem I: An Automatic Programming System Prototype", TM-72, MIT Laboratory for Computer Science, 1976. view details
          in [ACM SIGACT-SIGPLAN] Proceedings of the 3rd ACM SIGACT-SIGPLAN Annual Symposium on Principles of Programming Languages (POPL) 1976 view details
  • Ruth, Gregory R. "Automatic programming: Automating the software system development process", Proceedings of the 1977 annual conference, p.174-180, January 1977 view details Abstract: To meet the burgeoning software demands of the future the computer will have to take a more active role in the writing of its own software. Many computer tools have been developed that enable the machine to help human software developers. It would be preferable, and in the not too distant future it will be necessary, for the machine to actually take over a substantial part of software development. Automatic programming seeks to do this by moving the human developer up from the implementation level of programming (e.g. COBOL, where the human has to include such details as data and control structures), to a level of programming that is less specific, where it is left to the computer decide the best way to fill in implementation. This article provides a survey of current research and development in automatic programming and a discussion of future directions in this field. Extract: Application Specification Media and Aids
    Application Specification Media and Aids
    The direction that work in the DPS-type based approach has taken is toward making it easy for the user to describe his application. Simple and concise descriptive media for describing the user's processing requirements and the data his application uses and generates have been developed. The ISDOS APS uses the ADS, SSL and PSL languages, all of which involve RPGlike forms to be filled out by the user. Protosystem I makes use of HIBOL, an English-like statement language (like COBOL, but at a higher level of abstraction).
    The power and simplicity of these languages is most easily Illustrated by a short HIBOL fragment. If PAY, HOURS_WORIPAY IS HOURS_WORKED * RATE
    indicates that for each employee for which there is a record in the HOURS_WORKED file, the PAY file will have a corresponding record with an associated value obtained by multiplying the number of hours the employee worked by his hourly rate. The iteration through the files involved, the file i/O, record generation, EOF checking, and so forth, which would have to be explicit in a PL/I program equivalent to this statement, are all implicit here.
    The development of simple descriptional facilities for the full range of more complicated common data processing activities such as summation and the maintenance of running totals is the subject of continuing research.
    At USC/ISI a research effort is currently underway that is aimed at allowing the user to express his application specification in English. This promises the ultimate in user convenience, but natural language comprehension by machines is difficult. It is conjectured, however, that the usually formidable problems of ambiguity and detail suppression (e.g. anaphoric reference) will be mitigated to, some degree by the highly constrained nature of the processing described. That is, it is felt that tentative program attempts will act as effective filters of possible alternative interpretations of the English specifications.
    Another way in which the developers of APS's are seeking to make the description process easy for the user involves the use of consistency and completeness checks. Whenever parts of a user's description are inconsistent (e.g. he associates different keys with the same file in different places) the clever system will point this out and demand resolution. Completeness checking (e.g. is the source and destination of all data specified?) can be used to guide the user in his specification effort, too. The ISDOS and MODEL systems provide such aids to the user. Abstract: To meet the burgeoning software demands of the future the computer will have to take a more active role in the writing of its own software. Many computer tools have been developed that enable the machine to help human software developers. It would be preferable, and in the not too distant future it will be necessary, for the machine to actually take over a substantial part of software development. Automatic programming seeks to do this by moving the human developer up from the implementation level of programming (e.g. COBOL, where the human has to include such details as data and control structures), to a level of programming that is less specific, where it is left to the computer decide the best way to fill in implementation. This article provides a survey of current research and development in automatic programming and a dlscussion of future directions in this field.
          in [ACM SIGACT-SIGPLAN] Proceedings of the 3rd ACM SIGACT-SIGPLAN Annual Symposium on Principles of Programming Languages (POPL) 1976 view details
  • Ruth, Gregory R. "Protosystem I - An automatic programming system prototype" Proc. AFIPS National Computer Conf., v47 1978 pp675-681 view details
          in [ACM SIGACT-SIGPLAN] Proceedings of the 3rd ACM SIGACT-SIGPLAN Annual Symposium on Principles of Programming Languages (POPL) 1976 view details
  • Faust, G. G. "Semiautomatic translation of Cobol into Hibol, " M.S. thesis, Rep. MIT/LCS/TR-256, Mar. 1981 view details
          in [ACM SIGACT-SIGPLAN] Proceedings of the 3rd ACM SIGACT-SIGPLAN Annual Symposium on Principles of Programming Languages (POPL) 1976 view details
  • Ruth, Gregory R.; Alter, S.; and Manin, W. "A very high level language for business data processing," Rep. MIT/LCS/TR-254, 1981. view details
          in [ACM SIGACT-SIGPLAN] Proceedings of the 3rd ACM SIGACT-SIGPLAN Annual Symposium on Principles of Programming Languages (POPL) 1976 view details