Ice 讀書筆記–Slice語言

來源:互聯網
上載者:User

 Slice語言

 

1. Slice(Specification Language for Ice)是一種用於使對象介面與其實現相分離的基礎性抽象機制。
因為Slice描述的是介面和類型,它是一種純粹的描述性語言;因此無法用slice語言來編寫可執行語句。
2. 編譯
兩種情況:客戶和伺服器使用相同、不同的開發環境
3. 源檔案
3.1 檔案命名
含有Slice定義的檔案必須以.ice副檔名結尾。
3.2 預先處理
使用#include指令時,只允許使用<>文法來指定檔案名稱,不能使用””。
3.3 定義次序
4. 文法規則
4.1 注釋
可以使用C或者C++的注釋風格。
4.2 關鍵字
4.3 標識符
標識符以一個字母開頭,後面可以跟任意數目的字母或數字。Slice標識符不能有底線。
5. 基本的Slice類型
6. 使用者定義的類型

對於像Slice這樣的規範語言而言,嵌套的類型定義並無必要。
6.1 Slice沒有null串的概念
7. 介面,操作以及異常
7.1 只有操作定義能出現在介面定義內部。
7.2 Slice不支援任何形式的操作重載。
7.3 nonmutating 關鍵字說明,getTime操作不會改變它的對象的狀態
idempotent 關鍵字表明某個操作可以安全的多次執行。
7.4 如果資料庫尋找返回空結果集就拋出異常,這是一種錯誤的做法。
7.5 大多數情況下,定義空介面說明在設計上存在一定的不合理性。
8. 類
8.1 簡單類
Slice的類定義與結構體相似,所用關鍵字是class。Struct不能定義為空白。
8.2 類繼承
與結構不同,類支援繼承。類支援單繼承。
8.3 類的繼承語義
類繼承可以傳遞多態的值。
8.4 類用作聯合
8.5 自引用的類
類具有值語義,而代理具有引用語義。自引用的類不僅能用於非循環圖表,也能用於循環圖表。
8.6 類 vs 結構
類提供了一些特性,是結構沒有的:
a. 類支援繼續  b. 類可以自引用  c. 類可以有操作 d. 類可以實現介面
8.7 有操作的類
類上的操作總是在調用者的地址空間執行,即類的操作是本地操作。
8.8 類在架構上的影響
8.9 實現介面的類
Slice類也可以用作伺服器中的servant,也就是說,類的執行個體可以用來提供介面的行為。
一個類可以實現若干介面。除了實現一個介面,一個類還可以拓展另一個類。
8.10 提前聲明
         介面和類都可以進行提前聲明。提前聲明可以建立互相依賴的類對象。提前聲明的介面和類可以用作結構,異常,或類成員的類型,用作詞典的實值型別,用作操作的參數或者傳回型別。
8.11 模組
         Module語言成分可以減輕全域名字空間帶來的名字衝突問題。Module分別映射到C++的Namespace和java的package。
         在文法上,在另一個模組中提前聲明介面是非法的。(資料P109)
8.12 本地類型
        任何Slice定義都可以用關鍵字local進行修飾。由於本地類型不能在伺服器端和用戶端之間傳送,本地類型永遠不能從外地調用。

8.13  Ice模組
         整個Ice API的大部分內容都是作為Slice定義表示的。
8.14 中繼資料
         中繼資料出現在一對方括弧中,含有一個或者多個有逗號分隔的串直接量。中繼資料意在用於特定的後端,比如特定語言映射的代碼產生器。
8.15 使用Slice編譯器
         Ice為每種語言映射提供了單獨的Slice編譯器。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.