原文:Erlang數據類型的表示和實現(1)——數據類型回顧

本文介紹 Erlang 語言中使用的各種數據類型以及這些數據類型在 Erlang 虛擬機內部的表示和實現。了解數據類型的實現可以幫助大家在實際開發過程中正確選擇數據類型,並且可以更好更高效地操作這些數據類型。本文對 Erlang 數據類型及實現的總結目前是最全面的,可以作為 Erlang 數據結構的參考手冊。盡管我寫的內容都試圖在各種參考資料和 Erlang 虛擬機源代碼中驗證,但是難免會有理解錯 ...

2013-11-15 00:38 1 2555 推薦指數:

查看詳情

Erlang數據類型表示實現(5)——binary

binary 是 Erlang 中一個具有特色的數據結構,用於處理大塊的“原始的”字節塊。如果沒有 binary 這種數據類型,在 Erlang 中處理字節流的話可能還需要像列表或元組這樣的數據結構。根據之前對這些數據結構 Eterm 的描述,數據塊中的每一個字節都需要一個或兩個機器字來表達,明顯 ...

Mon Dec 02 02:15:00 CST 2013 6 5366
Erlang數據類型表示實現(3)——列表

列表 Erlang 中的列表是通過鏈表實現的,表示列表的 Eterm 就是這個鏈表的起點。列表 Eterm 中除去 2 位標簽 01 之外,剩下的高 62 位表示指向列表中第一個元素的指針的高 62 位。我們在生成一個列表的時候,會采用這樣的語法:L = [Head | Tail],Head ...

Fri Nov 15 08:41:00 CST 2013 7 3059
Erlang數據類型表示實現(2)——Eterm 和立即數

Erlang 數據類型的內部表示實現 Erlang 中的變量在綁定之前是自由的,非綁定變量可以綁定一次任意類型數據。為了支持這種類型系統,Erlang 虛擬機采用的實現方法是用一個帶有標簽的機器字表示所有類型數據,這個機器字就叫做 term。在 32 位機器上,一個 term 為 32 位 ...

Fri Nov 15 08:40:00 CST 2013 1 3911
Erlang數據類型表示實現(4)——boxed 對象

Boxed 對象 Boxed 對象是比較復雜的對象,在 Erlang 中主標簽為 10 的 Eterm 表示一個對 boxed 對象的引用。這個 Eterm 除去標簽之后剩下的實際上是一個指針,指向具體的 boxed 對象。如下圖所示,boxed 對象由對象頭和具體的數據組成,這些字都排布在一起 ...

Mon Dec 02 02:12:00 CST 2013 3 3308
抽象數據類型表示實現

抽象數據類型表示實現 (1)預定義常扯及類型: (2)數據結構的表示(存儲結構)用類型定義(typedef)描述;數據元素類型約定為ElemType, 由用戶在使用該數據類型時自行定義。 (3)基本操作的算法都用如下格式的函數來描述: 當函數返回值為函數結果狀態代碼時, 函數 ...

Fri Feb 21 04:45:00 CST 2020 0 1034
表示無向圖的的數據類型

引言 最近我在讀 Robert Sedgewick 和 Kevin Wayne 的經典著作《算法(第4版)》: 這本書第4章第1節討論無向圖,下面就是無向圖的 API(英文版第522頁): 對於非稠密的無向圖,標准表示是使用鄰接表,將無向圖的每個頂點的所有相鄰頂點都保存在該頂點 ...

Wed Mar 13 01:32:00 CST 2013 15 6108
Java編程,用什么數據類型表示價格?

在Java中,float和double都表示浮點型數,所表示的浮點數是近似值,而不是精確的值,所以,這兩種數據類型不適合作為價格的數據類型。Java語言提供另外一種數據類型BigDecimal,可以用來表示精確的浮點數。 運行結果: 注意,new 一個 ...

Fri Apr 24 21:39:00 CST 2020 0 1634
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM