Solidityの主な言語仕様5選|Solidityの学習でおすすめの本2選

イーサリアムとは

イーサリアムとは、プラットフォームの名称です。

ヴィタリック・ブテリン氏が開発したイーサリアムは、「分散型アプリケーション(Decentralized Applications、略称DApps )」や「スマートコントラクト(Smart Contract)」を使用しています。

イーサリアムは内部通貨Etherを使用し、採掘の報酬として発行されるのです。発行は人の手を介さずに自動で行なわれます。

イーサリアムで使う言語Solidityってどんな言語?

Solidity(ソリディティ)は、イーサリアムで使われるプログラム言語です。

イーサリアムで使われるプログラム言語のSolidityは、JavaScriptの文法に似ています。初心者でも使いやすい言語です。

コントラクト指向(取引処理を実行させる目的に特化した)の高水準言語で、どんなプログラムでも記述できる学びやすい言語です。

Solidityでできること

Solidityは、スマートコントラクトを開発できます。

Solidityはスマートコントラクトを実装するために開発されたプログラミング言語で、Ethereum(イーサリアム)上で実行します。

Solidityを用いて、仮想通貨(暗号資産)ETHの大きな市場を対象としたプログラムの開発が可能です。セキュリティと効率が良く、開発効率が向上します。

Solidityを使う人の特徴

Solidityは、ブロックチェーンエンジニアなどが使用しています。

Solidityは、ブロックチェーンエンジニアなどがブロックチェーンで使うスマートコントラクトを構築するために使っているのです。

スマートコントラクトは自動的に契約実行が可能で、スピード向上やコスト削減に繋がります。Solidityは、JavaScriptに似た構文を書いていくことでプログラムを動かします。

他のコントラクト言語との違い

VyperとPythonは、EVM上で動くバイトコードにコンパイルされます。

Vyperはシンプルで分かりやすい言語と言われています。Vyperはチューリング完全言語ではなく、Solidityはチューリング完全言語です。

Solidityは、EVMとともに開発されています。スマートコントラクトをより簡単に書けるように作られているのです。

Solidityの主な言語仕様5選

Solidityを使用して、アプリケーションを作成する場合に用いる言語があります。

Solidityは、Ethereumの高水準言語として生産性と可能性が優れていて、コンパイラとしてEVMのバイトコードに変換します。

コンパイラ「solc」をインストールして、コンパイルされたバイトコードをEVMで実行します。Solidityで使用する、主な言語仕様を5選ご紹介しましょう。

Solidityの言語仕様1:Contract

「Contract」の書き方をご紹介致します。

オブジェクト指向言語のクラスと、SolidityのContractは似ていて永続的状態変数を所持しているのです。コントラクトのファンクションを動かすために呼び出します。

contractでコントラクトを定義して、functionで関数定義を実行します。コードはpublic・externalのファンクションを含み、ファンクションコールを通じてアクセス可能です。

Solidityの言語仕様2:コメント

「コメント」の書き方をご紹介します。

Solidityでは、Contractとfunctionの各関数の働きの説明コメントを、それぞれ「@dev」で記載します。「@title」「@author」「@notice」等を用います。

単一行のコメントには「//」を最初に付けて記載し、複数のコメントには「/* ~ */」を最初と最後に記載します。

Solidityの言語仕様3:Hello world

「Hello world」の書き方をご紹介致します。

Hello worldは、簡単なスマートコントラクトのコードを作成可能です。「get()関数」が呼び出されたら「Hello World」を返すコードを簡単に書くことができます。

contractをHelloWorldと書き、functionに「Hello World!!」をreturnする文字列を定義します。コンパイル、デプロイと実行していきましょう。

Solidityの言語仕様4:データ型

「データ型」には2種類あります。それぞれの特徴をご紹介しましょう。

Solidityは静的型付け言語なので、変数を定義する際のデータ型を明示します。データ型には「基本型」と「参照型」があります。

「基本型」は「値そのもの」の変数が格納されます。「参照型」は「値を格納しているメモリ上のアドレス(参照)」が格納され、データの保存場所(Data location)とも言えるでしょう。

Solidityの言語仕様5:変数の宣言

「変数の宣言」をご紹介します。

Solidityは変数を定義する際に、格納するデータ型を明示します。符号付整数の「int型の変数x」を宣言するには「int x;」や「int x = 10;」と明記します。

「constant」を付けると定数を定義でき、「型名」「修飾子」「変数名」の順番で明記されます。型名を「var」とすると変数型の推測が可能です。

Solidityの勉強方法

Solidityは、一人でも学習できます。

Solidityの勉強方法は、開発環境の構築やツールなどを学びます。学習について詳しく書かれた本も多数出版されています。

開発環境としては「Geth (go-ethereum)」「Parity」があります。ツールでは「Remix」「Truffle」「OpenZepplin」があります。

本を買って勉強する

「Solidity」の本を買って、基本的な知識を理解しましょう。

Solidityをこれから学習するには、Solidityの本を買って理解を深める学習方法があります。本から、ブロックチェーンやイーサリアムの仕組みに関する知識が得られます。

Solidityはスマートコントラクト開発に欠かせない言語として、さまざまな学習本が出版されています。その技術思想と基本要素を本から学ぶことができます。

オンライン学習プログラムを使用する

Solidityのオンライン学習プログラムを使用して学びましょう。

Solidityは、オンラインで学べる学習プログラムも豊富です。日本語に対応していて、無料で楽しみながら学べる学習サイトもあります。

Solidity学習サイトは、独学でもプログラミングスキルを理解することができます。環境構築不要で勉強でき、コストも安価で学習しやすい環境が整っています。

Solidityの学習でおすすめの本2選

Solidityを分かりやすく解説する、学習におすすめの本をご紹介します。

開発の手順やプログラムの書き方、環境構築やライブラリについての情報や解説が充実していて、独学にお勧めのSolidity学習本が出版されています。

ブロックチェーンについての入門編や、応用、技術系、ビジネスまで解説され学習や理解に役立つ、おすすめの本をご紹介しましょう。

Solidityの学習でおすすめの本1:Ethereum+Solidity 入門 Web3.0を切り拓くブロックチェーンの思想と技術

ブロックチェーン「イーサリアム」の普遍的な技術思想と基本要素を理解する為におすすめです。

「Ethereum+Solidity入門 Web3.0を切り拓くブロックチェーンの思想と技術 impress top gear」は、仮想マシン、ウォレット、暗号資産の移動、プログラミング言語等が解説されています。

著者は「クリス・ダネン」で、投資ファンド創設者兼パートナー、大手出版社技術コンサルタントとして活躍しています。

Solidityの学習でおすすめの本2:Solidityプログラミング ブロックチェーン・スマートコントラクト開発入門

ブロックチェーンを用いたスマートコントラクト構築言語Solidityの入門書です。

「Solidityプログラミング ブロックチェーン・スマートコントラクト開発入門」は、イーサリアム・プログラミングに特化した書籍で、SE、エンジニア、アプリ開発者必読の書と言えます。

著者は花村 直親、松本 拓也、小池 駿平で、ブロックチェーンや仮想通貨ウォレットシステム等で活躍しています。

Solidityを習得してイーサリアムで実装しよう

Solidityの主な言語を習得してEthereum(イーサリアム)上で実行しましょう。

Solidityの主な言語仕様をご紹介しました。Solidityは独学でも本やオンラインで学ぶことができます。Ethereumは、ネットワーク上でコントラクトコードというブロックチェーン上のコードを実行します。

理解しやすいプログラミング言語の、Solidityを習得して実装しましょう。