猫でも作れるプログラミング言語FR2の紹介
どーも、どーも、こんばんわー、ハルキーです。
今日はFR2の紹介をしたいと思います。
とりあえず、猫でも作れるプログラミング言語って騒ぎ立ててるけど、どんな言語なんだ?と思っているので、今日紹介します。
class Hello{int a, int b|
int x: a
int y: b
int add{
return[x + y]
}
}
class Hello2<-Hello{int a, int b|
base[a, b]
int X:
return[x]; #set x:val
}
var hello: Hello2.new[2, 3]
print[hello.add[]]
hello.X : 3
print[hello.X]
for{var i:1; i<= 9; i: i + 1}:
print[i]
int<-(int, int) add2: int{var a, int b|a + b}
var i : 0
switch i:
#0 goto[1]
#1 print[1]
#2 print[2]
while i <= 9:
#head
i : add2[i, i + 1]
if i<= 5: goto["head"]
print[i]
class Hello3: class <- Hello{var a, var b|
base[a, b]
int sub{|
a - b
}
}
var h3: Hello3.new[2, 5]
print[h3.sub[]]
機能は、無名関数、無名クラス、クロージャー、関数型プログラミング、プロパティなどもりもりです。
return文が最後になかった場合、最後の式がreturn文になるので、すっきり書けます。
普通言語では、javascriptが宣言式で統一、他の言語がラムダ式と関数宣言でバラバラですが、ラムダ式に統一されているので、メチャクチャ覚えやすいし、内部のコーディングが簡単です。
=が:になってます。=で書いても、同じ働きをしています。
言語構造がFeel、Result、Reasonの形になっていると、すごい理解しやすくなるというシンプルな構造があります。
Fellは挨拶などの感情を刺激する言葉で、話の心構えを形成します。
Resultは、要点で、具体的にどういう話というのがあります。
Reasonは、で、具体的にどういうこととなっています。
int x: 1
Feel Result Reson
このシンプルな構造で構文解析したところ、800行で、最新機能もりもりの機能が実現できています。
シンプルな機能と文法のC言語は2000行です。
yaccなんてものは使ってません。
ちなみに、全体のコード数は4000行ぐらいで、中身が少しパズルっぽくなることを踏まえても、中級者程度のプログラマーの範ちゅうとなります。
書いたとおり、普通のプログラミング言語は行数もパズルっぽさもやばいです。パズルっぽさは、少しぐらいになってます。
ソースコードもシンプルで美しい、言語の見た目もスッキリしていて美しいと、構文解析で最強のプログラミング言語となっています。
ソースコードが複雑で美しいのがRubyです。
50万行らしいです。
応援してくれると、うれしいです。
スキ、フォローよろしくお願いします。