Code Generating Programs: Using the Computer to Instruct Itself
Raphelson, Jeffrey G.
MetadataShow full item record
Asgrow Seeds, a subsidiary of the Upjohn Company, is a nationwide distributor of corn, sorghum and soybean seeds. In a continuing effort to improve the quality of their products Asgrow helps sponsor tests run by independent agencies, usually agricultural colleges, all over the country. They use the results of these tests in research, advertising and legal cases. The only problem with utilizing so many testing services is that each of them uses their own particular report format which change regularly. This poses a serious problem when trying to record the findings on permanent computer files . Until recently Asgrow would highlight the parts of the report booklet which contained valuable information and send it to the keypuncher, Then, they would hire a programmer, from Upjohn 's Mathematical Services Unit, to write two programs which understood the keypuncher's format . The first program would print an alphabetical listing of all the brands and varieties tested for that report with the mean, minimum and maximum values for their yields. This print-out would be carefully checked for keypunching errors as well as non-standard abbreviations and the keypunched data set would be corrected accordingly. The second program would take the revised data set and transfer its contents to the two permanent computer files. This method was not only simple but allowed the programmer to perform any statistical functions on the data set that the testing service had left out. Not every service reports all the items that Asgrow records on its permanent files, although more often than not they report the information necessary to determine the missing items. Programs that are tailor-made for each data set can fill in the missing values. The disadvantage to this method was that hiring a programmer each time an agency changed its format meant spending a great deal of money in analyst's fees. This disadvantage soon became considerable. The solution was to design a higher order of computer program that could write the programs described above. The theory behind this idea was rather basic. Computers have always been used to produce reports according to very strict formats (pay-checks for example). So why not have the computer produce output that it can understand itself? Further, since programs are written on the same sort of data sets that they write into and read from, the code-generating program could place the code in the data set that would store it later. David Pyne and Teresa Hart, of Upjohn's Biostatistics Unit, wrote a similar program in early 1981. Their program read and processed hospital patient records for research in the analysis of clinical trials. It generated code at the bottom of its own data space and executed the code as soon as it finished executing itself. I started work on my project using the basic technology that Pyne and Hart developed.