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

CLU
來源:互聯(lián)網(wǎng)

CLU是一門編程語言,其首先是由麻省理工學院(MIT)的Barbara Liskov和他的學生們于1974到1975年間推出的。CLU因其使用抽象數(shù)據(jù)類型的構(gòu)造函數(shù)而被人注意,并且還包括操作的代碼,更為關鍵的是它是具有面向?qū)ο蠓较虻囊婚T語言。但是許多的面向?qū)ο蟮姆椒–LU卻沒有,如繼承。CLU也因此被稱為“基于對象”(Object-based)的語言,而非“面向?qū)ο缶幊獭?OOP)的語言。

主要特征

CLU的編程語法是基于ALGOL的語法規(guī)則的,這也成為其后大多數(shù)新語言設計的起點。CLU的關鍵概念是群組,CLU的類型擴展系統(tǒng)和語言名字的由來是源于CLUster。群組通常對應于面向?qū)ο笳Z言中“類”的概念以及相似的語法規(guī)則。舉例來說,下面就是一個群組語法實現(xiàn)complex_number:

complex_number = cluster is add, subtract, multiply, ...

rep = record [ real_part: real, imag_part: real ]

add = proc ... end add;

subtract = proc ... end subtract;

multiply = proc ... end multiply;

...

end complex_number;

一個群組是封裝了所有組件的模塊,除了那些顯示指定的"is"語句,群組還定義了一個類型可以被外部的群組所命名(如同上面的complex_number),但其表示的類型對于外部用戶是隱藏的。

群組的命名是全局性的,并且沒有集群提供的命名空間機制或允許他們被其他本地群組所創(chuàng)建。CLU不執(zhí)行隱式類型轉(zhuǎn)換,在群組中要顯式地轉(zhuǎn)換抽象類型與表示之間的“上”和“下”關系。CLU提供了一種通用的類型“any”和一個過程強制檢查對象為一個確定類型。對象可能是可變或者一成不變的,而后者則是基類型,如整型、布爾類型、字符類型和字符串類型。

其他特性

CLU類型系統(tǒng)的另外一個重要的特性是它的迭代器( iterators),它會從容器中將對象一個一個地返回。不管使用何種數(shù)據(jù)類型,迭代器都提供了一種通用的API(應用程序接口),因此一個迭代器既可以用于complex_number容器,也可以應用于一個數(shù)組類型。CLU迭代器的一個獨特特性是它們實現(xiàn)了協(xié)同程序,每一個提供給調(diào)用者的值都是通過“yeild”聲明的。CLU中迭代器這種特性已經(jīng)成為現(xiàn)代許多語言的常見特性了,如C?,RubyPython,盡管他們都管它叫生成器(generator)。

CLU還包括了很多語言當中都在嘗試的異常處理,異常由signal標記捕獲,由except進行處理。不像大多數(shù)其它語言異常處理,異常不隱式提示主調(diào)鏈;既不進行捕獲也不明確提示,而是立即轉(zhuǎn)換成一個特殊的失敗異常,一般是終止程序。CLU被認為是第一個類型安全的編程語言,在這一方面甚至要領先于ML。

CLU最后的一個特性是多任務,它允許超過一個變量出現(xiàn)在賦值運算符的左側(cè)。舉例來說,x,y=y,x將交換x和y的值。同樣的,函數(shù)可以返回多個值,像x,y,z=fun(t)。CLU中所有的對象都存在堆空間中,并且內(nèi)存管理也是自動處理的。CLU還支持用戶自定義的抽象數(shù)據(jù)類型。CLU是第一個提供安全參數(shù)化類型的語言,使用where語句結(jié)構(gòu)來表達對實際類型參數(shù)的約束。

影響

PythonRuby引用了CLU中的一些概念(如共享調(diào)用、yield語句和多任務等)。

CLU和Ada是C++模板設計的來源。

CLU的異常處理機制也影響了像Java和C++這樣的新語言。

C++,C?,Python和Sather包括迭代器,它最早出現(xiàn)在CLU。

Lua從CLU調(diào)用多任務和多返回值功能。

1.Python和Ruby引用了CLU中的一些概念(如共享調(diào)用、yield語句和多任務等)。

2.CLU和Ada是C++模板設計的來源。

3.CLU的異常處理機制也影響了像Java和C++這樣的新語言。

4.C++,C#,Python和Sather包括迭代器,它最早出現(xiàn)在CLU。

5.Lua從CLU調(diào)用多任務和多返回值功能。

參考資料 >

生活家百科家居網(wǎng)