1. ホーム
  2. haskell

[解決済み] HaskellでHaskellインタプリタを書く

2023-03-22 04:16:45

質問

古典的なプログラミングの練習として、Lisp/SchemeのインタープリタをLisp/Schemeで書くというものがあります。完全な言語の力を利用して、言語のサブセットのためのインタプリタを作成することができます。

Haskellにも同様の演習があるのでしょうか?Haskellをエンジンとして使って、Haskellのサブセットを実装してみたいのですが。もちろん、それは ができます。 はできますが、見ることができるオンラインリソースはありますか?


以下、裏話です。

の概念のいくつかを探求するための言語としてHaskellを使うというアイデアを探求しています。 離散構造 コースで教えています。今学期、私は ミランダ に決めました。Haskellに触発された小さな言語です。Miranda は私がやりたいことの 90% をやってくれますが、Haskell は 2000% をやってくれます。)

ですから、私のアイデアは、私が望むHaskellの機能を正確に持ち、それ以外はすべて禁止する言語を作成することです。生徒が上達するにつれて、基本をマスターしたら、私は選択的にさまざまな機能をオンにすることができます。

教育的なquot;言語レベル(lingua level)は Java スキーム . できることを制限することで、あなたが教えようとしている構文や概念を習得している最中に、彼らが自ら足を踏み外すのを防ぐことができるのです。そして、より良いエラーメッセージを提供することができます。

どのように解決するのですか?

あなたの目標は素晴らしいですが、それは大きな仕事です。 いくつかヒントをあげましょう。

  • GHCで仕事をしたことがありますが、ソースの一部もいらないのですね。 ハグ はもっとシンプルできれいな実装ですが、残念ながらC言語です。

  • これはパズルの小さなピースですが、Mark Jonesが書いた美しい論文で Haskell を Haskell で入力する であり、これはあなたのフロントエンドのための素晴らしい出発点でしょう。

がんばってください。 Haskellの言語レベルを特定することは、教室からの裏付けとともに、コミュニティにとって大きな利益となり、間違いなく出版可能な結果でしょう!