Pythonのクラスの数学モデルは何ですか?


10

ラムダ紙の古典的なモデルはPythonでは有効ではないことを理解しています。

また、クロージャーはPythonシステムの実装の数学モデルではありません。

それでそれはどのモデルですか?


モデルがわかっていれば、システムをゼロから構築するプロセスを説明した詳細な本(lispsの場合はsicpなど)が見つかると思いました。
alinsoar

4
関連:stackoverflow.com/q/2469824。ここでは答えられないので、投稿の本文から2番目の質問(Pythonシステムをゼロから構築する方法)を削除しました。実際に動作するプログラミング言語を開発する方法を知りたい場合は、パーサー、レクサー、コンパイラなどを調べる必要があります。
Robert Harvey

よろしくお願いします!2番目の質問は最初の質問と同等でした!モデルを知っていれば、実際にそれを説明しているドキュメントを見つけることができるので、システムのカーネルを構築する方法がわかります。
alinsoar

素晴らしい質問!!! :)
Maxood

回答:


7

Pythonとラムダ計算に関する古典的な論文のモデルとの主な違いは、Pythonがマルチパラダイム言語であることです。ラムダ計算を検討するほとんどの論文は、他のパラダイム(OOPや論理プログラミングなど)を追加することによる複雑さなしに、純粋な関数型言語を検討しています。

質問とあなたのコメントから、あなたはそのようなマルチパラダイム言語の基礎に興味があると思います。その場合、Peter van RoyとSeif Haridiによるコンピュータープログラミングの概念、技法、およびモデルを強くお勧めします。この本は主にモーツァルト/オズ言語について書かれており、それ自体はかなり学術的な言語です。ただし、この本は、非常に小さなコア言語から始め、その上にオブジェクト指向、関数型、および論理プログラミングを構築する方法(およびすべて同じコア言語内)を非常に明確に示しています。

実際の数学モデルについては、ほとんどのプログラミング言語には非公式または準公式の仕様しかありません。ラムダ計算のような適切な理論を基礎とするものはめったにありません。発明され、多かれ少なかれ適用可能な多くの異なる数学モデルがあります。興味深いのは、プログラミングのセマンティクスがどのようにモデル化されるかについて、さまざまなアプローチに一般的な違いがあることです。セマンティクスは、表示、操作、または代数で記述できます。さらに深く学習したい場合は、プログラミング統一理論について少し読むことから始めます。ただし、学習曲線が急で難しいものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.