modula2

"Modula

Modula 2 是a computer programming 的語言 被發明 Niklaus Wirth 在 ETH 在附近 1978, 作為一個後繼者 Modula, 其它語言由他。 Modula 被實施了1980 年在 Lilith 計算機, 由新運作公司DISER (數據圖象聲音處理器和放射器接收器系統) 商業化1982 年作為MC1 和MC2 。 DISER 全世界賣了120 個單位, Modula 2 語言寬鬆地根據 mesa 程式語言, 從Xerox, 那Wirth 看見了在他的1976 sabbatical 年期間在Xerox PARC
描述
Modula 2 是一般用途 程式語言, 充足地靈活做系統編程, 但以更加寬廣的套用。 特別是, 它被設計支持分開的編輯和數據抽象化用一個直接的方式。 許多句法根據Wirth 的更加早期和更加著名的語言, Pascal. Modula 2 被設計寬廣地是相似與Pascal, 與一些元素被去除和重要加法 模組 概念, 和直接語言支持 多道程式設計.
Modula 2 模組 可以被使用濃縮一套相關部分程式和數據結構, 和制約他們的可見性從其它節目的部份。 模組設計實施了Modula 2 數據抽象化特點用一個非常乾淨的方式。 Modula 2 節目由模組組成, 每個被彌補二份: a 定義模組, 接口部份, 包含唯一那些子系統的部份是 出口 (可看見對其它模組), 和 實施模組, 包含運作的代碼是內部的對模組。
語言有嚴密的範圍控制。 特別是模組的範圍可能被考慮作為inpenetrable 牆壁: 除了標準idenfiers 對象從外面世界不是可看見的在模組裡面除非明確地進口; 內部模組對象不是可看見的從外面除非明確地出口。
假設模組M1 出口對象a 、b 、c, 和P 由列舉它的標識符在一份明確出口商品目錄
定義模組M1; 出口合格了a, b, c, P; ...
然後對象a 、b 、c, 和P 從模組M1 成為現在知道的外部模組M1 作為M1 。a, M1 。b, M1 。c, 和M1 。P 。 他們被出口在a 合格 方式對宇宙(被承擔的模組M1 是全球性的) 。 出口的模組名稱, i 。e 。 M1, 被使用作為合格者被對象名跟隨。
假設模組M2 包含以下進口聲明
模組M2; 進口M1; ...
然後這意味, 對象由模組M1 出口對宇宙可能現在被使用在模組M2 裡面。 他們參考在a 合格 方式喜歡這: M1 。a, M1 。b, M1 。c, 和M1 。P 。 例子:
... M1 。a:= 0; M1 。c:= M1 。P(M1 。a + M1 。b); ...
合格的出口避免命名碰撞: 例如, 如果其它模組M3 並且會出口對象稱P, 我們能仍然然後區別二個對象, 從M1 。P 與M3 不同。P 。 由於合格的出口它不事關, 兩個對象叫做P 裡面他們出口的模組M1 和M3 。
有一個供選擇的技術可利用, 是在寬用途由Modula 2 程式設計師。 假設模組M4 被公式化作為這
模組M4; 從M1 進口a, b, c, P;
然後這意味, 對象由模組M1 出口對宇宙可能再被使用在模組M4 裡面, 但現在由在被出口的標識符的僅僅參考以"不夠資格的" 方式象這樣: a 、b 、c, 和P 。 例子:
... a:= 0; c:= P(a + b); ...
unqualifying 進口這個技術準許確切地使用對象外部他們出口的模組在同樣簡單, i 。e 。 不夠資格, 方式作為裡面出口的模組。 牆壁圍攏所有模組現在變得毫不相關為這明確地考慮到的所有那些對象。 當然unqualifying 的進口是只可適用的如果沒有名字碰撞。
這些出口並且進口規則也許似乎多餘地限制性和絮絮叨叨。 但他們不僅保障對象免受不需要的通入, 而且有宜人的副作用提供自動相互參照每個標識符的定義在節目: 如果標識符由模組名稱合格, 定義然後來自那個模組。 否則如果它發生不夠資格, 簡單地查尋落後, 和您將或者遭遇那個標識符的聲明, 或它的發生在命名模組它來自的進口聲明。 這物產變得非常有用當嘗試了解大節目包含許多模組。
語言提供(有限的) 唯一處理器並發(顯示器, coroutines 並且明確控制轉移) 和為硬體通入(絕對地址, 二進制處理, 和 interrupts). 它用途 命名相等.
相關語言
雖然Modula 2 是顯然最響譽和廣泛被套用的變形, 有被關係得無論怎樣的幾種語言: 原物, 和相當不同, Modula (打算供系統實現使用), Modula 2+ 、Modula 2 * (平行的引伸), ISO Modula 2 OO 和普通引伸, Modula 3 (由DEC 和Olivetti; 增加無用單元收集、對象, 和generics), Oberon (另, 以後, Wirth 設計), Oberon-2 (Oberon 以OO 引伸), 客觀Modula 2 (Modula 2 雜種和 Smalltalk) 和一定數量其他。 這些不應該被認為"更好的版本" 或"替換" 為Modula 2; 多數是不同的語言用不同的目的, 和以他們自己的力量和弱點。
與一起 C 和 Ada, Modula 2 經常被認為三個最重大的"現代" 程式語言(ie 的當中一個, structured 編程 時代) 。 三, Modula 2 是最小, 最容易讀, 最容易學會, 和最乾淨語法上和概念性地設計, 。 Modula 2 被開發了作為系統語言為 Lilith 工作站, 和形成依據的 Oberon 項目在ETHZ 。 多數當前的程式語言採取了許多Modula 2 特點。

相關詞條

相關搜尋

熱門詞條

聯絡我們