Page tree
Skip to end of metadata
Go to start of metadata

What is gmADS

The Great Migrations Application Development System (gmADS), formerly known as PROMULA, is a tool for building high-performance data management and modeling systems using our unique array management technology.

gmADS is a general-purpose, high-level programming language with built-in data management, modeling, report generation, graphics, and screen management (menus and windows) capabilities. It is the ideal development tool for those who have outgrown the spreadsheets but do not want to develop applications in a third generation programming language (such as FORTRAN, PASCAL, BASIC, or C). Though its intellectual history goes back to the late ‘60's on mainframes, PROMULA was originally developed on PCs in the early 80's as a high-level generalization of FORTRAN designed to take explicit advantage of the FORTRAN data structure (multidimensional arrays of primarily numeric, homogeneous data). It is a portable C program and offers the same character-based functionality on a number of platforms: PC DOS and DOS Extended, 386/486 UNIX, RS/6000 AIX, VAX/VMS, and Apple Macintosh. As an application development tool, PROMULA supports the following functions:

  • Data management (organize and selectively manipulate data)
  • Data analysis (establish relationships in the data using an extensive library of mathematical and statistical functions)
  • Modeling (simulate a problem and possible solutions to it)
  • "What if" analysis (compare alternative decisions about the problem)
  • Report generation (display results in report form)
  • Graphics (display results in plotted form)

More Information

The gmADS manual is available as PDF here.

Example of a Trivial gmADS Program

OPEN SEGMENT    "DEMO.XEQ"      STATUS=NEW
  DEFINE PROGRAM "A Demo Program"

  DEFINE SET
    month(12)       "Months of the Year"
    acnt(3)         "Profit and Loss Ledger Accounts"
  END SET

  DEFINE VARIABLE
    mp(month,acnt) "Monthly Profit and Loss Figures ($)" TYPE=REAL(10,0)
    amp            "Average Monthly Profit ($)"          TYPE=REAL(10,2)
    mn(month)      "Month Names"                         TYPE=STRING(12)
    acn(acnt)      "Profit and Loss Account Names"       TYPE=STRING(12)
  END VARIABLE

  DEFINE RELATION
    ROW(month,mn)
    COLUMN(acnt,acn)
    KEY(acnt,acn)
  END RELATION

  READ mn
  January
  February
  March 
  April
  May
  June 
  July
  August
  September
  October
  November
  December

  READ acn:6
  Sales Costs Profit

  DEFINE PROCEDURE profits
    SELECT acnt(Sales)
      WRITE"Please enter the monthly sales figures."
      READ mp(acnt,month)
    SELECT acnt(Costs)
      WRITE"Please enter the monthly cost figures."
      READ mp(acnt,month)
    SELECT acnt*
      mp(m,3) = mp(m,1) - mp(m,2)
      amp = SUM(m)(mp(m,3)/12)
      WRITE mp
      WRITE amp
  END PROCEDURE profits

END PROGRAM, DO profits


Running the Trivial Sample

Please enter the monthly sales figures.
    ? 13200 12100 14800 16200 15200 17200 18060 18960 19900 20900
    ? 21950 23050
  Please enter the monthly cost figures.
    ? 9200 8600 10400 11300 10700 12100 12700 13350 14000 14700
    ? 15440 16210

                  Monthly Profit and Loss Figures ($)
                                        
                              Sales       Costs      Profit
                                        
            January           13,200       9,200       4,000
            February          12,100       8,600       3,500
            March             14,800      10,400       4,400
            April             16,200      11,300       4,900
            May               15,200      10,700       4,500
            June              17,200      12,100       5,100
            July              18,060      12,700       5,360
            August            18,960      13,350       5,610
            September         19,900      14,000       5,900
            October           20,900      14,700       6,200
            November          21,950      15,440       6,510
            December          23,050      16,210       6,840

  Average monthly Profit ($) 5,235.00
  • No labels