【要約】最初に「あい」を学ぶことば日本語でプログラミング入門(Mindで定番アルゴリズム: 優先度付きキューを使ったダイクストラ法) [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
筆者は、プログラミングにおける母国語の欠如という文化的課題を解決したいと考えている。既存の言語は米欧発が主流であり、日本語の価値を技術基盤として示す必要がある。解決すべき課題は以下の通りである。
- ・日本語による自然な記述が可能な実行環境の不足。
- ・疑似言語ではなく、実用的なコンパイル・実行環境でのアルゴリズム提示の必要性。
// Approach
筆者は、スタック指向の軽量中間コードコンパイラ言語「Mind」を採用した。日本語の語順を活かしつつ、逆ポーランド記法でアルゴリズムを記述している。具体的な手法は以下の通りである。
- ・隣接行列を用いたグラフ構造の定義。
- ・優先度付きキュー(ヒープ)による最小距離候補の管理。
- ・「複写」命令を用いた中間変数の節約。
- ・ダイクストラ法による最短経路の計算。
// Result
筆者は、実装したソースコードをMind 8でコンパイルし、動作検証を行った。4頂点のグラフにおいて、最短経路が正しく算出されることを確認した。
- ・頂点1からの最短距離(1:0, 2:3, 3:1, 4:4)の正確な出力。
- ・日本語による記述が、実行可能な形式として成立することの証明。
Senior Engineer Insight
> 本技術は、実務への適用よりも言語文化の提示に主眼がある。Mindのスタック指向や高速性は興味深いが、分かち書きの強制は開発体験を損なう。大規模システムへの投入は現実的ではない。しかし、言語設計の実験的な試みとしては評価できる。