AED String Package(ID:5353/aed006)


AED ODA (Ordered Decrement and Address) String Package


Related languages
AED => AED String Package   Extension of
AED String Package => PLEXPACK   Implementation
AED String Package => Swym   Extension of

References:
  • Ross, Douglas T. "A generalized technique for symbol manipulation and numerical calculation", pp147-150 view details Extract: Introduction
    This project is engaged in (a) a program of research into the application of the concepts and techniques of modern data processing to the design of mechanical parts, and (b) the further development of automatic programming systems for numerically controlled machine tools. The project is a cooperative venture between the Computer Applications Group of the Electronic Systems Laboratory and the Design and Graphics Division of the Mechanical Engineering Department, and is sponsored by the Manufacturing Methods Division of the USAF Air Material Command through Contract AF-33(600)-40604.

    This work is a natural outgrowth of the earlier development of the Automatically Programmed Tool (APT) System by the Computer Applications Group. The APT System translates geometric description and production statements from a natural English-like language into any one of a number of numerically coded languages t h a t control the operation of numerically controlled machine tools. Current development of successively more powerful APT Systems is being carried out by the APT Project (25 member companies) of the Aerospace Industries Association. Work now in progress at MIT constitutes a program of basic research leading toward a man-machine system in which the human and computer can work together on creative design problems. Ultimately it is hoped that the output from the system can feed directly into advanced APT Systems to achieve a direct and automatic means for going from the conception of a part of the finished product.

    At this stage of development it is difficult to distinguish design problems from general problem-solving. Current efforts, however, are concerned not with problem-solving but with problem statement, since only by an effective means for problem statement and restatement can it be assured that the human and the computer are working on the same problem. The closer one approaches creative design problems, the more nebulous and incomplete is the human's own conception of just what the problem is that is to be solved. Therefore the project presently is attacking the areas of structuring of abstract problem elements, translation and compiling techniques, and language design.

    The language of the computer-aided design system will include hand-drawn sketches and physical manual manipulation of picture elements as integral parts of the vocabulary and syntax of the language, on an equal par with the written vocabulary and syntax.

    Light pens and light cannons (photocell devices which feed human-modulated signals from the output scope back into the computer) are being used for graphical language studies.

    The design process itself is being studied to determine those aspects that can potentially be aided by a computer system. Drafting and dimensioning are being studied, as well as selection of standard parts, and mathematical techniques for stress analysis and other computational problems. Techniques for the efficient computation of very large, complex problems are being developed in the framework of a revised APT System analysis.
          in [ACM] CACM 4(03) (March 1961) view details
  • Ross, D.T., and Feldmann, C.G., Verbal and Graphical Language for the AED System: A Progress Report, MAC-TR-4 May 6, 1964. view details Abstract: For Computer-Aided Design use of time-sharing a single language which can take either verbal or graphical form is required. This paper describes how a single language processing technique, which is in turn a special application of more general concepts concerning the step-by-step growth and processing of large structures of interrelated elements, can efficiently process both language forms in the same manner. Illustrations of the concepts involved are also drawn from the methods used in the AED-0 Compiler, an efficient ALGOL-60-based compiler used in Computer-Aided Design work, which is available as a public command in the Project MAC CTSS. Extract: AED-0 description
    June 1964-November 1964: With stable Algol syntax, AED-0 language advances are made only semantically, with "Integrated Packages" of atomic and molecular functions. Virtually all of the features of what now are called abstract data types and object-oriented modular program structuring were covered, one way or another. Procedure bodies were defined separately from their declaration. Nesting a family of functions of a Package within an outer SetUp procedure, allowed the actual arguments of a SetUp call (and return) to parameterize the entire family, until the next such call. The most fundamental package provided Zone-Structured Free Storage management [nested zones can have individual dynamic strategies]; Data Structuring [String Package provided generic operations for stacks, queues, one- or two-way rings, arrays, hash-coded tables, etc., depending on specific Basic Functions selected]; Free-format I/O; Plex Dump-and-Relocate (of arbitrary data structures). Others were: BLEBR Stack Manipulation; DOIT for procedure data type execution; LDOIT for automatic dynamic loading of missing procedures; .C. character string data type (any character can quote all others; ".C.//" is standard); logical operations on bit words; PRESET data/bead values; ISARG optional arguments (many flexibilities on standard packages, including exception handling). AED Macro Preprocessor pass provides Synonyms, .INCLUDE. declaration files, and Compressed source files. Source-Language Debugger. Generalized Merge for system structuring at load time (command pipelining precursor). Kludge programming A-Core/B-Core System enhanced to allow rotatable nested subpictures, 3D pseudo-pen, automatic hidden restructuring of display files. Hardware: A dual Slave console was added.
    External link: Page at MIT for this paper Extract: Introduction
    Introduction
    Since 1959 the Computer Applications Group of the Electronic Systems Laboratory and members of the Design Division of the Mechanical Engineering Department have been working on the Computer-Aided Design Project sponsored by the U. S. Air Force. The objective is to create a man-machine system in which a group of designers and a computer can work together as a team on fresh design problems which require creative solutions. Since the concepts of time-sharing and dynamic man-machine interaction are inherent in the concept of Computer -Aided Design, this work is also being supported by Project MAC as an integral part of its general goals as well.
    The Computer-Aided Design System is not intended to solve any particular class of problems, but instead should be applicable to essentially any area of design and problem-solving. In order to achieve this generality with a single comprehensive system requires careful attention to the fundamentals of solving problems with computers. Since the system is to be applicable to essentially any kind of problem, a single unified approach to handling the data and information about problems is required. Thus one of the early developments of the Project was the concept of a technique for not only containing all of the data about a problem, but also showing all of the requisite interrelationships among the individual items of data in what is called a plex structure.
    Extract: Plex
    "Plex" is derived from the word "plexust" which has a dictionary meaning "an interwoven combination of parts in a structure; a network".
    A plex is considered to be composed of elements of various types, each type of element having a number of components appropriate to the object or relationship which the element represents. Components of elements may contain data in numerical or coded form, or pointers to other elements. In application, the objective is to model all of the pertinent information about a problem in an elaborate plex structure so that all of the data and relationships are explicitly shown. If this can be accomplished, then any processing algorithm can obtain any information it requires by suitable referencing of the elements in the plex structure. Figure 1 shows the modelling plex for a line in two-dimensional cartesian coordinate space. The elements contain type and name components, as well as pointers to show the end-point relationships, and places for storing the coordinate values. Any property of the line which is required, such as its length or its slope, may be computed by referencing the appropriate components in the elements of the modelling plex.


    The concept of plex structures is well suited to the requirements for providing a firm foundation for development of the Computer-Aided Design System, since it is general, powerful, and may be mechanized in a great many ways on computers, but for any actual problem, the plex structures which arise are so elaborate and complex as to be essentially incomprehensible to humans. Thus a mechanism is needed for automatically transforming the ideas which a human designer may have about problems into the intricacies of the modelling plex.
    The concept of plex actually involvee more than mere structure or form. There is no unique modelling plex for an object or a piece of problem in general. Instead the etructuring and choice of components is determined by the use which is to be made of the model. In other words - an inherent part of the concept of plex is the idea that processing algorithms will interpret the contents of the components and thereby ascl'ibe meaning or purpose to them. What the components represent depends very closely upon the algorithms which reference them.
    Of great importance are the algorithms which describe the process whereby individual elements are assembled to form a complicated plex.
    The vast complexity of a modelling plex never arises all at once, but instead is built up step-by-step by a process of accretion. The viewpoint is that special meta-properties are ascribed to the elements and these meta-properties control the behavior of algorithms which establish the step-by-step interconnection of elements to cause the growth of a large structure. The effect of individual elements being assembled by an algorithm into a large structure is as though the combination of the metaproperties and the algorithm gave behavioral properties to the elements themselves, so that the elements interact to form large structures in much the same way that chemical elements interact to form large molecules. In this short progress report we try to demonstrate how this abstract concept of plex as a mixture of structure and behavior can be applied to yield efficient and powerful mechanisms for solving the numerous problems involved in research on the Computer-Aided Design System. The technique has been applied within the Project in a great many places, but here we consider only the problems of verbal and graphical language and the compilation of efficient computer programs. Extract: Graphical Language
    Graphical Language
    It is of vital importance that the language facility for the Computer-Aided Design System include not only flexible descriptive and programming languages in word form, but a generalized capability for graphical communication as well. There are many aspects of design in almost any field, for which the natural means of expression is in terms of pictures or diagrams, and any attempt to convey equivalent information in verbal form would be extremely unnatural and awkward, and would defeat the basic principle that the designer-user be able to operate in a manner which is natural to him.
    The ESL Computer Applications Group has been active in the field of on-line man-machine systems for over 10 years (the first tracking program was written in late 1954 for the Whirlwind Computer), but the first complete subsystem for graphical communication was the Sketchpad program of Dr. I. E. Sutherland, written for the TX-2 Computer at Lincoln Laboratory, with NSF and Lincoln Laboratory support, in 1962. This program is one of the outstanding success stories in the field of computer applications, for it made the concept of graphical communication with a machine come alive in a very meaningful way to many thousands of people.
    Sketchpad and the plex concept which underlies the AED System share a common heritage. In late 1961 Sutherland had completed his first attempt at a light-pen drafting language, based upon the use of tables of points and lines, and push-button commands corresponding to standard drafting tools for drawing horizontal and vertical lines, slanted lines, circles, etc. At the same time the Project was independently beginning to apply the concepts of the Bootstrap Compiler to the consideration of graphical language and was beginning a study of a "Bootstrap picture language. At that time, the plex concept was thought of as almost purely structural, and although a preliminary version of the First-Pass Algorithm for programming languages of the Algol type had been devised in the preceding months, the strong relationship between interaction algorithms and structure was not then apparent. Still earlier, in 1960, the Project had carried out a "point-line diagram study" in order to gain experience with list processing techniques. This problem concerned techniques for constructing diagrams composed of points, lines, and angles, and imposing geometric constraints on the elements of the diagram in successive stages, as an example both of graphical language and as a model for the design process itself. The problem was carried out in the LISP system then being constructed by the MIT Artificial Intelligence Group and no attempt was made to drive the resulting programs with light-pen inputs. Instead the study provided impetus to the developments of the more general plex concepts, since it was felt that the storage and time expenditures inherent in attempting to model things entirely in terms of lists and trees wobld be impractical for a commercially feasible Computer -Aided Design System.
    In early 1962, then, the interaction between the beginning First- Pass Algorithm and the Bootstrap Picture Language led the Project to the generalizations which evolved into the Algorithmic Theory of Language itself, while Sutherland, influenced by the structural aspects of the plex concept of that time, pursued Sketchpad proper. The Bootstrap Picture Language study as such was discontinued in view of the success of Sutherland's efforts.
    With the successful on-line operation of the ESL Display Console on the Project MAC Computer, attention has now returned to the problem of providing graphical language capabilities on commercial equipment as a part of the Computer-Aided Design System. As a beginning the highly successful Sketchpad capability will be duplicated externally. The internal processing of the programs, however, will be almost entirely different from those used by Sutherland. Whereas Sketchpad was created on the TX-2 Computer through the considerable programming artistry of Sutherland using the TX -2 macro assembly system, graphical language for the AED System will be mechanized as a special application of the Algorithmic Theory of Language and plex concepts. Therefore, the original objective that there should be no distinction between verbal and pictorial language for the Computer -Aided Design System will be achieved.
    In order not to interfere with the compiler developments of the Project, and in order to obtain a simpler base of programs to work from, while at the same time providing an experiment in dynamic man-machine interaction in a time -sharing environment, a simplified miniaturized version of the over-all Computer-Aided Design System has been written.
    Although not yet officially christened, this little system will be referred to as AED Jr. in the following description of how it has been used to prepare a preliminary demonstration of Sketchpad capabilities within the over-all AED framework.
    AED Jr. consists of a master control program and a number of sub -programs for setting up the meta-properties of new vocabulary words, examining the vocabulary table entries, making corrections, running statements through the First-Pass Algorithm, and examining the syntactic structure in the form of the parsed tree, and checking the correctness of the precedence string which models the semantic structure of statements.
    All of these features are directly under the control of a simple command language which may be typed on the teletype, and included among these commands are commands to accept input statements from the light pen and push buttons of the ESL Display Console and to plot graphical statements on the console. In the following description characters printed by the system are in upper case and characters typed by the user are in lower case. We describe the features of the system by illustrating how a trivial language consisting of the words begin, -- end, and - fini may be inserted and tested, and then give some illustrations of the results of the more elaborate graphical language used for the May 6th demonstration.

          in [ACM] CACM 4(03) (March 1961) view details
  • Ross, Douglas T. and Feldmann, Clarence G. "Verbal and graphical language for the AED system: A progress report" pp7.1-7.26 view details
          in [ACM/IEEE] Proceedings of the SHARE design automation workshop 1964 view details
  • Tonge, Fred M. Review of Ross 1960 view details
          in ACM Computing Reviews 5(06) November-December 1964 view details
  • Ross, D T "The ODA string package" Project MAC MAC-M-273 MIT Cambridge Mass 1965 view details
          in ACM Computing Reviews 5(06) November-December 1964 view details
  • Gray, J. C. "Compound data structure for computer aided design" view details Extract: AED structures
    The AED string package
    AED (Algol Extended for Design), consists of the AED Processor (a generalized compiling system) which is driven by the AED Jr. language specifier, and a large collection of system packages, of which the generalized String Package is one. The String Package is concerried with the processing of strings of beads. A string is a general mechanism for associating (tying) together a number of beads which are said to be on the string. The fact that object B has a property A is represented by the fact that B is on the string A. The mechanization of a string is defined by the user.
    Possible string types include push-down stacks, queues, lists, hash-coded dictionaries and logarithmically searched tables, in addition to rings; for it is considered that, as the string is a mechanism for modelling a property of something, no single mechanization can give a string the optimum behaviour for all possible kinds of property.
    An individual string has just two properties:
    I. A means of specifying its type.
    2. A means of indicating the first bead on the string.
    In order to be on a string, a bead must possess:
    1. A Pointer mechanism.
    2. A value.
    A string type has five basic properties:
    1. A description of how to access the next bead.
    2. A description of how to access the value of a bead.
    3. A Search Function, which determines where on the string a given bead should go.
    4. A Copy function, which describes how to create, copy, or destroy individual beads.
    5. A master copy bead which is used together with the copy function as a generalized description of beads for this string type.
    The language for the String Package consists of calls to low-level subroutines such as Insert, Remove, Find (whether a bead is on a string or not), etc. The form of these calls is independent of the particular implementation of the string which the user has specified. It is also possible for the user to write his own routines for mechanizing the various required properties of string and types.
    One particular construction from the String Package is the ODA (Ordered Decrement and Address) String Package. Strings are ordered and form one-way rings. The ordering of the beads depends upon the "value" of each bead; a bead may exist on many strings and may have a different value for each string. Further, a bead may "start" many strings. This package has been used to build Symbol Tables for the AED system.
          in Proceedings A.C.M. National Meeting, 1967 view details