MIDAS(ID:439/mid002)

Digital simulation language 


for Modified Integration DAS (or Much Improved DAS!!)
Digital simulations language

Designed

Samson and Petersen, Wright-Patterson Air Force Base, Dayton, Ohio 1963

Rocketdyne, Canoga Park, Calif


Related languages
DAS => MIDAS   Augmentation of
MIDAS => ASIM   Influence
MIDAS => Blechman MIDAS   Augmentation of
MIDAS => CIDAS   Augmentation of
MIDAS => DISPLAYTRAN   Influence
MIDAS => GDC MIDAS   compiler for
MIDAS => MIDAS II   Evolution of
MIDAS => PACTOLUS   Influence

References:
  • Harnett, R. T., Sanson, F. J., and Warshawsky, L. M. "MIDAS - an analog approach to digital computation" pp17-43 view details
          in Simulation 3(3) September 1964 view details
  • Linebarger, R. N., and Brennan, R. D. "A survey of digital simulation: digital analog simulator programs" pp22-36 view details
          in Simulation 3(6) December 1964 view details
  • Sansom, F. J., Harnett, R. T., Petersen, H. E., and Warshawsky, L. M. "MIDAS programming guide" SET-TDR- 64-1, SECC, WPAFB, Jan. 1964. view details
          in Simulation 3(6) December 1964 view details
  • Sansom, Harnett, Warshawsky, "MIDAS - How It Works and How It's Worked" view details
    External link: Elements of MIDAS External link: Midas Elements - Switching External link: Midas Elements - Arbitrary functions External link: Midas Elements - Iterative External link: Midas Elements - Other External link: Midas Output - Case 1 External link: Midas Output - Case 2 External link: Midas Output - Case 3 Extract: Introduction
    Introduction
    The possibility of using a digital computer to obtain check solutions for the analog was recognized by many people at the dawn of our 15 year old history. Unfortunately several problems existed then, mainly at the digital end, which made this impracticable. Digital computers of that day were terribly slow, of small capacity and painfully primitive in their programming methods. It was usually the case when a digital check solution was sought for an incoming analog problem, that it was several months after the problem had been solved on the analog computer and the results turned over to the customer before the digital check solution made its appearance. The fact that the two solutions hardly ever agreed was another deterrent to the employment of this system. As we all know, digital computers have made tremendous strides in speed, capacity and programmability. In the area of programming ?and throughout this pa per - we're talking of scientific problems expressible as differential equations; the main effort has been in the construction of languages such as Fortran. Algol, etc. to permit entering the problem in a quasi-mathematical form, with the machine taking over the job of converting these to the individual serial elemental steps. While the progress along this line has been truly awe-inspiring to an analog man (usually all engineer), the resulting language has become quite foreign to him so that if he wishes to avail himself of the digital computer he must normally enjoy an interpreter in the form of a digital programmer (usually a mathematician). This means that he must describe his engineering problem in the required form, detail, and with sufficient technical insight to have the digital programmer develop a workable program on the first try. This doesn't happen very often and it is the consensus of opinion among computing facility managers that a major source of the difficulty lies in the fact that the engineer does not always realize the full mathematical implications of his problem. For example, ill specifying that a displacement is limited, he might not state what happens to the velocity. This can lead to all sorts of errors as an analog programmer would know. It is, of course, possible for an analog programmer to learn to program a digital computer by studying Fortran. This has been attempted here at Wright-Patterson AF Base with little success, mainly because, unless used very often, the knowledge is lost so that each time a considerable relearning period is required. Some computing facilities have even embarked on cross-training programs so that each type of programmer knows the other's methods. While this has much to 1,ecommend it, it is often impracticable.
    In March of 1963, Mr. Roger Gaskill of Martin-Orlando explained to us the operation of DAS (Digital Analog Simulator), a block diagram type of digital program which he intended for use by control system engineers who did not have ready access to an analog computer. We immediately recognized in this type of program the possibility of achieving our long-sought goal of a means to obtain digital check solutions to our analog problems by having the analog programmer program the digital computer himself! We found that our analog engineers became quite proficient in the use of DAS after about one hour's training and were obtaining digital solutions that checked those of the analog.
    At this point several limitations of this entire method should be acknowledged. First, the idea that obtaining agreement between the digital and analog solutions is very worthwhile is based mainly on an intuitive approach. After all both solutions could be wrong since the same programming error could be made in both. Secondly, the validity of the mathematical model is not checked, merely the computed solution. Finally, it might be argued that the necessity of the analog man communicating the problem to his digital counterpart has the value of making him think clearly and organize his work well. This is lost if he programs the digital computer himself. In spite of these limitations we thought it wise to pursue this idea.
    Although DAS triggered our activity in the field of analog-type digital programs, several others preceded it. A partial list of these and other such programs would include:
    DEPI     California Institute of Technology
    DYSAC    University of Wisconsin
    DIDAS    Lockheed-Georgia
    PARTNER  Honeywell Aeronautical Division
    DYNASAR  General Electric, Jet Engine Division

    Almost all of these - with the possible exception of PARTNER (Proof of Analog Results Through a Numerical Equivalent Routine) - had as their prime purpose the avoidance of the analog computer. They merely wished to borrow the beautifully simple programming techniques of the electronic differential analyzer and apply them to the digital computer.
    While DAS proved to be very useful to us, certain basic modifications were felt to be necessary to tailor it better to our needs. Principal among these modifications was a rather sophisticated integration routine to replace the simple fixed interval rectangular type of DAS. Other important changes were made but the change in the integration scheme and our wish to acknowledge our debt to DAS, led us to the choice of the name MIDAS, an acronym meaning Modified Integration Digital Analog Simulator. In this paper a brief description of the method of using MIDAS will be given, followed by a summary of our experience in using it in a large analog facility for about 18 months.
    Extract: How MIDAS Has Worked
    How MIDAS Has Worked
    In the following paragraphs, a brief summary of the experiences of the Wright-Patterson AF Base Computation Facility in the use of MIDAS will be given. Actually, at this writing, approximately 100 computing facilities throughout the U.S. are using MIDAS; thus only a small segment of the total experience can be reported on.
    The Analog Computation facility at Wright-Patterson has used MIDAS in almost every problem submitted for solution on its large analog computer. Generally the MIDAS solution is attempted prior to the analog in order to achieve the maximum benefits as regards scaling. Another side benefit of MIDAS has been the calculation of Problem Check values. It has been found in many cases that the extra time involved in programming a MIDAS check is saved in checkout time on the analog computer. The increased confidence in the validity of the solutions when a check between MIDAS and the analog solution is obtained is the most important benefit of the program. Another side benefit is the broadened horizons achieved by the analog programmers in giving them the ability to program the digital computer. This should be very valuable when hybrid computers come into their own. Until now the problem of finding people with the required capability in both areas has proven to be the greatest deterrent to the growth of these new devices.
    While everything mentioned above is on the positive side, there are quite a few aspects of MIDAS that are annoying and time consuming. One thing that the analog programmer learns is that the digital computer brooks no mistakes. If a "zero" is punched when the letter "0" is required, the problem comes back  - generally the following day - with a diagnostic telling him of an undefined symbol. A little thing like a missing decimal point in numerical data will cause a day to be lost. Another thing that an analog programmer encounters is that when an error exists in a MIDAS program (however not of the type to prevent its running) , the solutions look just as good (as many significant figures of output) as they would if the solution were perfect. On the analog computer errors of the same type would cause overload lights to flash, etc.
    The very sophisticated integration routine of MIDAS introduces problems at times. For example,  discontinuities  in  derivatives  some- times make it impossible for the error criterion to be met even though the increment of the independent variable is halved many times. This will cause a solution to "hang up." Provision has been made to overcome this problem by the use of MININT (see Table I) but it usually requires one or more unsatisfactory runs before the programmer is made aware of the difficulty.
    One rather interesting discovery was the fact that an operation that was very easy to perform on an analog computer was very bothersome on the digital. Specifically, a rather large missile simulation was performed first on the analog computer and later using MIDAS. Quite a few first order lags were present in  the  mathematical   model   in   the  form   of 1/T(S+1) On the analog computer this offers no problem. For small values of r one way to handle this to parallel the feedback resistor of a summer with a capacitor of r microfarads. In fact, far from creating a difficulty, it generally is beneficial to the analog simulation by reducing some of the high frequency "noise." Using MIDAS, small values of T can cause considerable increase in solution time. For example, in this particular problem, when such transfer functions with  r of ,001  secs.  were included, the solution time was extrapolated to be 5 1/2 hours for 26 seconds of problem time. This was reduced to 1 1/2 minutes for the same length of problem time, simply by neglecting these small delays, and the effect on the results was insignificant. Incidentally, the analog solution was in "real time," i.e., 26 seconds. The subject of solution time is rather important to a digital programmer. We have attempted to gather data on the relative speed of a MIDAS run compared with a Fortran program produced by a skilled programmer. With the conditions of the test equalized, the solution time of the Fortran program was approximately half as long; however, the programming time for MIDAS was much less. The question of solution time is not very important for the typical problem handled with MIDAS because usually we are interested in one or two runs, so whether they take 3 minutes or 5 minutes each is of academic interest only.
    There have been a few problems handled by MIDAS alone without recourse to the analog computer. In these cases, program efficiency was of considerable importance since many runs were required. Here, in the present stage of the development of MIDAS, a specially tailored digital program should receive serious consideration.
    At this point the question should be considered of whether MIDAS or a similar digital computer program will take over the role of the analog computer in the areas where the latter shines. Since a MIDAS-type program has appropriated one of the best features of the analog computer, viz., simple block diagram programming and the speed and capacity of digital computers have developed so much. there is certainly reason to consider this question.
    While anyone would he foolhardy to give an answer to hold for all time, it is our opinion that MIDAS, rather than threatening the existence of analog computers, has reinforced their position by increasing confidence in their output. There are quite a few advantages to the use of an analog computer which MIDAS doesn't touch.    Among these are:
    (1) The intimate relationship between the engineer and his problem which enables him to design his system by observing typical outputs and changing parameters as required.
    (2)   The ability to tie in physical hardware to the mathematical simulation.
    (3)   The ability to use portions of the computer in direct relationship to the size of the problem
    (4)   The fact that certain mathematical operations are performed better, e.g., integration.
    (5)   The very fact that it is a distinctly different technique of solution, thus making possible a checking means.
    While some progress has been and is being achieved in items 1, 2, 3 and 4, item 5 will always remain. Extract: How MIDAS Works
    How MIDAS Works
    To a large degree, programming in MIDAS closely resembles the methods used in DAS and, therefore, an analog computer. There are usually three steps we go through in obtaining a solution. First we prepare a block diagram very similar to an analog schematic indicating the operational elements required to solve the problem. Next we prepare a listing which is our means of directing the punching of the cards, one for each line. This listing indicates the source of the inputs to each element and defines the values of the required numerical data. After the cards have been punched and checked they are turned in to our IBM 7094 operations group where the information is placed on magnetic tape and this tape, along with the MIDAS subroutine, is used to solve our particular problem. The results are given to us on printed form according to a rather fixed format.
    As an illustration of the steps involved in preparing a MIDAS program, let us set up the classical second-order linear differential equation for the mass, spring and damper system.
    The equation is:
    Mx+ Bx + Kx = 0              (1)
    with initial conditions:
    x(0)   = A x(0)   = 0
    The MIDAS block diagram for this equation is shown In Figure 1. The following points should be noted:
    (1)   S1 is a summer which adds the quantities  -Bx and -Kx to yield MY in accordance with equation 1.
    (2)   Dl is a divider whose dividend is Mx (the output of S1) and whose divisor is a constant called M. Its output is then +x,
    (3)   I1 is an integrator whose input is +x' and output is +x.    Unlike the case of analog integrators and summers, there is no change of sign in the equivalent MIDAS elements. Since no initial value is specified the output of I1 will start at zero.
    (4)   12 .i~ another integrator whose input is +x and whose output is +x. The initial value of x is indicated by the dashed line extra input to 12.
    (5)   M1 an; M2 are multipliers which multiply +x by  - B and +x by  - K to provide the required inputs to S1.    Unlike on analog computers the same type of multiplier   is   used   whether   two   constants, a variable and a constant, or two variables are being multiplied.
    (6)   FIN is a finish element.    This element will stop computation when its A input (in this case t) equals or exceeds its R input (in this case the quantity named STOP).    Computation can be caused to halt by any of several  conditions.    A FIN box is required for each termination criterion.
    (7)   When numerical data corresponding to M, B, K, STOP and x(0) are furnished, the problem is completely specified.   No scaling will be required since numerical values ranging between  lo-" and 10*" can be handled.
    Next the listing is prepared.    It will contain the following information:
    (1)   One card identifying the problem.
    (2)   A  few  cards calling out the  MIDAS program.
    (3)   Cards  giving  names  to  the  constants and parameters of the problem, including   integrators   with   non-zero   initial values  (up to 6 per card).
    (4)   One card for each RfIUAS element in the  block   diagram,   identifying   it   by type  and  number,   and   indicating  the source of  its  inputs   (for  example  S2 meaning summer number 2).
    (5)   At least one FIN card specifying a co11dition for finishing a run.
    (6)   One or more HUR cards and RO cards specifying   the   header   names   to   be placed on top of the columns of output data to be read out at specified increments of the independent variable.
    (7)   An END card indicating the end of the symbolic program and the start of numerical data.
    (8)   One or more cards assigning numerical value to the constants, parameters and initial conditions named in  (3)  above.
    (9)   Cards  defining  arbitrary  functions,  if any.
    An example of a listing is shown in Figure 2 for the mass, spring, and damper system.
    Note the use of a comment card by the programmer to identify the problem. Also of significance is the columnar location of various types of entries. For example, comment cards have their first letter in column 1. Operational elements, constant and parameter naming cards, HDR and RO cards all have their first character in column 7. Inputs to these elements are listed starting in column 15. Numerical data is listed starting in columns 1, 11, ... 51.
    It should be pointed out that in MIDAS, the programmer need not concern himself with the order in which he prepares the listing since a built-in sorting routine will automatically line up the program properly. This is another important difference from MIDAS' predecessor, DAS.
    The particular listing shown will result in three runs being made, each starting with x(0) =20 and terminating when t = 6. The mass M will have a value of 10 for each case since M was named on a constant card. The three runs will have the following values of  - B and  - K, each of which was specified as a parameter.
    Run 1 -B=--2.5 , -K = -8.6
    Run 2 -B = -3.2 ,  -K = -8.6 Run 3 -B = -2.5 , -K = l5.0
    Finally a portion of the printed output of the IBM 7094 is shown in Figure 3. Several points are worthy of note.
    (1) The printout of the problem listing including the data for Case 1. Actually some machine mapping and storage information precedes this but has been omitted for clarity.
    (2) The format of the output. Note the headers and the spacing of the four columns of output. Provision exists for six columns but only four components were specified to be read out in this simple problem.
    (3) The MAXIMA-MINIMA table. This feature, unique to MIDAS, provides the analog programmer with all the information needed to scale his analog schematic, both in amplitude and time. It shows the maximum and minimum values achieved by every component during the course of a run, whether these values occurred at read out intervals or not.
    (4) The printout of the parameter and IC data for Cases 2 and 3, followed by their output.
    (5) The job accounting summary. The three cases took a total of 44 seconds.
    This completes the description of this problem. Although considerable detail has been presented, in retrospect it can be seen that the main idea was simple. An analog-type block diagram was drawn and a listing prepared describing its interconnections. Information providing   numerical   data   was   also   furnished.
    This was then converted to punched cards, turned in to the 7094 operators who subsequently supplied the printed output.
    Extract: Integration System in MIDAS
    Integration System in MIDAS
    The integrations in MIDAS are performed by a variable-step, fifth-order, predict-correct integration routine.' This variable-step feature represents the basic departure of MIDAS from its predecessor, DAS. It relieves the programmer from the chore of having to specify a fixed increment of the independent variable, an increment which must be small enough to handle the highest frequency phenomena in a problem but not so small as to cause inordinately long solution times. The step size in the MIDAS integration routine adjusts itself to meet a certain error criterion, a factor which allows it to take large steps for those portions of the solution "when not much is happening" and small steps for those portions when one or more variables are changing at rapid rates.
    The net result is that time-scaling, as the analog programmer knows it, is eliminated in MIDAS. However, he must still face the time scaling problem when he prepares his analog schematic, especially when certain variables in the problem drive narrow bandwidth analog components such as servo-multipliers, X-Y plotters, etc. MIDAS helps him here, though, because he can observe the maximum values of the derivatives of these variables from the MAXIMA-MINIMA list and he can then make any necessary time base changes. Fortunately, for every variable appearing at the output of a MIDAS integrator, its derivative must appear at the output of the element feeding the integrator since integrators can accept only a single input.
    Miscellaneous Information on MIDAS
    The MIDAS program has limitations on the number and characteristics of certain components.   This information may be of value when a very large problem is to be solved on MIDAS.
    Maximum Item                          Number
    1.   Operational  Elements                       750
    2.   Symbols   (operational elements, constants, and header names)       1000
    3.   Integrators                                 100
    4.    Function Generators                        40
    5.   Points  for  each  function  generator      50
    6.   Inputs for each summer                       6
    Extract: The future of MIDAS and MIMIC
    Future of MIDAS
    Although MIDAS has proven to be very effective in accomplishing its purpose, certain improvements could be made without materially changing its simple programming rules. Among such improvements would be the following:
    (1) Increased efficiency, i.e., shorter solution times without losing programming simplicity.
    (2) Additional flexibility in naming outputs.
    (3) Permit the use of fixed point literals in the body of the program
    (4) A greatly expanded operation list that would include logical operations such as AND, OR, NOT, etc. and others equivalent to the elements found in a hybrid computer.
    A new program is being developed at Wright-Patterson AF Base which already includes the improvements listed above. In addition, it is anticipated that the following features will be included:
    (1) Ability to add new functions external to the basic program.
    (2) Additional controls that would
    (a) Allow the results of one run to dictate automatically the conditions for the next.
    (b) Permit more "hands on" control of operation of the program as advocated by Mr. R. Brennan in his PACTOLUS program.
    It is further hoped that an investigation of various integration routines will result in an integration system that will automatically account for discontinuities and thus prevent the solution from "hanging up."
    The new program, MIMIC, is completely different from MIDAS in concept but it retains the programming ease of MIDAS. It will be written as a system to operate under IBJOB control on an IBM 7090/7094 computer.
    It is an assembler type program that generates machine language code equivalent to the original problem. The instruction format is very similar to MIDAS but has been designed to appeal to both analog and digital programmers. If and when this occurs and both analog and digital programmers employ MIMIC regularly, a very significant first step in breaking down the communications harrier between the two will have been taken since they will, for the first time, be speaking the same language. Furthermore, just as MIDAS has made the digital computer accessible to the analog man, this new program might serve to educate the digital programmer in analog methods. The day of the omniscient, triple-threat programmer might be on the way!

          in [AFIPS JCC 26] Proceedings of the 1964 Fall Joint Computer Conference FJCC 1964 view details
  • Burgin, George H. "Function generation on an analog computer using generalized Laguerre functions" view details
          in Simulation 4(03) March 1965 view details
  • Dames, R. T. review of Burgin 1965 (MIDAS) view details Abstract: This article considers the approximation of functions of time by a series of Laguerre functions, and the generation of corresponding function values on an analog computer. The analog implementation is based on the Laplace transform of an appropriate orthogonal expansion. A numerical example illustrating the technique is presented. The solution is obtained simulating the analog network on the enlarged version of MIDAS -- an all-digital simulation program.

    The approximation technique and implementation procedure are theoretically interesting, but their practical value in analog simulation is somewhat questionable. Although the MIDAS results for the numerical example are encouraging, it is not clear that the analog implementation would produce comparable results with respect to accuracy. The author appears to have verified only that orthogonal expansions do indeed approximate appropriate arbitrary functions quite well, if the related computations are performed digitally. This well-written paper is a strong proponent for all digital simulation.

    Santa Monica, Calif

          in ACM Computing Reviews 6(05) September-October 1965 view details
  • Blechman , G. E. "Further developments in the handling of implicit functions" pp14-15. view details
          in Simulation 6(1) January 1966 view details
  • Fahidy, T. Z.; and Perlmutter, D. D. "The application of the MIDAS digital simulator to the study of kinetic alternatives in a chemical reaction system" pp192-196 view details
          in Simulation 6(03) March 1966 view details
  • Fisher, D. D. review of Sansom et al 1964 view details Abstract: MIDAS is a program to simulate an analog computer on a digital computer (IBM 7090). Integrations are performed by a variable step, fifth-order, predictor/corrector integration routine. The variable step feature allows one to use the maximum step size which is consistent with a predetermined error bound. Models are set up in block diagram fashion from which one writes an equivalent MIDAS program.

    In general, the set up time is less than on an analog computer, so there is an advantage to programming single shot jobs in MIDAS. If many runs are to be made with different parameter settings, it still may be worthwhile to set up the problem in MIDAS in order to determine scaling requirements and proper model definition, with the subsequent production runs being made on an analog computer. MIDAS provides for a maximum of 700 operational elements, 100 integrators, 40 function generators of 50 points each, with 6 inputs allowed to each summer.
          in ACM Computing Reviews 7(02) March-April 1966 view details
  • Foxman, E. review of Fahidy and Perlmutter 1966 view details Abstract: The editors of Simulation have offered this report as an illustration of the use of a digital- simulation program by someone other than the language developer. The authors were led to MIDAS (instead of using a conventional analog computer) because they required the generation of a complex forcing function. Another reason was that they wanted to investigate several alternatives to the chemical system model. Apparently, MIDAS did produce results of chemical significance and, from the computational viewpoint, the authors conclude that the MIDAS technique "support strongly the application of digital simulation whenever a straightforward analog approach is impractical and a conventional digital technique is too complicated."


          in ACM Computing Reviews 7(05) September-October 1966 view details
  • Franks, R. G. E.; and Schiesser, W. E. "The evolution of digital simulation programs" Paper for 59th Annual American Institute of Chemical Engineers meeting Detroit (Dec. 1966). view details Abstract: The parallel historic development of analog and digital simulation is reviewed, and the principal features of each approach are illustrated through a common example. The digital simulation programs considered in detail are written in FORTRAN, MIDAS, and MIMIC; programming requirements for each are emphasized. The paper concludes with a list of recent applications of digital simulation in chemical engineering and a prognostication of future developments.

          in ACM Computing Reviews 7(05) September-October 1966 view details
  • Karplus review of Harnett et al 1964 view details Abstract: One of the significant advantages of analog computers over digital computers in the simulation of engineering systems is that analog programs are block-diagram or problem-oriented. This greatly facilitates the comprehension of the programming process by the engineer/user and permits greater insight into system behavior. By contrast, a digital computer program usually represents a more esoteric mathematical reformulation of the simultaneous differential equations governing the system. To overcome this disadvantage, well over twenty digital compiler, interpreter and assembler programs have been introduced in recent years. These include commands which make available a fixed though very large number of "analog elements," to be "interconnected" as required. Of all of these programs MIDAS (Modified - Integration - Digital - Analog - Simulator) described in this paper has found the widest acceptance. The success of this program is due in no small part to the diligence of the developers at Wright-Patterson Air Force Base, in publicizing their work and in making their tapes available to hundreds of computing centers. The present paper reflects this attitude. It represents a complete yet highly readable summary of the method of preparing block diagrams, of utilizing the available commands, of the insertion of constants, parameters, and initial conditions as well as of utilization of a number of sophisticated programming aids. Several useful illustrative examples are included in the paper. The presentation is so lucid that this paper may well serve as a model for other authors preparing reports in this general area.

    Developed originally to provide digital check-solution' for analog programs, MIDAS is now used by a number of major facilities for routine simulation work. Though in general slow and uneconomic compared to analog computers, digital simulators provide a great amount of flexibility as well as relative freedom from scaling difficulties inherent in analog programs. It should be recognized that MIDAS marks only one step, though an enormously important one, in the development of digital simulators. Indeed the direct successor to MIDAS, the MIMIC assembler is already available. Nonetheless the present paper should be read by all engineers engaged in simulation activities.
          in ACM Computing Reviews 7(05) September-October 1966 view details
  • Karplus, W.J. review of Blechman 1966 view details Abstract: This paper provides further details in the application of the MIDAS Digital Computer Program for simulating analog computer set-ups. It is intended to provide a continuation of the author's paper in Simulation 3(4) (October 1964). The present paper concerns techniques of programming implicit functions so as to minimize instability and convergence difficulties. Two different techniques are presented and briefly discussed.

          in ACM Computing Reviews 7(03) May-June 1966 view details
  • Lubin, John Francis and Teichroew, Daniel "Computer simulation—discussion of the technique and comparison of languages" pp723-741 view details
          in [ACM] CACM 9(10) October 1966 view details
  • White, G. M. T. "Digital simulation languages for the solution of process control problems" view details
          in Proceedings of the IBM scientific computing symposium on digital simulation of continuous systems 1965 view details
  • Franks, Roger G. E. Mathematical modeling in chemical engineering. John Wiley & Sons, New York, 1967 view details
          in Proceedings of the IBM scientific computing symposium on digital simulation of continuous systems 1965 view details
  • Gagliano, F.; Thombs, H. W.; Cornish, R. E : "Interactive graphics in data processing: a conversational-display capability" view details Abstract: This paper discusses a system called DISPLAYTRAN that interpretively executes FORTRAN statements entered at a display console, allowing graphics users to perform unanticipated computations and to more easily debug graphics application programs. The relationships among the operating system, the display terminal, and the computing system are discussed, and the major components of this system are described. A command language, the FORTRAN IV subset, and the graphics language provided for users are presented. Internal operation of the graphic facility is outlined. External link: Copy at IBM online Extract: Introduction
    Programming implies anticipating all conditions that may arise in the course of solving a problem. Unfortunately, not all problem solving lends itself to this tidy approach. In many cases, each successive step can only be planned after the succeeding step has been completed. Thus, effective use of graphics devices for interactive problem solving requires some means for requesting that a data processing system perform functions not anticipated at the beginning of the problem-solving process. This fundamental problem has been attacked in various ways. For example, one system provides for a library of previously compiled computation modules that can be called by the display console operator as needed. However, that approach assumes that the needed computation modules exist.
    The system discussed here interprets and executes FORTRAN statements as they are entered from the display console. For example, if a console operator, after seeing a display of a geometric figure on the screen, decides that he would like to perform an unanticipated computation, he can do so without a separate compilation run. He simply enters FORTRAN statements at the display console, which are interpreted in real time and then executed.
    Interpretive FORTRAN execution also ameliorates the problem of debugging for graphics programmers. Syntax errors are revealed as soon as the system attempts to interpret each statement. Also, errors in logic can be corrected more easily because the console operator can stop execution at any point he desires. These facilities are provided for the graphics as well as the computational portions of application programs.
    The system discussed here is called DISPLAYTRAN, which takes its name by analogy from QUIKTRAN. Like QUIKTRAN, DISPLAYTRAN provides interpretive FORTRAN execution for interactive problem solving. Many of the capabilities of DISPLAYTRAN are useful for graphics applications, although the system is not designed exclusively for graphics jobs. Graphics and other jobs can be entered directly from the console, and batch processing can be done concurrently in a background partition of main storage. The system provides time slicing for jobs done at the display console. Generalpurpose graphics subroutines are supplied for FORTRAN programmers, and can be called from a program being constructed at the display console.
    DISPLAYTRAN is one result of studies undertaken jointly by the International Business Machines Corporation and the U. S. Naval Weapons Laboratory.
    The first part of the following discussion deals with the overall relationships among the display terminal, the computer configuration, and the operating system. The remainder of the paper emphasizes the languages provided, which include a command language, the FORTRAN IV subset, and the graphics language. Also, the manner in which the console operator can call and execute previously compiled subprograms is discussed briefly. Extract: Summary comment
    Summary comment
    Begun as an exploratory development in 1964, DISPLAYTRAN has proved itself in operation, and it is continuing to be improved especially in the areas of performance and capability. Being added is the preloading of symbolic programs from a card reader.
    For the Naval Weapons Laboratory, which is mainly FORTRAN IV-oriented, the system provides means for efficient FORTRAN program writing, debugging, and maintaining. Graphic displays aid programmers, engineers, and scientists according to their needs.
    DISPLAYTRAN is a nondedicated system and is compatible with It is possible to modify DISPLAYTRAN to become a production tool instead of an experimental facility. Additional capabilities could be incorporated as well as means for supporting other types of terminals that might be needed in a time-sharing environment.
    The fact that DISPLAYTRAN is capable of producing useful work makes it desirable to further exploit this system.
          in IBM Systems Journal, 7(3 and 4) 1968 view details
  • Chu, Yaohan "Digital Simulation of Continuous Systems" McGraw Hill NY 1969 view details Extract: MIDAS
    Harnett, Sansom, and Warshawsky [13], inspired by the work of DAS, developed in 1963 at Wright-Patterson Air Force Base an improved version of DAS, which was called MIDAS (Modified Integration Digital Analog Simulator). The simulator was written by Petersen [14]. MIDAS sparked acceptance by hundreds of large computer installations and met with an unprecedented success, which may be attributed to the following reasons. First, analog-computer users were looking for a simple way to obtain checking solutions for analog simulation and to determine optimum amplitude and time scalings. Second, the MIDAS simulator provides many useful features, including arbitrary function generation of single variable, an implicit function to handle algebraic loops, automatic sorting to ease the programming, and a variable-step fifth-order predictor-corrector for integration. The variable-step feature allows the step size in the MIDAS integration routine to adjust itself and thus relieves the programmer from the chore of time scaling, except for a few cases. This feature represents the basic departure of MIDAS from its predecessor, DAS. Third, MIDAS was written for the IBM 7090 family of computers, which was the most popular large-scale digital computer of the period. Thus, with the arrival of MIDAS, digital analog simulation reached a climax. One might add that Selfridge's dream came true. MIDAS was an interpreter; a compiler version was reported by Burgin [30] in 1966.
    The outstanding success of MIDAS spurred a series of new developments during the succeeding years. Digital-computer manufacturers, who up to that time had paid little attention to this application of digital computers, now realized the market potential of digital analog simulation. Since then, some have offered software for their digital computers, while one has marketed an integrated system for the digital analog simulation. IBM sponsored a scientific computing symposium on digital simulation of continuous systems in June, 1966 [37].
          in IBM Systems Journal, 7(3 and 4) 1968 view details
  • Naphtali, L. M. review of Franks 1967 (MIDAS) view details Abstract: This is a textbook for chemical engineers, introducing on an elementary level techniques for constructing mathematical models of process systems. The book is oriented toward analog computing with the use of analog simulation programs such as MIDAS. This book is geared to the technical level of first year graduate students of chemical engineering.

          in ACM Computing Reviews 10(07) July 1969 view details
  • Sammet, Jean E. "Computer Languages - Principles and History" Englewood Cliffs, N.J. Prentice-Hall 1969. p.627. view details
          in ACM Computing Reviews 10(07) July 1969 view details
  • Thames, Joe M. Jr.: "SLANG, a problem solving language for continuous mode simulation and optimization" view details Abstract: SLANG is a mathematical problem modeling and solution language. It is one of several languages in the programming subsystem of the Computer User Executive (CUE) System developed by TRW Systems. SLANG is both a procedural and a command language designed primarily for the ?casual? user. Consequently, much attention was paid to programming ease, ?natural? syntax rules, readability, and debugging ease. On the other hand, SLANG is designed to permit the solution of very sophisticated mathematical problems, characterized by iterative solution methods. Its translated object code therefore contains complex numerical solution logic in addition to the object code of its procedural syntax. Extract: Introduction
    SLANG is a mathematical problem modeling and solution language. It is one of several languages in the programming subsystem of the Computer User Executive (CUE) System developed by TRW Systems. SLANG is both a procedural and a command language designed primarily for the "casual" user. Consequently, much attention was paid to programming ease, "natural" syntax rules, readability, and debugging ease. On the other hand, SLANG is designed to permit the solution of very sophisticated mathematical problems, characterized by iteratlve solution methods. Its translated object code therefore contains complex numerical solution logic in addition to the object code of its procedural syntax.
    The solution logic is generated by the presence of language commands such as "SOLVE" for the solution of simultaneous nonlinear algebraic equations; and "MINIMIZE" for finding the minimum of a function of several variables. For iterative methods, like both of the above, the compiled code will compute partial derivatives from the procedural formulas, of the objective function and/or constraints with respect to designated independent variables, as needed by the solution algorithm.
    In addition to the above features, SLANG is user-extenslble. The user may program macro operators using a SLANG macro facility; or he may program relocatable SLANG or Fortran subroutines, and may define calling statement syntax for either macros or subroutines using a syntax macro processor. Thus SLANG may be augmented and tailored to fit individual user needs.
    Extract: Language Philosophy
    Language Philosophy
    A major indication of the simplicity and "naturalness" of a programming language is its readability. To be easily read, it must conform largely to the structural rules of ordinary written English. First of all, there is a single main thought stream of written text from which all digressions are temporary and which always resumes at a point immediately subse~u~ntto the digression. Footnotes, and asides, have this character in English, as subroutines and macros do in programming languages. Secondly, in English there is no counterpart to the direct (non-return) transfer; consequently, its extensive use in programming language leads to reading difficulty. SLANG syntax is designed so that direct transfers are largely unnecessary, although transfer statements are provided. In keeping with the pattern of digression with subsequent resumption, SLANG statements which "open" the main thought stream (e.g. conditional statements and cycling statements) have associated "closing" keywords, such as REJOIN, which resume it again.
    SLANG statements are free field, allowing ample use of indentation; and SLANG operators are free of unnecessary delimiters; but blanks, as in English, may have significance as separators. The use of subordination through indentation and the use of statement keywords as group lahels permits complex logical constructions to be easily coded or read.
    Extract: Problem Solving Features
    Problem Solving Features
    Problem Model Structure
    Mathematical models, in general, are composed of a set of independent variables, a set of dependent variables, and the functions, explicit or implicit, that relate them. Problems may be characterized as direct or indirect, pertaining to Whether the unknowns of the problem are dependent variables or independent variables, respectively. The correspondence may be extended to solution methods, which involve direct computations or iterative (indirect) computations. Of course, compound models may be a mixture of direct and indirect problems, thus calling for a mixture of direct and iterative solution computations. Procedural languages generally do not provide built-in methods for solving indirect problems, or even complex direct problems. They only provide procedural statements that can be used to construct algorithms for solving such problems.
    Direct Methods
    Procedural languages do provide built-in features for treating the simplest direct problems: automatic parsing for arithmetic replacement formulas; function s~oprograms for single-unknown multi-formula functions; and procedure subprogr~s for multi-unknown, multi-formula functions. All of these features serve to simplify the solution of direct problems because they implicitly handle the bothersome "mechanical" tasks which the user takes for granted, and they permit large problems to be treated as a group of individual smaller problems. However, for direct problems which involve secondary computations (e.g. numerical integration), procedural languages provide no built-in methods because such methods require intervening execution of selected parts of a problem model, and therefore must control the flow of the program. This has given rise to a number of simulation languages such as DSL/90, CSSL, and CSMP which are structurally compatible with the solution process of numerical integration in addition to having procedural capabilities.
    Iterative Methods
    Strictly procedural languages offer little capability for indirect problem solving because not only do such problems require secondary computations, i.e. partial derivatives, but to be foolproof such quantities should be computed from exact rather than approximate formulas. This requires that the language processor derive the secondary computation logic from the structure of the algebraic formulas in the model.
    The simplest class of such problems, although far from simple, is the solution of a determined set of nonlinear algebraic equations:
    gl (XI, X 2 ... X n) = 0
    g2 (XI, X 2 ... Xn) = 0
    gn (XI' X2 ... X n) = 0
    Such a system is said to have zero degrees of freedom because the number of unknowns X (independent variables) equals the number of equality constraints g (dependent variables). [...]
    Problems which have more unknowns than equality constraints, i.e. problems with one or more degrees of freedom are optimization problems, because no longer are there a finite number of solutions; and meaningful solutions can only be obtained by imposing criteria which fix the values of the independent variables as well as satisfy the constraints. [...]
    A cormmon requirement for a general capability for optimization and nonlinear equation solving is a mechanism for computing partial derivatives with respect to designated independent variables. Such a mechanism is a primary feature of SLANG. It permits complex indirect problems to be solved with equivalent ease of numerical integration.
    Extract: Command Structures
    Command Structures
    SLANG's built-in problem solving capabilities are implemented by the user through statement groups called command structures. Statements which make up command structures are of three types: commands, command specifications and command declarations. A command structure is a specific sequence of such statements which specifies and executes the solution of a complete mathematical problem? Composite SLANG programs may therefore contain several command structures, one for each complex problem in the makeup of the overall program.
    Command specifications are used to select and initialize numerical algorithms from the SLANG method library. Currently SLANG contains three specifications, INTEGRATION, OPTIMIZATION and CONTROLS
    ? Commands are SLANG statements that invoke the execution of algorithms which have been previously selected and initialized by the appropriate specification. The primary SLANG commands are: INTEGRATE, OPTIMIZE, MAXIMIZE, MINIMIZE, STEP OPTIMIZE, STEP MINIMIZE, STEP MAXIMIZE, PARTIALS, FIRST PARTIALS, NO PARTIALS, and SOLVE. Command declarations are used to identify variables that have special significance in a given command structure (e.g. independent variables)
    ? The primary declarations are INDEPENDENT(S), CONSTRAINT( S), and LAMBDA(S). Associated with every command structure there is a group of formulas which comprise the mathematical problem to be solved
    ? This group of formulas is called the command-model. It may be coded immediately within the command structure or may reside in SLANG subprograms which are executed within the command structure?

          in Proceedings of the twenty-fourth ACM national conference August 1969 view details
  • "Digital Simulation Program for the 7094 System (MIDAS)" p27 view details Abstract: MIDAS, modified integration digital analog simulation, is a digital computer program that accepts a block diagram description of a system or equations and provides time- oriented solutions. The program was originally intended as a check for analog computer solutions of equations. This version includes Stromberg-Carlson 4020 plotting capability suitable for report presentation. In addition, certain elements are provided that are not easily obtained from the analog computer for extended solution capability. Input consists of a job card for each run, block diagram description cards, number data cards, and plotting control cards. Output consists of a listing, sorted listing, data listing, printed output at each time increment, maximum-minimum information, and SC 4020 plotted graphs. A binary punched card deck of the translated wiring diagram is also provided and can be used for subsequent jobs with the same structure

          in Computer Program Abstracts Cumulative Issue July 15, 1969 -- July 15, 1971 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 153 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

    [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
          in Computer Program Abstracts Cumulative Issue July 15, 1969 -- July 15, 1971 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 174 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 382 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Karayanakis, Nicholas "Computer-Assisted Simulation of Dynamic Systems with Block Diagram Languages" CRC Press 1993 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • DIGITAL SIMULATION PROGRAM FOR THE SYSTEM 360 (MIDAS) view details Abstract: The MIDAS, Modified Integration Digital Analog Simulation, program was improved. It is a digital program that accepts a block diagram description of a system or equations and provides time-oriented solutions. The program was originally intended as a check for analog computer solutions of equations. This version includes Stromberg-Carlson 4020 plotting capability suitable for report presentation In addition, certain elements are provided that are not easily obtained from the analog computer for extended solution capability. Input to MIDAS consists of a job card for each run, and block diagram description, number data, and plotting control cards. Output consists of a listing, sorted listing, data listing, printed output at each time increment, maximum-minimum information, and SC 4020 plotted graphs. A binary punched card deck of the translated wiring diagram is also provided, and can be used for subsequent jobs with the same structure.

          in Computers & Automation 21(6B), 30 Aug 1972 view details