有興趣朋友也可以進一步關注公衆号“架構之道與術”, 擷取原文。 或掃描如下二維碼:

在前面序列2 – 到底啥叫“智能合約”我們說了,以太坊是一個智能合約的平台。智能合約本身呢,是一堆代碼。
既然是代碼,就涉及到程式設計語言,涉及到語言的編譯、部署、執行等一系列過程。本節就對智能合約的程式設計語言做一個總體介紹,後面随着逐漸的深入,會對這種語言有一個更深的認識。
EVM
說到Java,大家都知道有JVM。Java語言被編譯成Byte Code,然後由JVM來執行。
JVM定義了一個Byte Code的标準,不管你什麼語言,隻要能編譯成Byte Code,都能放在JVM上執行。
是以除了Java,其他的比如Scala,Groovy,JRuby等語言,都可以放在JVM來執行。
而以太坊呢,也實作了一個類似JVM的東西,叫做EVM。它也是執行Byte Code,它也定義了自己的Byte Code标準。不管你上層什麼語言,隻要你能翻譯成EVM定義的Byte Code,就可以放在EVM上執行。
Solidity,以及其他程式設計語言
Solidity呢,就是目前最常用的,用來編寫智能合約的語言。下面簡單的貼一段Solidity的代碼:
這裡的contract關鍵字,就類同于Java/C++中的class關鍵字。
下面的這個代碼,就是定義了一個智能合約的“類”,然後我們可以把這個“類”,執行個體化1個“對象”,然後把這個對象,部署到以太坊上。
當然,正如JVM的原理一樣,我們不僅可以用Solidity編寫智能合約,也有其他一些語言,也能用來編寫智能合約,隻是沒有Solidity常見。
下面列舉了一些其他的程式設計語言:
Serpent 語言
Serpent 是一種可以編譯成 EVM 位元組碼的類似 python 的高等語言。因為 Zeppelin 發現的大量嚴重且危險的漏洞,這種語言實際上已經被棄用了。
Vyper 語言(以前寫作Viper)
Vyper 也是一種由 python 靈感啟發的程式設計語言,着重于安全、簡潔、和穩定性。目前這種語言還在開發當中。
Bamboo 語言
Bamboo 是一種将智能合約描述為有限狀态機器的語言,把智能合約看成一個狀态和交易的函數,同時生成一個新的狀态。這種語言目前也在開發當中。
其他語言
有大量的其他高等語言在不同程度使用或者開發當中。而且,肯定還有更多類似的語言陸續開發出來。為了更廣泛為大家所接納,程式設計語言和編譯器必須充分審查和測試,這都是很花時間的。
智能合約的反編譯/反彙編
prosity 反編譯或者用 evmdis 反彙編以太坊智能合約位元組碼。這是一個不斷進化的領域,開發新工具的速度相當快。了不起的以太坊虛拟機資源庫裡面包含更多的相關資訊。
下1節,我們将詳細來講述Solidity的文法,以及如何部署、執行Solidty代碼。