ETHEREUM TECHNOLOGY

【イーサリアム】スマートコントラクトを記述できるプログラミング言語

悩んでいる人

イーサリアムのスマートコントラクトを記述できるプログラミング言語を教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity/Vyper,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

イーサリアムのスマートコントラクトを記述できるプログラミング言語

イーサリアムのスマートコントラクトを記述できるプログラミング言語は以下になります.

  • Solidity:2014年8月に開発されたJavaScript,C++,Python,Eiffelに似た構文を持つ手続き型プログラミング言語
  • LLL(Low-level Lisp-like Language):Lispのような構文を持つ関数型プログラミング言語(スマートコントラクトにおける最初の高級プログラミング言語ですが,現在はほぼ利用されていません.)
  • Serpent:Pythonに似た構文を持つ手続き型プログラミング言語(現在は非推奨です.)
  • Vyper:2017年に開発されたSerpentの後継でPythonに似た構文を持つコントラクト指向の手続き型プログラミング言語
  • Bamboo:2017年に開発された明示的な状態遷移を持つプログラミング言語(現在は開発停止と思われます.)

上記のプログラミング言語では,SolidityとVyperがアクティブに開発されています.

SolidityとVyperの比較は以下になります.

項目SolidityVyper
プログラミング言語のコンセプト柔軟性(効率性を重視)正確さ(安全性を重視)
インラインアセンブラ許可未許可
修飾子許可未許可
クラスのポリモーフィズム,多重継承,
関数と演算子のオーバーロード
許可未許可
関数の再帰呼び出し許可未許可
暗黙的なキャスト許可未許可(初期バージョンでは許可)
2進数の固定小数点許可未許可
スマートコントラクトのファイル構成ファイル制約なし単一のファイルで構成

また,Solidity & Vyper Cheat Sheetにバージョン毎の詳細な比較があります.

キャストについて学びたいあなたは,C言語のこちらの記事がおすすめです.

C言語 キャスト
【C言語】キャスト演算子による明示的な型変換【暗黙的な型変換も紹介】

こういった悩みにお答えします. こういった私から学べます. 目次1 キャスト演算子【明示的な型変換】1.1 キャスト演算子でオーバーフローの回避1.2 キャスト演算子で汎用ポインタ型(void *)か ...

続きを見る

SolidityとVyperを学びたいあなたは,以下の記事を読みましょう!

イーサリアム Solidity
【イーサリアム】プログラミング言語Solidityとは

こういった悩みにお答えします. こういった私から学べます. 目次1 プログラミング言語Solidity2 Solidityの機能2.1 データ型2.2 演算子3 Solidityのバージョン選択4 S ...

続きを見る

イーサリアム Vyper
【イーサリアム】プログラミング言語Vyperとは

こういった悩みにお答えします. こういった私から学べます. 目次1 プログラミング言語Vyper2 Vyperの開発環境3 まとめ プログラミング言語Vyper プログラミング言語Vyperとは,イー ...

続きを見る

-ETHEREUM, TECHNOLOGY
-, , , , ,