Hi 游客

更多精彩,请登录!

比特池塘 区块链前沿 正文

以太坊生态系统的新语言

宋长宁
62 0 0
Rust语言发展如火如图,以太坊生态内的编程语言都是Solidity(或者Vyper),但Rust的优越性一直备受加密货币项目和开发者喜爱,那以太坊生态怎么办?以太坊开发了Fe,一个和Rust联系起来的语言。为安全性出现的语言。
" w3 J% Q$ |- t, v以下为开发者Christoph叙述Fe的文章,金色财经编译呈现,以飨读者。
& D4 i+ F* h6 x& l如今,以太坊网络上部署的大多数应用程序都是用Solidity编写的。我们认为,Solidity团队做得很好,做了很多努力保持其当前的市场份额。但是,我们也认为,如果开发人员又更多选择将对生态系统产生积极影响。7 M, q" A6 `2 t- M: j
Fe6 c# K: c4 H5 r8 \$ j# b
我们很高兴为以太坊生态系统宣布一种名为Fe(读“ fee”)的新的智能合约语言。该语言最初是对Vyper编译器(在Rust中)的重写,旨在解决Consensys在《Vyper安全性评论》中强调的问题。
( h0 _3 I: S4 S虽然最初的目标是使用Vyper编译器,但最终,语言开始出现语法差异,因此决定使用新名称进行明确命名。Fe出生了。- D9 j! s$ E" Q" m* J0 @. S
“ Fe”是元素周期表中化学元素铁的字母。Fe传达了一种耐用感,这强化了编译器正确性的概念。Rust在Fe上形成,这将名称与编写Fe编译器的Rust语言联系起来。
. }& ]" c9 c# u! p5 A* H1 I7 s目标
( i* M/ ~+ y' ]. ]这个项目继承了Vyper的许多东西。也就是说,它具有Python语法,并强调语言安全性。因此,Fe的语法很大程度上受Python启发。允许使用Python的开发人员熟悉的可读性和表达性代码。Fe还使用静态类型,限制动态行为以减少footguns并提高安全性。
- s2 E( b" Z$ k. N- D在开发的早期阶段,Fe和Vyper之间的差异仍然有限。现在,人们会注意到,Fe从Rust借来了一些语法属性。随着我们继续添加新功能,Fe可能会开始与Rust更加相似。
1 m4 ^, X6 }1 b+ Z( nFe实施的正确性
% h3 B5 [( Q- {9 \3 [9 F4 q; p除了语言本身之外,我们还采取步骤来确保编译器实现正确。换句话说,应该高度相信由Fe编译器生成的可执行代码将相对于语言规范正确运行。4 p- A6 J8 [; x) |; H9 _; F
下面列出了我们为确保正确性而采取的一些步骤:
( [  }$ z' s8 g) {7 w+ T# P6 H, H( b编写语言规范1 X& x+ W: ?/ O" L8 g0 u, {7 N
如果没有要检查的规范,就不能证明编译器是正确的。因此,我们已经开始编写该语言的规范,该规范大量引用自Rust。在我们准备进行审核时,我们将能够制定出全面的规范。! G( n7 [0 U* N6 g
在Rust中实施2 b- W" f1 F+ `" B. y- q/ m7 ^1 G7 ~
Rust是一种具有强大安全保证的系统语言。这些安全保证可防止Rust程序进入未定义的行为。例如,在安全的Rust中不可能使用空指针。这样一来,Rust编译器就可以在编译时捕获bug,否则在运行时会遇到bug。; |( x$ ^+ i, ~, P& M7 u
使用不同的组件/ a5 d9 ~- J. z, u& _& H' w+ H
Fe的目标是将编译器的组件分成遵循标准编译器设计指南的不同库。也就是说,我们已经将解析、语义分析编译实现为具有API、测试的独立库。使理解编译器的行为更加容易。
/ y$ \; K& Y# H7 ^+ M; g7 A% z定位目标: L# G; A0 }% T* P! ~; |9 m) p
编译器将Yul定位为中间表示。Yul是由Solidity团队开发的项目,旨在成为多个低层平台之间的共同点,这意味着我们不需要为EVM 1.0,EVM 1.5和eWASM编写单独的后端。目前,我们仅使用Solidity后端进行Yul编译。这为我们节省了大量时间。2 l9 s( u; R7 j0 q; M8 ^5 G
Vitaliks以太坊路线图强调,将YUL标准化为中间语言也可能是针对Optimistic Rollup环境的便捷途径。( ]6 B% b1 ^3 r: n) C1 i# w5 s! M
进展+ |: P9 D9 l  B/ \) f  T
解析器期望的EBNF语法可以在这里找到。解析器为该语法文件中指定的所有内容提供支持,并包括全面的测试。. {1 b' R8 {0 x- V
今年年初,开发人员开始通过编译器。我们能够添加一些简单合同的支持。最值得注意的是,我们能够将一个简单的留言簿合同编译为功能字节码。
# \7 {3 C1 y/ P& R. R' S1 k在过去的一个月中,Fe的发展显着增加。我们对ERC20合同中使用的所有功能支持感到乐观,并能够在2020年底之前进行编译。显然,到那时,编译器绝不是生产ERC20的合适选择,但是我们期待通过这样一个众所周知的工作示例展示Fe的功能。  p2 h3 p9 r* @- J0 r: `# L
下面是一个简单的合约,该合约今天已经完全可用:
+ B+ `( f- M$ N0 `
) |$ N6 v3 x' ]/ b+ Y3 A2 `4 A! G5 b( T
7 P1 X  x: S3 `  r1 R/ G
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

宋长宁 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    28