首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

序列4 EVM,Solidity和其它各种编程语言

在前面

序列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代码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G0360Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券