gmADS: Application Development System
The gmADS manual is available as PDF here.
What is gmADS
The Great Migrations Application Development System (gmADS), formerly known as PROMULA, is a platform 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)
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