• CLU

    編輯
    本詞條由“匿名用戶” 建檔。

    CLU是一種編程語言,CLU是第一個為數據抽象提供直接語言支持的編程語言,這是面向對象編程語言開發的關鍵要素。 數據抽象的想法是在編程方法論的工作過程中提出的。導致CLU開發的項目的主要目標是推進對編程方法的研究。根據他們自己的說法,該語言的開發人員并沒有看到他們的目標是傳播相同的語言,而是傳播軟件開發的概念;在CLU中實現。 CLU不是為所謂的低級編程而設計的,例如從事操作系統及其組件的開發。該...

    CLU 是一種編程語言,CLU 是第一個為數據抽象提供直接語言支持的編程語言,這是面向對象編程語言開發的關鍵要素

    數據抽象的想法是在編程方法論的工作過程中提出的。 導致 CLU 開發的項目的主要目標是推進對編程方法的研究。 根據他們自己的說法,該語言的開發人員并沒有看到他們的目標是傳播相同的語言,而是傳播軟件開發的概念; 在 CLU 中實現。

    CLU 不是為所謂的低級編程而設計的,例如從事操作系統及其組件的開發。 該語言應該對有經驗的程序員有吸引力。 雖然不像 Pascal 那樣作為學術目的的學習語言,但它可以用作這樣的語言。 CLU 更看重軟件系統的可讀性和可理解性,而不是編寫工作代碼的便利性。 它在技術上旨在作為一個大規模的開發工具。 重點是開發大型軟件系統,需要多名開發人員,其范圍包括幾千到幾十萬行代碼。

    語言的發展

    編輯

    研究了各種編程語言,以弄清楚其中哪些可以用作 CLU 的基礎。 開發人員得出結論,這兩種語言都不合適,因為它們都不支持數據抽象。 開發人員想知道這個想法會將他們帶到哪里,而不必擔心它可能如何與預先存在的屬性交互。 盡管如此,已經從現有的編程語言中采用了各種語言元素。

    語言元素

    編輯

    集群

    CLU 最重要的元素之一是集群的概念。 這對應于面向對象語言(如 C++)中的一個對象,并且具有大致相同的語法。

    盡管集群的概念在當時是一種用于構建程序代碼的高級工具,但不存在用于構建集群本身的機制。 這意味著集群名稱是全局的,集群不能分組或嵌套。 CLU 不支持隱式類型轉換:在集群中,顯式轉換使用 up 和 down 命令在抽象類型和表示之間切換。 此外,還提供了通用數據類型 any 和過程力。 該過程檢查對象是否具有特定類型。 對象可以具有可變和不可變的屬性。 后者用作所謂的本機數據類型,例如整數定義。

    附加語言元素

    面向對象語言的很多特性比如由于設計原因,有意不實現繼承,另一方面,CLU 支持異常處理、迭代器和參數化類型等語言元素。

    異常處理

    CLU剛好支持如果異常處理。 它提供了一種基于異常調度模型的機制。 函數調用可以在各種條件下自行終止,其中之一是函數終止并具有定義的正常返回值。 任何其他值都代表異常,CLU 的機制在處理未處理的異常方面是不同尋常的。 大多數異常處理機制通過代碼中的函數調用傳播它們:如果拋出異常的函數沒有處理它,它將傳播到樹中它之前的函數。 另一方面,在 CLU 中,所有未處理的異常都被轉換為所謂的失敗并繼續傳遞。 基于其他編程語言的多次嘗試,異常用signal拋出,用except捕獲。 由于重點是類型設計,因此無法創建枚舉類型

    迭代器

    CLU 的另一個重要元素是迭代器。 這些表示可用于迭代列表元素或集合元素的指針。 迭代器基于 Alphard 編程語言中使用的稱為生成器的結構。 CLU 開發人員在與 Alphard Group 的一次會議上了解了生成器的想法。 CLU 開發人員對這個概念很感興趣,因為它解決了與數據抽象相關的各種問題。 然而,他們也擔心這種結構過于復雜。 盡管如此,Russ Atkinson 受到生成器的啟發,在從波士頓會議返回的途中在 CLU 中構思了迭代器的概念。 他在 1975 年 9 月的一份所謂的設計說明中描述了這一點。CLU 中的迭代器代表一個“黑匣子”,它提供獨立于它所應用的數據的編程接口。 因此,例如 例如,復數的迭代器和整數數組的迭代器是相同的。 迭代器現在是許多現代編程語言中的通用語言元素。

    CLU

    多重賦值

    CLU還支持多重賦值,允許多個變量出現在賦值運算符的左側。 例如,x,y = y,x 會在變量 x 和 y 之間交換值。 同理,函數可以有多個值比如 g. 返回 x,y,z = f(t)。

    對其他編程語言的影響

    編輯
    • Python 和 Ruby 繼承了 CLU 的各種概念,例如yield 語句和多重賦值。
    • CLU 和 Ada 是 C++ 模板的主要模板。
    • CLU 的異常處理機制影響了更多的現代編程語言,例如 C++ 和 Java。
    • CLU 的所有對象都存在于堆中,內存管理是自動的。 這直接影響了 Java。
    • Python 和 C# 提供了生成器的概念,它首先作為迭代器出現在 CLU 中。
    • Lua繼承了CLU對函數值的多重賦值和多重返回。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/371993/

    (6)
    詞條目錄
    1. CLU
    2. 語言的發展
    3. 語言元素
    4. 集群
    5. 附加語言元素
    6. 異常處理
    7. 迭代器
    8. 多重賦值
    9. 對其他編程語言的影響

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久