哥伦布、匹兹堡及各地消息

 

唐同誥和自動化軟件工具:Visual D++ Language

二十世紀電腦軟件工程技術的現狀
*2019年美國約有4,3 million名 Software 開發 編程序人員
*電腦軟件最難對付的是:軟件的可靠性。軟件程序本身複雜,又加之手工操作,容易造成軟件錯誤多,
*其次是,製作時間長,花費貴。我曾遇到的一個Credit Card application 軟件,製作費用據説大於 $ 14 Million。應對以上的二大問題,實現軟件程序編寫自動化 ,才能根本解決(注意:這里顯然是除了需要程序人員特別硏製的專用新算法和人工智能算法。)。
*從1986 年起,美國二大電腦協會發起舉辦 IEEE/ACM International Conference on Automated Software Engineering 至今已經舉辦了 30多屆。
*美國的巨型應用軟件公司 Oracle,IBM Microsoft, 以及歐洲的軟件大公司SAP,至今仍然沒聽説有“對一個大的應用軟件領域,根據預定的客戶的設計文件,能完整地,自動地,生成全套程序語言的代碼”,以及發表了,它的可供公開使用的技術説明書。

設計文件自動生成程序代碼方法,據報道2006年還沒有
Software Development [April 2006 Vol. 14, No.4]
MDA and UML Tool
CASE 2.0-or the Developer's Dream ?
The quest for model-driven application development that drives model-to-code and model-to-model transformation still needs some work, but the MDA products out there show huge promise.. BY MIKE RILEY
注解: model-to-code 就是 “客戶的軟件設計文件——直接轉變成——程序代碼”

一位退休軟件理論科學家認爲“軟件自動生成”有可能成功
瞭解了軟件自動化的重要性和困難後, 從2001年起他在同事與學生的支持下,不在乎沒有基金,獨自地在家里投入“軟件自動化”的科硏項目,近二十年。
在2004年底,完成“程序能自動生成”的模式理論與方法的可行性測試。
在2008 年底,完成了 “企業管理領域軟件”的一個完全的軟件自動生成的SDDA系統 。成功了, “自動生成全套程序代碼” 確實是可能的!
爲了表明模式理論和方法的普遍適用性,他還一連串爲三個軟件熱門應用領域,做了三個軟件自動化工具系統:
企事業經營管理軟件自動化
互聯網 平台全套CGI軟件自動化
安卓手機的應用軟件自動化
出版可視化D++語言第2冊(清華大學出版社):視窗軟件設計和開發自化 ((免費敎學軟件 SDDA_window)
如何表明軟件自動化的Pattern 技術是很有效
*例子1:在10/22/2021 演示會上,演示 一個軟件設計文件Enterprise Management.mdb 如何自動編制出一個完整VC++代碼的軟件 “Shop System” ,它包括了公司的“計劃,採購,倉庫進貨,銷售,會計”幾部門,它的 大小是 5.03 MB (5,276,956 bytes) 代碼生成大 約10 分鐘完成。如果由一位高級程序員人工編寫出程序代碼 + 測試,至少需要一年左右。
*例子2:一個光源公司工程師他請來一位程序員,花了半年用Java 語言製作一個“光源性能測試分析“軟件。這個軟件要求:接受光源測試儀傳來的數據,把他們存入數據庫,再做統計分析,分析之後的數據要以網頁形式輸出。他們沒完成,説有困難。 於是要二次請求我幫忙。對於這么簡單的應用軟件,我説” 一天後就可製作一個應用軟件給他“。結果, 由於數據空格與”tab”我理解錯了。我拖後了一天,重新給他一個軟件。經當場使用,完全成功。
 


模式”發育膨脹”成完整軟件的最佳的“軟件自動生成”理論與方法
人的思維是受到傳統工作方式的約束與影響的,而人的工作方式也受到人類本身Body的限制。人的大腦一般不能控制多個工作點同時協調操作。因而,人工編制軟件的可行的方式是一條條一塊塊依照前後次序,拼接成軟件程序。用拼接的方法,必需預先製作了千千萬萬品種齊全的程序小模塊。但是,生物界從一小點自動 長成貓,都不是拼接方式的,不是先長成個頭,再長個身體,再去拼接頭成爲貓。實際上,它是從一小點,經過各部分差不多同時發育膨脹成貓的。因此“物體的‘自動成長’總是與物體的平行式‘發育膨脹’緊密相關的”。幾十年自動生成全套軟件進展不大,就得從哲學思想上考慮,試試走從傳統上不可思議的新路子:Patter-擴展的理論方法。爲此,要(1)建立一種描述 Pattern體 的 Pattern 邏輯語言,理解一個個Pattern 體應是 套式的,也就是大的Pattern體內包含有 小pattern 體(Pattern Ball 見下一頁附録1 圖);其次(2)再製作300 多個 Pattern 體;最後(3)完成一個如何控制Pattern 體發育膨脹過程的軟件 Sdda.exe。
(再次強調:軟件自動化成果,僅僅是程序員提高效率和質量的工具)
附録1: Pattern Balls Auto Develop into Programs


附録2:作者背景(僅供參考)

*1963年留校成爲 :“複變函數論”敎硏組敎師。
*1968年爲江南造船厰編制了一個船體光順的特殊算法。經過各國數據實樣驗證, 爲最佳代替“人工船型放樣”的數據電腦算法,它曾找出其它國家船型優良數據的錯誤。對船體電腦自動化製作,作用極大。
*1969年在復旦大學提議籌建“電子計算機製造厰”自任技術員工厰領導人十年。
*1985年在中國科學(英文版)發表程序驗證邏輯基礎理論的論文,趕上了世界領先水準。
*1986年 受聘爲“ 數學評論”的評論員,有關邏輯與軟件理論科學。
*1986年 受CMU邀請來美國,幫助做學術雜誌論文稿件的初審。
*1991年前五年,判斷Formal Method 絶對不可能解決“程序正確性問題”,因而在業務時間五年(星期五星期六),開發一種獨特的“程序歸納法”,徹底地解決一般的“程序正確性驗證”歷史難題。(思想方法來源于數理邏輯的“廣義遞歸理論”)
*2004年底,完成“程序能自動生成”的模式理論與方法的可行性測試。
*2008年,完成了自動化軟件工具:Visual D++ Language