2021-04-27
緯度、経度、精度、3つの値を1つのコードで表現する、パブリックドメインなジオコーディング「Geo3x3」の76コ目の実装プログラミング言語として、THPL対応!

Geo3x3 README.md

THPLとは、The HTML Programming Language、プログラミング言語としてのHTML。先日、エンコードを実装しましたが、THPLの言語自体に機能を足してデコードも実装。正式対応とすることができました。

足した機能は1つだけ、文字列から指定した場所の文字コードを取得する string/charCodeAt という機能。当初、簡単だったので、他の演算子と同様 math タグ内のエレメントとしての実装してプルリクしましたが、HTML標準から外れるということで、ご提案いただいた q タグによる実装に切り替えました。
add math.charCodeAt by taisukef · Pull Request #2 · uhyo/the-html-programming-language

オープンソースソフトウェア(OSS)のプログラミング言語は、言語自体を改造できるだけでなく、言語開発自体に貢献できるのがステキですね。

THPLは、TypeScriptで書かれたシンプルなプログラミング言語なので、プログラミング言語づくりの参考にもいい感じです。npm run build のコンパイル時間も30ミリ秒ほどと高速です!(liveserverと組み合わせればブラウザ上でのテストも簡単!)

今回の改造手順
1. THPLをフォーク
2. 抽象構文木(AST)式(expression.ts)に、QExpression/qExpressionを追加。
3. 構文解析器(パーサー)parseExpression.tsに、Qタグとciteプロパティ対応を追加。
4. インタプリタrunExpression.tsQExpressionへの対応と string/charCodeAt 処理を追加。
5. としてtest-charCodeAt.htmlを追加(ブラウザで動きます)。
6. プルリク

THPLにマージされたわけではありませんが、フライングでGeo3x3のTHPL対応としました。
taisukef/Geo3x3: geo zone encoding, serialize latitude and longitude

自作言語をお持ちの方、Geo3x3実装チャレンジしてみてください!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS