Skip to content

gmADS: Application Development System

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)
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
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