Man-to-machine communication and automatic code translation

The ACT system is a programmed adjunct to a general purpose computing machine (currently considered for the MOBIDIC) whose purpose is to facilitate the initial encoding and subsequent application of specific "code-to-code translation" procedures. The phrase "code-to-code translation" is primarily meant to cover the conversion of problem oriented pseudo-codes into machine code equivalents. The ACT system provides for the "housing" of many distinct translation procedures - carrying algebraic, data-processing, simulation languages, etc., into any of a variety of computer codes - within the bounds of a single controlling system. The programmed components of the ACT system include: 1. An allocation interpreter - AI 2. A "core library" of basic translation functions 3. A general translation library whose content varies with use of the system. The allocation interpreter permits the formation of large translation programs out of large (and small) pre-stored sub-programs. Without greatly impeding computation speed, AI determines internal and external storage allocations for all space-taking portions of information as part of problem computation. This facility is shown to be essential to the construction of ACT, and perhaps widely useful in other types of programs. The core library contains translation functions which play a fundamental role in a wide range of code-to-code translations. Included are many functions which usually play an important part in machine assembly programs. Other functions provide for general library handling, code reordering, etc. Also associated with ACT is a writing convention called "canonical form" which governs the presentation of data (i.e., programs in source code submitted for translation). Canonical form, while flexible enough to permit highly diverse problem codes, still standardizes all those signals which the basic ACT components decode. The ideas presented herein were developed at the University of Pennsylvania under contract to the U.S. Army Signal Corps in connection with the FIELDATA family of data-processing equipment. Although reference is made to the FIELDATA family in the presentation below, the ideas should be applicable to other families of equipment. Because of the prevailing tendency towards modular design in computing systems, such families are rapidly becoming more numerous.