『日本語プログラミング言語「なでしこ」に関する解説』を読んでの感想
日本語プログラミング言語「なでしこ」とは?
上記のコラムを読んでいただくのが一番良いですが、簡単に。
- 日本語で書けるソースコード
- 対象使用者:プログラミング初心者の老若男女
- 開発のきっかけ:事務の自動化のため
- 2021年度から中学の教科書で扱うことに。
公式サイトでは簡易エディタがあり、実際に触ってみることができます。
なでしこ:日本語プログラミング言語
他の人がなでしこを使って作ったプログラムも見ることができます。
🍯 なでしこ3貯蔵庫
私がコラム内で特に日本語プログラミング言語の意義として一番いいなと思ったのは下記です。
現在プログラミング入門として,Scratchなどビジュアルプログラミング言語が用いられています.しかしビジュアルプログラミング言語から,本格的なプログラミング言語に移行するには大きな壁があります.そこで,クッションとして日本語プログラミング言語を使っていただければと思います.
私もビジュアルプログラミング言語とプログラミング言語には大きな壁があると思っています。
その壁によって、せっかく楽しいと思えたプログラミングへの興味が折られてしまったらもったいないと感じていました。
なでしこによってその差が埋められたらいいですよね。
自作プログラミング言語って?
プログラミング言語の作り方についてあまり知らなかったのでこの機会に調べてみました。
世の中には当然のように自作プログラミング言語界隈があるようで、これもまた深い沼のような雰囲気がありました…
自作する目的としては下記があるようです。
- 既存よりいい言語を作りたい
- 独自のアプリ用の言語が欲しい
- とにかく作ってみたい
結局は「作ってみたい」という情熱がすべてな気がしますね。
作る流れ
大雑把に流れを書くと大体こんな感じではないかと。
字句解析
ソースコードを意味のある単語(トークン)に分割します。
この説明はこちらのサイト様の説明がわかりやすいです。
プログラミング言語を作る/yaccとlex
ちなみに、なでしこでは助詞でトークンを区切ることで、引数を逆転させても意味が通るような工夫がされているそうです。
構文解析
字句解析したトークンとプログラミング言語の文法から構文木を作ります。
なぜ木構造なのというところの理解がふわっとしており、文字に書き起こせないのでもう少し考えてから書きたいと思います。
構文解析は研究が盛んなようで、ツールが言語によっていろいろあるそうです。
例)yacc(C言語)、JavaCC(Java)