タグ付けされた質問 「imperative-programming」

12
命令型プログラミングの理論的根拠は何ですか?
関数型プログラミングには、ラムダ計算と組み合わせロジックの理論的基礎があります。統計計算に携わる人として、これらの概念はモデリングに非常に役立つと思います。 命令型プログラミングと同等の数学的な基礎はありますか、それとも単に機械語での実用的なハードウェアアプリケーションとその後のFORTRANの開発から発展したのですか?

2
線形論理の民俗モデルとは何ですか?
おそらく、PLでの線形型の最も一般的な用途は、それらを使用してエイリアスを制御する言語を提供することです(つまり、線形値には多かれ少なかれ単一のポインターがあります)。 しかし、この使用法と線形論理の典型的な表示モデルとの間にはわずかな不一致があります。IIRC、ベントンは、デカルト閉カテゴリが強力な可換モナドを持っている場合、代数のカテゴリは対称モノイダル閉(つまり線形論理のモデル)になることを示しました。しかし、状態モナドは可換ではないため、この定理はエイリアス制御の使用には適用されません。そして確かに、過去数年でシンプソンと彼の同僚は、線形論理の項計算ではない一般的な強いモナドの計算を与えました。 だから私の質問は、状態を持つ線形言語の表示的意味論とは何ですか?割り当て、読み取り、および線形更新をモデル化できる非縮退(つまり、テンソルがデカルト積ではない)対称モニダル閉カテゴリはありますか?

4
セマンティクスで副作用はどのように処理されますか?
Anthony AabyのSemanticsに関する「プログラミング言語入門」セクションで、彼は次の観察を行います。 プログラミング言語のセマンティクスにおける作業の多くは、命令型プログラム(割り当てコマンドを使用したプログラム)を構築して理解しようとする際に遭遇する問題によって動機付けられています。割り当てコマンドは値を変数に再割り当てするため、プログラムの離れた部分に予期しない影響を与える可能性があります。 これは、副作用を許可することでセマンティクスの作業の大部分が動機付けられるという驚くべき承認として私を打った。 プログラミング言語の副作用の存在は、プログラムを計算モデルにマップする機能にどのように影響しますか?副作用を許容しながら、このプロセスを改善できる状態管理のアプローチはありますか?

4
命令型言語は、関数型言語よりも互いにどのように異なるのですか?
私はサイモン・ペイトン・ジョーンズの「関数型プログラミング言語の実装」を読んでいますが、私を驚かせた声明が1つあります(39ページ)。 命令型言語の場合よりもはるかに広い範囲で、関数型言語は主に相互の構文上のバリエーションであり、セマンティックの違いは比較的少ないです。 さて、これは1987年に書かれたものであり、この主題に関する私の考えは、当時は普及しておらず人気もなかった、より現代的なプログラミング言語の影響を受ける可能性があります。しかし、これを信じるのは少し難しいと思います。たとえば、記述されているミランダプログラミング言語(Haskellの初期の前身)は、CがPascalに、またはCがsmalltalkにさえ言うよりも、MLのような厳密な言語に比べて、はるかに異なるセマンティクスを持っていると思います(ただし、 C ++は、彼のポイントの検証を提供します:-)。 しかし、もう一度、私はこれを私の直感的な理解に基づいています。サイモン・ペイトン・ジョーンズはこれを言うのに大部分が正しいのでしょうか、またはこれは議論の余地のある点ですか?

3
代入以外の命令文の型推論
命令型言語の型システムに関する研究論文を検索したところ、参照が可変で、複合演算子、ループ、条件などの真の命令型制御構造を持たない言語の解決策しか見つかりませんでした。 したがって、http://rust-lang.orgなどの部分的な型推論を伴う命令型言語をどのように実装できるかは明確ではありません。 論文ではList of a、パラメータ化された型はHindley-Milner型システムの自明な拡張であるなど、パラメータ化された型については触れられていません。統合アルゴリズムのみを拡張する必要があり、残りの推論はそのまま機能します。ただし、パラドックスが発生するため、割り当てを簡単に追加できないため、ML値の制限などの特別な手法を適用する必要があります。 命令型ループ、条件、IO、および複合ステートメントを含む言語の型システムについて説明した論文や本をお勧めしますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.