必威电竞|足球世界杯竞猜平台

XCY語言
來源:互聯網

XCY語言(XCY Language)是由南京大學的徐家福、中科院的付萃豪以及北京大學的楊芙清等人共同設計系統程序設計語言,它具有概念簡明、易學、易寫、易維護等特點。

1978年,在中國計算機操作系統會議上首次討論并起草了關于系統程序設計語言的相關文本,之后由徐家福、付萃豪、付萃豪等人開始設計,1979年開始考慮在DJS-200系列計算機上實現XCY,1980年設計出一個XCY編譯程序。1982年起,研究人員開始設計XCY語言族。

在XCY語言中,遵循了分層設計的原則,設計了基本類型、復合類型、指引元類型以及模塊類型四種數據類型。XCY語言的模塊由模塊說明引進,模塊說明的組成包括一組說明、移入表和移出表組成。XCY語言中還保留了路徑的概念,并包括包括路徑說明和路徑初啟語句兩個側面。在儲存機制上,XCY語言中采用了靜態方案。

發展歷程

在六十年代中期,人們開始認識到書寫系統程序的必要性,這推動了高級語言的發展。其中,1976年起,655機的NDHD軟件自動產生系統的開發標志著一個重要的里程碑。 隨后,1978年,中國計算機操作系統會議上討論了關于系統程序設計語言的問題 , 并決定起草“系統程序設計語言”試用文本 ,并由中國南京大學的徐家福、中科院的付萃豪以及北京大學的楊芙清等人共同設計。其設計思想相對接近于Modula語言。

1979年,徐家福等人開始考慮在DJS-200系列計算機上實現XCY,在使用XCY語言為DJS-200系列編寫的XT-2操作系統時,徐家福充分利用XCY語言的數據抽象和描述并發程序設計的功能,用管程、類程、行程等高級手段把操作系統中許多概念統一起來。1980年,徐家福等人設計出一個XCY編譯程序,并使用XCY語言寫出了XCY的編譯程序,用自展技術生出了兩代編譯程序,同時考慮將基編譯程序從DJS-200系列計算機移植到EC-1022B機器上。

之后XCY語言還成功在240計算機上運行,并成功用于編寫了240機的操作系統。這一成就使得XCY語言在1980年的國際信息處理聯合會(International 聯邦制 for Information Processing,IFIP)會議上受到了好評,展示了其在系統程序設計領域的潛力和應用價值。

盡管XCY的設計準則與設想在實踐中基本上是合適的,但在試用過程中也暴露出一些問題與缺陷。正是出于對這些問題的反思,1982年起,研究人員開始考慮并投入精力設計XCY語言族,以進一步完善和改進。

數據結構

在系統程序設計語言中,有些為了處理上方便,因此不進行數據類型的區分,但區分數據類型有利于理解程序,便于查錯等,在XCY語言中,區分了數據類型。此外,還設置了類型說明,用以由使用者自行定義新的數據類型,又可以使程序結構清晰。

在數據類型的設計中,XCY語言遵循了分層設計的原則,其四種數據類型如下。

語法語義

在主要成分中,與常規程序設計語言相比,XCY語言具有六點差異性:

(1)在XCY語言中只定義了指引元顯明常量和整顯明常量兩種,其中顯明常量是指在系統程序中往往遇到在編譯時刻確定的量,此時便可將這樣的量作為顯明常量引入,在常量說明時可以標以IVALUE(整值)或 PVALUE (指引元值)。

例如,當A時一個A是一個指引元顯明常量,其具體值留待編譯時刻確定,便可標記為:

(2)在模塊中引用其它模塊中的移出量時,可用模塊標識符來限定,例如,X1為模塊M1中的移出變量標識符,則引用時可表示為 M1·X1。

(3)在XCY語言中,運算符的優先級分為四類,雖然簡潔高效,但也帶來了一定的弊端,例如,不能寫作X>Y and Z=U,應寫成(X>Y) and (Z=U)。

(4)在XCY語言中保留了轉向語句。

(5)在循環語句中,分為帶迭代指明和不帶迭代指明兩類,帶迭代指明為一般語句中的循環語句,細分之下又可分為帶while指明和for指明兩種,不帶迭代知名是通過循環體內有關語句的執行來控制是否結束循環,此外,為了便于提高目標程序的質量,限制帶for指明的循環語句中的循環參數只能在下標表達式中出現。

(6)為便于動態調試以及程序正確性驗證,增設了斷語語句,允許在任何語句前插入。

模塊結構

在系統程序中,其本身包括一些相對獨立,而在一定條件下可以相互聯系的構造,它有利于提高程序的正確性,使之易讀、易寫、易維護。例如simula語言中的類,而Modula語言中的模塊有出自前者中的類。XCY語言的設計也借鑒了Modula語言中的模塊。

在XCY語言中,模塊由模塊說明引進,模塊說明的組成包括一組說明、移入表和移出表組成,其中模塊說明僅僅是定義單位,不可執行,只要通過調用模塊中的子程序才可執行其有關部分,移入表和移出表用于刻畫和外界有聯系的對象。針對書寫系統程序的要求,模塊有三種:管程模塊:管理調度實資源;類程模塊:控制作業路徑專用的虛資源;一般模塊:滿足一般用戶算法要求。

路徑

路徑是指可以和程序的其他部分并發執行的一段程序,某種意義上,路徑即進程。路徑包括路徑說明和路徑初啟語句兩個側面,前者用來定義路徑的算法,后者用來初啟路徑。形式上看,路徑說明類似于一個“有名的”分程序,其主要部分是說明表和語句表。

路徑初啟語句中除了指出路徑標識符外,還須給出其它有關信息,具體的作用分為三方面,分別為分配路徑控制塊,填好塊中信息(如優先級、時間片、路徑號等);分配執行棧,包括調用子程序時所用的局部量、形參、現場保護單元等;將路徑控制塊掛鏈(一般情況下掛就緒鏈)。

目標程序開始工作時執行主路徑說明的語句表,其中主路徑說明是以main開頭,任一XCY程序的結構是;

其中的程序單位為模塊說明,或路徑說明,最后一個程序單位為主路徑說明,程序由此開始執行。

存儲機制

存儲體制是影響編譯程序質量的帶有全局性的問題,在XCY語言中采用了靜態方案,它以路徑為線索進行分配。為了滿足靜態分配方案的要求,同時還可以解決有關量的覆蓋關系,因此在XCY語言中,區分了五種分配單位:

機器成分

系統程序設計語言一方面應與機器無關,另一方面,為了考慮到功效,又必須包含少量和機器有關的成分。XCY語言與機器有關的成分包括兩方面:

特點

XCY語言的獨特之處在于其多方面的設計特點。

參考資料 >

生活家百科家居網