當前位置:工程項目OA系統(tǒng) > 泛普各地 > 湖南OA系統(tǒng) > 長沙OA系統(tǒng) > 長沙OA軟件行業(yè)資訊
基于業(yè)務解析的第五代計算機語言
1946年2月14日世界上第一臺電子數(shù)字計算機 ENIAC誕生,驗證了馮.諾依曼的EDVAC計算機體系的正確性并一直運用至今,歷經了數(shù)次的硬件更新?lián)Q代,信息技術以驚人的速度進步,英特爾(Intel)創(chuàng)始人之一戈登·摩爾(Gordon Moore)提出:集成電路上可容納的晶體管數(shù)目,約每隔18個月便會增加一倍,性能也將提升一倍,也就是說在付出成本不變的情況下,每隔18個月計算機的性能將翻一翻。在二進制機器語言的基礎上,面向各種應用涌現(xiàn)了許多通用或者特定領域的語言,大多數(shù)都曇花一現(xiàn),然而也有一些語言如Java和C被廣泛應用,究其原因最重要的還是符合用戶需求發(fā)展的一般規(guī)律。用戶需求驅動產生了一批影響較高的適合特定領域的編程語言,如通用商業(yè)語言COBOL,腳本語言Javascript,數(shù)據(jù)庫的標準查詢語言SQL,數(shù)學計算的MATLAB,數(shù)據(jù)分析的SAS,邏輯推理的Prolog等,這些語言都很好地解決領域里的專業(yè)問題。然而,語言的腳步并沒有因此停止下來,面對更高的復雜的應用需求,這種演繹將持續(xù)演繹下去。
60年代中后期,軟件越來越多,規(guī)模越來越大,而軟件的生產基本上是各自為戰(zhàn),缺乏科學規(guī)范的系統(tǒng)規(guī)劃與測試、評估標準,其惡果是大批耗費巨資建立起來的軟件系統(tǒng),由于含有錯誤而無法使用,甚至帶來巨大損失,軟件給人的感覺是越來越不可靠,以致幾乎沒有不出錯的軟件。這一切,極大地震動了計算機界,史稱“軟件危機”。軟件界不禁探究:大型程序的編制不同于寫小程序,它應該是一項新的技術,應該像處理工程一樣處理軟件研制的全過程,程序的設計應易于保證正確性,也便于驗證正確性。1969年,提出了結構化程序設計方法,1970年,第一個結構化程序設計語言—Pascal語言出現(xiàn),標志著結構化程序設計時期的開始。80年代初開始,在軟件設計思想上,又產生了一次革命,其成果就是面向對象的程序設計及其以后十幾年的各種編程框架思想的涌現(xiàn),J2EE、.NET、以及各種MVC框架支撐并推動面向對象的繼續(xù)探索,隨后國際從事軟件開發(fā)和語言研究的知名機構提出了構件化的軟件編程思想,并積極研究基于構件化的開發(fā)語言,YiGo厚積8年后化繭成蝶。
后對象時代 構件思想主導程序開發(fā)
面向構件的規(guī)劃可以理解為面向對象設計的新層次。面向構件的開發(fā)是一種軟件開發(fā)手段,在開發(fā)周期的所有階段,都以構件為基礎,包括需求分析、設計、測試、支撐性技術架構、項目管理等。這個概念把面向構件的開發(fā)擴展到用面向構件的思想來設計和實現(xiàn)軟件系統(tǒng),它在軟件開發(fā)周期的各個階段和各個方面都以構件為中心,這跟基于構件不同,比基于構件又先進了一點。設計構件的目的是為了構件可以像零部件一樣用于組裝,把構件設計成項目的零件,此時面向構件就比基于構件更有優(yōu)勢。
一切應用系統(tǒng)的開發(fā)都是從業(yè)務需求出發(fā)的,最終目的也是為了處理好業(yè)務問題。系統(tǒng)分析員按照業(yè)務特性把系統(tǒng)劃分為各個子系統(tǒng),又把子系統(tǒng)劃分為各個功能模塊,便形成了構件業(yè)務化拆分邏輯。與“業(yè)務驅動”相一致,構件業(yè)務化是從業(yè)務的觀點來分析構件,使得業(yè)務和構件相結合,從而面向構件可以更好的構建業(yè)務模型和業(yè)務流程。應用開發(fā)以技術為中心,業(yè)務人員和開發(fā)技術相分離,也使得用戶需求、設計和開發(fā)相分離。構件業(yè)務化,是面向構件技術發(fā)展的必然,提高了業(yè)務構件的復用及適應業(yè)務變化的能力,使企業(yè)能夠通過自身和業(yè)務(構件)的轉換來應對來自市場的挑戰(zhàn)。
但是構件的行為是離不開對象的,構件一般都包含了若干類或者原型對象。構件中還包含了一些固定的對象,它們被構件用來獲取默認的初始狀態(tài)和其他的構件資源。而構件中不一定要包括類,構件可以用過程體,全局變量,函數(shù)語言,匯編語言或者其他可用方法來實現(xiàn)自身的全部特性,構件中所包含的對象可以與該構件相分離,對于其他構件也是可見的。一個構件中可以不包含類元素,也可以包含一個或多個類元素,但是一個類元素只能讓一個構件使用,除此之外,和類之間有繼承關系相同,構件之間也存在這一些互相依賴的關系,一個構件中包含了一個類的父類但不一定包含它的子類,如果一個類的父類在一個構件中,類的子類在其他構件中,這兩個類之間的繼承關系就是跨構件,而且類之間的繼承關系還導致了這兩個構件之間的導入關系。規(guī)約的繼承是保證正確性的一項很關鍵的技術,因為共同的規(guī)約是構件間達成共識的基礎利用構件使項目結構更清楚,程序容易維護,代碼重用性強。
計算機語言正本清源
一般來說,計算機語言分為機器語言、匯編語言和高級語言。
機器語言是由01組成的數(shù)字序列,如某種計算機的指令為1011011000000000,它表示讓計算機進行一次加法操作,而指令1011010100000000則表示進行一次減法操作,其前八位表示操作碼,而后八位表示地址碼。從上面兩條指令可以看出,它們只是在操作碼中從左邊第0位算起的第7和第8位不同,這種機型可包含256個不同的指令,機器語言或稱為二進制代碼語言,計算機可以直接識別,不需要進行任何翻譯,并且對不同型號的計算機來說一般是不同的。
匯編語言是用特定的符號來代替某些操作,幫助記憶與學習。在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址,再由匯編程序將匯編語言書寫的程序翻譯成與之等價的機器語言,因此,和機器語言一樣,匯編語言依賴于具體的機型,不能通用,也不能在不同機型之間移植,針對蘋果機和惠普機相同的功能要開發(fā)兩套程序。
高級語言主要是相對于匯編語言而言,它并不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的C#,Java,vb.net、c/c++、foxpro、delphi等,這些語言的語法、命令格式都各不相同。在這些語言中我們可以寫這樣的句子:c=a+b,它是將a與b相加,然后將結果給c,高級語言是面向人類而不是面向機器的語言,不用考慮異構機器內部構造的細節(jié),只需關心任務的實現(xiàn)方法。
高級語言克服了異構硬件的程序移植問題,計算機不直接執(zhí)行高級語言,而是需要經過編譯程序將其轉換成機器指令,然后計算機才執(zhí)行。從編譯的方式上分為解釋型的高級語言和編譯型的高級語言兩種。
高級語言又分為過程性語言、面向對象語言、非過程性語言和管理解析語言等四個發(fā)展階段。
過程性語言是指編寫的程序包含一系列的描述,告訴計算機如何執(zhí)行這些過程來完成特定的工作,適合于那些順序的算法,用過程性語言編寫的程序有一個起點和一個終點,程序從起點到終點執(zhí)行的流程是直線型的,即計算機從起點開始執(zhí)行寫好的指令序列,直到終點、如BASIC、COBOL、FORTRAN、Pascal、C等都是過程性語言。
面向對象語言是建立在用對象編程的方法基礎之上的。對象就是程序中使用的“實體”或“事物”,按鈕、菜單、對話框都是對象。對象是基本元素,在面向對象程序設計中只需考慮如何創(chuàng)建對象以及創(chuàng)建什么樣的對象;另外同一對象可用在不同的程序中,這無形中擴大了程序員的生產率。被一致認可的是:C++是支持面向對象的C語言,Java和J++是以C++為基礎的更適于網(wǎng)絡應用的面向對象語言,Java和J++尤其適于生成網(wǎng)頁上栩栩如生的圖畫和稱為applet的Java應用程序。
非過程性語言只需程序員具體說明問題的規(guī)則并定義一些條件即可。意思就是你只用說做什么,具體怎么做不需描述,語言自身內置了方法把這些規(guī)則解釋為一些解決問題的步驟,這就把編程的重心轉移到描述問題和其規(guī)則上,而不是數(shù)學公式。因此,非過程型語言更適合于思想概念清晰但數(shù)學概念復雜的編程工作,如數(shù)據(jù)庫查詢SQL語言和邏輯式語言Prolog就是非過程性語言的代表,SQL只需程序員和用戶對數(shù)據(jù)庫中數(shù)據(jù)元素之間的關系和欲讀取信息的類型予以描述,邏輯式語言的語義基礎是基于一組已知規(guī)則的形式邏輯系統(tǒng),被廣泛應用于各種專家系統(tǒng)的實現(xiàn)。
管理解析語言基于高層次的業(yè)務需求,涵蓋企業(yè)管理軟件開發(fā)的特定概念和抽象,由低層次的實現(xiàn)細節(jié)和具體事物抽象而來,據(jù)有字典、單據(jù)、報表、工作流、審批流等管理業(yè)務描述的快速實現(xiàn),以最小的、不可拆分的業(yè)務規(guī)則作為管理解析語言的基本粒度,按照管理邏輯進行組合,形成特定管理業(yè)務的標準實現(xiàn)。YiGo語言是第一個實現(xiàn)管理解析思想的計算機語言,擁有軟件開發(fā)的原子邏輯以及N多管理業(yè)務的分子操作及其界面元素,實現(xiàn)了對硬件、操作系統(tǒng)、數(shù)據(jù)庫的透明操作。
YiGo化繭成蝶
YiGo扮演這樣的角色:一種將技術和業(yè)務分離開來,最大程度弱化用戶對技術的依賴,只需通過業(yè)務描述來推動技術實現(xiàn),這種業(yè)務解析的技術實現(xiàn)機制是將用戶的需求描述成XML文檔,通過YiGo解析技術在集成開發(fā)環(huán)境中自動生成系統(tǒng)應用。可以看出,一個系統(tǒng)應用的產生主要分為兩個步驟,一是描述用戶的需求生成XML,二是解釋XML生成系統(tǒng)應用,這種簡單的程序開發(fā)模式,使得編程不再是技術人員的專利,熟悉業(yè)務的人員也許做的更好!
程序升級本質上就是需求重新定義或者修改的過程,反映在業(yè)務解析技術上就是導入原來的需求描述XML文件,修改相關屬性,重新生成滿足要求的XML文件,再提交自動解析生成新的系統(tǒng)應用。在這個過程中,解釋完全由系統(tǒng)執(zhí)行,用戶只需清晰描述需求,因此,極大降低了二次開發(fā)的風險。
這不僅是一次技術的變革,更是一種思維模式的變革,一種程序快速交付模式的實現(xiàn)。
因此,考慮到語法語義及人類思維模式的匹配等構成要素,計算機語言經歷了五次變革,相應產生了五代語言體系:第一代計算機語言匯編語言具備了語法語義基本形態(tài),第二代過程性計算機語言克服了對硬件的依賴,實現(xiàn)了程序實現(xiàn)了不同硬件平臺的可移植,第三代面向對象計算機語言反映了人類意識形態(tài)的特點,基于“實體”“對象”編程方法的運用,使得人類跟計算機站在同一認識高度進行對話,第四代非過程性計算機語言實現(xiàn)了計算機輔助決策、人工智能等半結構或無結構問題的機器學習,第五代管理解析計算機語言突破了軟件編程人員的自我限制,使得計算機編程語言成為一般的管理人員而非專業(yè)技術人員也能運用和掌握的技能,并從軟件的開發(fā)模式、實施方法論等維度實現(xiàn)近似于自然語言的人機交互。
綜上所述,過程性語言重在分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調用就可以了;面向對象語言是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為,面向對象的程序設計方法(Object Oriented Programmiing,簡稱OOP)是把設計方法從復雜繁瑣的編寫程序代碼的工作中解放了出來,符合人的思維方式和現(xiàn)實世界。而管理解析語言采用的構件化的思想,是面向對象開發(fā)方法的一種發(fā)展與延伸,構件和對象都抽象的描述了客觀世界,都將信息隱藏了起來具有相當?shù)莫毩⑿裕怯捎跇嫾笫亲悦枋龅?,獨立性比對象更強?/P>
- 12010年IT運維管理新亮點
- 2OTN: “光”罩全業(yè)務
- 3計算機內的光進銅退
- 4安防視頻監(jiān)控系統(tǒng)的組成技術
- 5千面物聯(lián)網(wǎng)
- 6監(jiān)控攝像機的定焦和變焦鏡頭
- 7虛擬化響起安全警報
- 8OA軟件的綜合事務處理與會議管理功能
- 9數(shù)據(jù)中心模塊化三種不同類型
- 10I/O虛擬化中遇到的管理問題
- 11云存儲加密數(shù)據(jù)檢索面臨挑戰(zhàn)
- 12虛擬機備份問題:緩沖區(qū)、恢復和裸機
- 13OA辦公系統(tǒng)品牌選擇“說說”
- 14物流企業(yè)如何構建BI系統(tǒng)模式?
- 15SOA旅程三階段
- 16高清視頻系統(tǒng)的傳輸問題
- 17移動應用程序進行代碼簽名
- 18C2C中第三方支付模式及存在的問題
- 19CIO選購:三大巨頭虛擬化新品橫向比較
- 20保險公司災備系統(tǒng)建設淺析
- 21電子簽名與認證:網(wǎng)商應用知多少?
- 22三網(wǎng)融合開展在即 設備商需認識三問題
- 23網(wǎng)銀SSL證書部署注意漏洞
- 24解析:云存儲面臨加密數(shù)據(jù)檢索瓶頸
- 25四基本要素驅動存儲網(wǎng)絡融合
- 26統(tǒng)一存儲成未來趨勢
- 27SSD應該如何使用
- 28監(jiān)控:CCD技術為安防時代帶來了什么?
- 29SOA是否需要SaaS化?
- 30自動分層存儲悄然走來
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓