0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

のんびり自作言語つくってみた!

0
Last updated at Posted at 2026-01-08

のんびり自作プログラミング言語作ってみたぞ!

~申し訳ないぐらいの説明を添えて~

みっなさーん!!! こんにちは! tukinyanJP こと、つきにゃんじぇーぴー です!
最近 Ruby という 日本人の Matz さんという人が作ったプログラミング言語を始めました。
その後 Qiita というブログサービスを見つけて登録した次第です!

 2026年 2/9 追記。
 現在の BE-Lang の安定板は V. 2.1.0 で簡易てきなソケット通信が可能になりました! (まだ中身は未公開です。)

...
...
...

さて、本題に入らせていただくと 自分は少し前から言語処理系?というのでしょうか。そのようなものに興味を持ち 挑戦してみた! というわけです。 その自作言語の名前は...

BE-LANG です!

も、もちろん BE-LANGRuby で作られていますよ...?! 今も開発を頑張って作っているんですけども機能もいろいろと充実してきたと思うので一旦、自作言語の実用性のある(?)
コードを紹介していこうと思います!

puts "Hello,World!"
<- 
 Hello,World! を出力する。 Ruby に強く影響を受けている!
->

まずこちらの BE-LANG のコードは、Hello,World! を表示するコードですね。 た...ただ、一つ言いたいのは、 Ruby を完全にパk...じゃなくて影響を受けて真似して
いるだけですので... そいじゃ、次行きましょう!

var num 1
until num > 50 <- もう、Rubyを知っている人ならわかるでしょう... ->
  if num % 15 == 0
    puts "FizzBuzz"
  else
    if num % 5 == 0
      puts "Buzz"
    else
      if num % 3 == 0
        puts "Fizz"        
      else
        puts num
      end_if
    end_if
  end_if
  
  var num +- 1
end_until <- やっぱり僕はブレースで囲むよりend_○○でブロックをまとめる方がすきですかね... ->

こちらは、50までのFizzBuzzを求めるコードですね。 読んでくれている皆さんなら FizzBuzz が何か分かると思いますが、え? なにそれ? おいしいの???
ってなっている人も少なからずいると思いますので、説明したいと思います!

FizzBuzz とはですね...

(※ここから Wikipedia さんの引用)

Fizz Buzz(フィズ・バズ、Bizz BuzzやBuzzとも呼ばれる)は英語圏で長距離ドライブ中や飲み会の時に行われる言葉遊びである。

(※引用終わり。 引用させてもらったURL: 引用させてもらったURL)

とのことです。FizzBuzz は一種のアルゴリズム?なのではと思っています。 (私の考えでは)

さらにもう一つ...

define.be
def NiceToMeetYou (name)
  puts name
  print ",NiceToMeetYou!"
end_def

NiceToMeetYou ("tukinyanJP")
<- 結果: "tukinyanJP"
         ,NiceToMeetYou!
->

この BE-Lang コードは何をしているかというと、(まぁもうRubyを知っている人なら多分分かるでしょう...) defNiceToMeetYou という関数を定義しています。(name) は引数といって、関数内でしか使えない変数です。
NiceToMeetYou ("tukinyanJP") という部分は、 NiceToMeetYou という関数を呼び出し、("tukinyanJP") の部分は、先程出てきた(name) という引数に値を付与しています。 これで最低限の DRY (Don't Repeat Yourself) 規則を守れるようになってるはずです...




とまぁ... "本当に実用性のあるコードなのか?" はご覧になっている皆さんが決めることでしょう... 自作言語の実用性
のある(?)コードを書いたところで、その自作言語、 BE-Lang とやらを設計・制作するときの反省をここに書いておきたい
と思います。

  • DRY (Don't Repeat Yourself) という規則?を守って記述したこと。 (関数を定義して呼び出す)
  • コメントを使ってドキュメントを作ったこと
  • elsif みたいな もし違うなら~~なら のようなものを定義しなかったこと... (現在修正中)
  • def の引数が1つしか付けられないこと
  • class のようなオブジェクト指向?の継承が付けられなかったこと (現在修正中)


振り返り

こういうのを作るのはめちゃくちゃ楽しい!

今回の自作言語を振り返ってみて、初めてプログラミングで3800行? ぐらい書いてみました。
振り返ってみると、こういうものを作るのって楽しいですよね!!! やっぱり、自分が頑張って書いたコードが
きちんと動くうれしさがたまらないですよね! これからも趣味として自作言語を拡張していきたいと思っています!
あ、一応自作言語のコードはこちらのページから入手できます! BE-LANG!
※こちらのURLはこの本ブログ投稿日から一か月で期限が切れ、使用できなくなります!

はい! ここまできちんと読んでくれた皆さんに感謝です!
それじゃあ... 次の技術ブログで会いましょう! さらばーー!

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?