概述
FORMAL是報表處理語言(FORm MAnipulation Language)的英語縮寫,它是一個面向事務數據處理的非過程性的語言。在事務數據處理世界裡,人們總是在製作各種各樣的報表,將收集來的原始數據填入有關報表中,針對不同的要求從原始數據中提取有關信息,進行加工運算,得到結果數據,又填入新的報表中。FORMAL可用來定義數據處理流程的規劃圖,定義各種形式的報表、以及定義從原始報表數據轉變為新報表數據的變換規則。
FORMTRAN是FORMAL的實現系統,是FORMAL程式的開發環境。用戶可以在CRT終端前籌劃其軟體系統的數據加工流程圖,以二維圖形的形式來設計報表結構,並可在報表上面書寫數據加工程式,即數據變換規則。有了這樣良好的開發環境,事務數據處理的行家,不必經過傳統程式設計的專門訓練,便可以用FORMAL製作他所需要的數據處理軟體。
活動定義
它規劃整個數據處理系統的數據加工流程的概貌,一個程式的活動定義由兩部分組成:程式的標識部分(程式名稱、版本號、作者名、製作日期)以及活動流程(數據流程)部分。活動流程部分則由一系列的活動組成,每個活動又由活動名、輸入數據描述、輸出數據描述以及該活動在流程中的順序的制約條件所組成。
報表結構定義
FORMAL向用戶提供了定義各種報表結構的手段,它將數據結構,以及數據的輸出格式(即報表之形狀,大小,在印表機或CRT上的位置)有機地結合在一起,以二維圖形的方式形象直觀地定義報表結構。
範圍定義
它為報表中的各基本項定義其數據類型與取值範圍。用戶只要在已定義的報表上為各種基本項填寫範圍定義。
變換定義
在結果報表上寫出它的變換定義。亦即,為獲得結果報達上的數據所需的原始數據的來源、組織、選擇條件、以及變換表達式。
在結果報表的基本項上,要寫出它的變換表達式。變換表達式可以是簡單表達式,或是分情形表達式。簡單表達式是基本項數據做算術運算、字運算、以及群體運算的式子。所謂群體運算就是對一群量作運算,如統計學生總人數,計算每個學生成績的平均分粒等等。
在結果報表及其子表(非基本項)上,要寫出它所需要的原始數據的來源,選擇條件、以及數據組織、排序等。
將編好的FORMAL程式交給翻譯程式,對它做全面語法檢查以及部分語義檢查之後,把它翻譯成目標語言(PASCAL)程式。再利用計算機系統的PASCAL翻譯程式將用戶程式變為可執行的目標代碼。
FORMTRAN
FORMTRAN是FORMAL語言的實現系統,它含一個翻譯程式,其功能是將FORMAL程式翻譯為目標語言的程式,(試驗系統中,PASCAL是目標語言,也是實現系統用的語言);此外,FORMTRAN還含有四個編輯器,分別支持FORMAL程式的四個方面定義的編輯工作。FORMTRAN為用戶提供了良好的開發環境,用戶可以坐在CRT終端前面,構思並畫出他的程式:利用第一編輯器ED1,編寫活動定義;用第二編輯器ED2,畫出他所需要的各種形式報表;用第三編輯器ED3,在已畫好的報表上,由游標自動引導著,為各基本項定義其範圍;用第四編輯器ED4,在已畫好的報表上,由游標指引著,該報表放其各子表、各基本項,給出相應的變換定義。
這些編輯器按FORMAL的語法,指導用戶編寫他的FORMAL程式,同時儘量多做語法檢查,一旦發現錯誤,當場通知用戶,以便隨時改錯。
將編輯好的FORMAL程式交給翻譯程式,對它做全面語法檢查,以及部分語義檢查,並將它翻譯成目標語言PASCAI程式。
再利用計算機系統的PASCAL編譯程式將用戶程式變為可執行的目標代碼。
當目標代碼在運行時,有一個報告生成程式(Report Generator)陪伴工作。它按用戶的要求輸出報表上的數據。在試驗系統中對輸出格式只作一些簡單處理:tight一按ASCII碼緊密排列數據,存放在檔案上的數據均按此格式處理;framed,按報表結構定義所畫的框架輸出數據;table,按常見的表格形式輸出數據。