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