2023-01-01から1年間の記事一覧

Bidirectional Typechecking を実装してみた。

はじめに Desk言語ではBidirectional Typechecking のテクニックを使っているという話を聞いてよくわからないので調べてみて最も基本的な単相の双方向型検査器をPrologで書いてみました: % Implementation of Bidirectional Typing Rules: A Tutorial % http…

# 代数的データ型とBNFで妄想するプログラミング言語2

代数的データ型とBNFで妄想するプログラミング言語2 はじめに 昨日はザーッとBNFを書いていく方法を書いてみました。 しかし成果物をみるとちゃんとした仕様書とは言えないものができてしまったように思います。 今日は昨日の成果をもとに仕様のみを抜き出し…

代数的データ型とBNFで妄想するプログラミング言語

代数的データ型とBNFで妄想するプログラミング言語 はじめに BNFってなんだか難しそうって思う方もおられると思いますがそんなに気構えずに楽しく書く気持ちを説明したいと思います。 BNFは狭義の意味ではバッカスナウア記法を用いた構文解析器を表す記法に…

λeffをPrologに移植したら133行で書けた。

代数的効果は継続のようであるけど様々なエフェクトに使えるので今後期待されている技術です。 λeff はそのエッセンスを取り出した言語ですがそれなりに代数的効果を実験できるのでいろいろな言語に実装してみています。 今回はλeff を Prolog に移植してど…

ワークショップの開き方のテンプレートを考えてみた。

いかのような感じでテンプレートを用意してあると便利そうだなぁ。 # 〇〇ワークショップ ## はじめに ワークショップの目的を書きます。 ## 対象者 ここにはワークショップに参加して欲しい人に求められるスキルやあらかじめ環境構築が必要な場合は環境構築…

言語実装を協力して作りたい話

久しくブログを書くことから離れてたのですが、最近は昔と違って言語実装をして遊ぶ人が増えました。 C言語でC言語を作ってブートストラップするような高校生が多くいる状況は一昔前ではなかった状況で楽しいです。 ここまで人が増えてくると、かつてはソロ…