こんにちは!Success Blue、奇曲宮夢です!
前回は、Similarityの設計思想と文法についてお話ししました。
今回は、いよいよSimilarityの書き方について紹介します!
「文法は分かったけど、実際にはどう書くの?」
そんな疑問に答えながら、基本的な書き方を一緒に見ていきましょう!
まずは変数と制御フロー!
プログラミングをする上で、ほぼ必ず登場するものがあります。
それが、
- 変数
- 条件分岐
- ループ
です。
このうち、条件分岐とループは、まとめて制御フローと呼ばれます。
どんなプログラミング言語でも、この3つは避けて通れません。
もちろん、Similarityでも同じです。
では、まずは最も基本となる変数宣言から見ていきましょう。
Variable[let{int(x:12)}]
一見すると少し独特な文法に見えるかもしれません。
ですが、前回紹介した
カテゴリ[操作{引数}]
というルールに当てはめると、とてもシンプルです。
-
Variable…… 変数というカテゴリ -
let…… 宣言するという操作 -
int(x:12)…… 型・変数名・初期値という情報
つまり、
「変数カテゴリで、宣言を行い、int型の変数xを12で初期化する」
という意味になります。
条件分岐
続いて、条件分岐です。
Similarityでは、条件分岐は次のように書きます。
If[
check{条件},
True{
真だった場合の処理
},
False{
偽だった場合の処理
}
]
ここで、
「なぜ
TrueとFalseがあるの?」
と思った方もいるかもしれません。
理由は、とてもシンプルです。
Ifは、条件が真(True)か偽(False)かを判断するカテゴリだからです。
そのため、
-
check…… 条件を確認する -
True…… 条件が真だった場合の処理 -
False…… 条件が偽だった場合の処理
という意味を持った子要素を持っています。
Similarityでは、「if文」という構文が存在するわけではありません。
Ifというカテゴリが存在し、その役割に応じた子要素を持つ。
それがSimilarityの考え方です。
ループ
次は、ループ(制御フロー)です。
ループも、条件分岐と同じ考え方で設計されています。
Loop[
check{継続条件},
for{
初期化,
更新
}
]
ここでも、
-
Loop…… 繰り返しというカテゴリ -
check…… ループを継続するかどうかを判断する -
for…… 初期化や更新など、ループの制御を行う
という意味になっています。
つまり、
「Loopだから、この子要素を持つ。」
ということです。
文法として覚えるのではなく、それぞれの単語が持つ役割を理解することで、自然とコードを読めるようになります。
Similarityの考え方
ここまで見ていただければ分かるように、Similarityでは文法そのものを増やすことはしていません。
私が大切にしているのは、
「ルールに意味はありません。単語にこそ意味があります。」
という考え方です。
Variableには変数という意味があり、
Ifには条件分岐という意味があり、
Loopには繰り返しという意味があります。
そして、それぞれが必要な子要素だけを持っています。
私は、この考え方によって、
「文法を暗記する」のではなく、「単語の意味を理解する」
プログラミング言語を目指しています。
Similarityは、構文を書く言語ではありません。
意味を組み立てる言語です。
これが、Similarityの文法の根幹となる設計思想です。
次回について
次回は、関数や独自のサポートシステムについて紹介します。
関数の定義方法や引数、戻り値、呼び出し方などを、実際のコードを交えながら解説していきます。