見出し画像

猫でも作れるプログラミング言語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万行らしいです。

応援してくれると、うれしいです。
スキ、フォローよろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?