タグ付けされた質問 「pl.programming-languages」

特にプログラミング言語は、そのセマンティクスに焦点を当てています。

2
厳密な陽性の背後にある直感?
帰納的なデータ型の厳密な陽性が強力な正規化を保証する理由の背後にある直感を誰かが私に与えることができるかどうか疑問に思っています。 明確にするために、私は否定的な出来事を持つことが発散にどのようにつながるか、すなわち次のように定義することによってわかります: data X where Intro : (X->X) -> X 発散関数を書くことができます。 しかし、私は疑問に思っています。厳密にポジティブな帰納型が発散を許容しないことをどのように証明できるでしょうか?つまり、(論理関係などを使用して)強い正規化の証明を構築できる帰納法はありますか?そして、そのような証拠は否定的な出来事のためにどこで壊れますか?帰納型の言語の強力な正規化を示す優れたリファレンスはありますか?

1
依存型チェックが決定可能であることを示すための証明手法
私が取り組んでいる依存的に型付けされた計算の型検査が決定可能であることを示す必要がある状況にいます。これまでのところ、私はシステムが強く正規化していることを証明できたので、その定義上の同等性は決定可能です。 私が読んだ多くの参考文献では、タイプチェックの決定可能性は強力な正規化の結果としてリストされており、それらの場合にはそれを信じていますが、実際にこれをどのように表示するのかと思います。 特に、私は次のことに行き詰まっています。 適切に型付けされた項が強く正規化されているからといって、適切に型付けされていない入力でアルゴリズムが永久にループしないわけではありません 論理関係は通常、強力な正規化を示すために使用されるので、型チェックの用語を進めるにつれ、測定値を減少させる便利な方法はありません。したがって、私のタイプルールが構文指向である場合でも、ルールの適用が最終的に終了する保証はありません。 私は疑問に思っています、依存型付けされた言語のタイプチェックの決定可能性の証明への良い参照は誰にもありますか?小さなコアの計算であれば、それで十分です。決定可能性を示すための証明技法について説明するものはすべてすばらしいでしょう。

3
どの言語についてすでに観測的等価理論が存在しますか?
正確さを証明するために、Barendregtの純粋な型システム(PTS)のプログラム等価性使用可能な概念を探しています。欠けている、十分な特定の型システム。私の目標は、単にその概念を使用することであり、それ自体を調査することではありません。≅≅\cong この概念は「拡張的」である必要があります。特に、であることを証明するには、あることを証明するのに十分でなければなりません適切なタイプのすべての値。トン1t1≅t2t1≅t2t_1 \cong t_2vt1V ≅t2vt1v≅t2vt_1\; v \cong t_2\; vvvv 占領的同等性 占領的同等性は、すべての正しい補題を簡単に満たすことができますが、任意のPTSの表示セマンティクスは、かなり難しいようです。システムFの場合、すでに難しいように見えます。 文脈的/観察的同等性 明白な代替案は、さまざまな形の文脈的同等性です(2つの用語は、地上の文脈で区別できない場合は同等です)が、その定義はすぐには使用できません。さまざまな補題は証明するのは簡単ではありません。彼らはPTSのために証明されましたか?あるいは、理論は「明白な拡張」であるか、または理論が大幅に異なると信じる理由はありますか? 編集:私は上記の難しいことは言いませんでした。 簡単な部分:定義 同等性を定義することはそれほど難しいことではなく、その定義は多くの論文に記載されています(少なくともPlotkin 1975のPCFの研究から始まります。我々すべてのためならば地上コンテキスト、 -である、と同じ与える結果を。ここにはいくつかの選択肢があり、多くの選択肢があります。たとえば、強く正規化している言語で、グラウンドタイプの自然の場合、グラウンドコンテキストは自然を返すものでありは、と C C [ T 1 ] ≃ C [ T 2 ] C [ T 1 ] C [ T 2 ] A ≃ B Bt1≅t2t1≅t2t_1 \cong t_2CCCC[ t1] ≃ C[ t2]C[t1]≃C[t2]C[t_1] …

1
(0 = 1)が偽を意味するという事実の参照には、MLTTのユニバースが必要です
マーティンリーフ型理論で不等式(たとえば)から矛盾を導き出すには、宇宙が必要であることはかなりよく知られている事実です。(0=1)→⊥(0=1)→⊥(0=1) \to \bot 証明もかなり簡単です。ユニバースが存在しない場合は、依存型から依存関係を削除して、その形状として単純な型を取得できます。したがって、は、p → ⊥を証明できることを示します。もちろん、任意の原子pの場合、これは不可能です。(0=1)→⊥(0=1)→⊥(0=1) \to \botp→⊥p→⊥p \to \botppp しかし、これを誰が最初に証明したのかわかりません!誰か参照がありますか?

5
最新のプログラミング言語開発のためのプロセス計算とPL理論の使用
しばらくの間、私はプログラミング言語理論とプロセス計算に非常に興味があり、それらを研究し始めました。正直なところ、それはキャリアのために行くことを気にしないものです。私は理論が非常に魅力的であると思います。私が継続的に遭遇する1つの定数の質問は、PL理論またはプロセス計算のいずれかが、現代のプログラミング言語開発においてまったく重要であるかどうかです。Pi微積分には非常に多くのバリアントがあり、多くの活発な研究がありますが、それらは必要になるか、重要なアプリケーションを持つでしょうか?私が尋ねる理由は、プログラミング言語の開発が大好きであり、真の最終目標が実際にPLを構築するために理論を使用することであるからです。私が書いたものについては、理論との相関はまったくありませんでした。

1
プログラムの最小化
回路の最小化は、特定の回路のサイズを最小化するための問題です。一般的なプログラムに似たものはありますか? 特に私の質問は- 特定のプログラムの命令数を最小限にするアルゴリズムが存在しますか?私はそれが決定不可能な問題であることを知っていますが、何か最適なものを返すソリューションを探していません。 これを行うために既存のコンパイラー変換を適用できますが、事前に検索するために非常に狭い変換とアルゴリズムのセットを定義する必要がないものを探しています。 編集:私が持っているもう1つの問題は、そのような意味論的に同等なプログラムの空間全体を探究することを可能にする健全で完全な計算が可能か、それとも不可能かということです。

1
エイリアス分析に関する文献
私はCSで修士論文を書いていて、エイリアス分析を扱っています。私が興味を持っているのは、Javaライクな言語向けの手続き内のフロー依存の必須エイリアスと多言語エイリアス分析です。 私はこの主題の基本を詳細に説明しているテキストを探していますが、本当に適切なものを見つけることができませんでした。 私はコンパイラと静的分析に関する多くの教科書を生き延びましたが、そこには何も見つかりませんでした。 私はエイリアス分析が使用されている多くの論文を見つけましたが、それらのほとんどはエイリアス分析が適用される問題に焦点を当てており、エイリアス分析アルゴリズムを詳細に説明していません。他のものはCに焦点を合わせていますが、これは一般的なポインタの複雑さが増したために適切ではありません。 私が見つけた最高のテキストは、WhaleyとRinardによる論文「Compositional Pointer and Escape Analysis for Java Programs」です。それは素晴らしい論文であり、良い出発点ですが、エイリアス分析については特に説明していません。 問題は非常に一般的なようですので、私はそれを解決するために利用できるいくつかの標準的なアルゴリズムがあると期待しました。 誰かがこの主題に関するテキストへのポインタを持っていますか?

1
意味と表示の違いは何ですか?
言語のセマンティクスをプログラミングでは、多くの場合、人が話していることを聞いている意味と表記。それらは同じではないようです。違いはなんですか?前者は操作上のセマンティクスに関連付けられていますが、後者は表示上のセマンティクスに関連付けられていますか?ありがとう。


1
平等のための統一ベースの消去規則
数年前、私は後続の微積分における平等のための次の左のルールに出くわしました: S ≐ トン⇝ θθ (Γ )⊢ θ (C)Γ 、S ≐ T ⊢ Cs≐t⇝θθ(Γ)⊢θ(C)Γ,s≐t⊢C \frac{s \doteq t \leadsto \theta \qquad \theta(\Gamma) \vdash \theta(C)} {\Gamma, s \doteq t \vdash C} ここでは、を計算最も一般的な単一化のためのと、その後、とは結論にsubstitionを適用するおよびコンテキスト内のすべての仮説。θ S T C ΓS ≐ トン⇝ θs≐t⇝θs \doteq t \leadsto \thetaθθ\thetassstttCCCΓΓ\Gamma この統一についての興味深いことは、それが普遍的な(すなわち、スコーレム)変数の置換を見つけることを同等化することです。 しかし、どこでこれを読んだのか思い出せず、誰か参照を見つけてくれる人がいるかどうか疑問に思いました。

6
再帰の削除-舞台裏の理論の調査
私はこのサイトに不慣れです。この質問は確かに研究レベルではありませんが、まあ。ソフトウェアエンジニアリングの背景は少しありますが、CSTheoryの背景はほとんどありませんが、魅力的です。長い話を簡単に言うと、この質問がこのサイトで受け入れられる場合は、次の詳細な回答をお願いします。 だから、私はすべての再帰プログラムに反復的な類似点があることを知っています。「システムスタック」に似たものを維持し、戻りアドレスなどの環境設定をプッシュすることによって、そのために提供される人気のある説明を理解しています。 。 もう少し具体的に、チェーンを呼び出す関数がある場合に、このステートメントをどのように証明するかを(正式に)確認したいと思います。さらに、F iがいくつかのF jを呼び出す可能性がある条件ステートメントがある場合はどうなりますか?つまり、潜在的な関数呼び出しグラフには、いくつかの強く関連するコンポーネントがあります。F0→F1…Fi→Fi+1…Fn→F0F0→F1…Fi→Fi+1…Fn→F0F_0 \rightarrow F_1 \ldots F_i \rightarrow F_{i+1} \ldots F_n \rightarrow F_0FiFiF_iFjFjF_j これらの状況を、反復から反復へのコンバーターを使ってどのように処理できるかを知りたいです。そして、私が以前に言及した手で波打った説明は、この問題にとって本当に十分ですか?つまり、場合によっては、再帰の削除が簡単な場合があるのはなぜでしょうか。特に、バイナリツリーのプレオーダートラバーサルから再帰を削除することは本当に簡単です。これは標準的なインタビューの質問ですが、ポストオーダーの場合に再帰を削除することは常に私にとって悪夢です。 私が本当に求めているのは質問です222 (1)再帰を反復に変換できるというより正式な(納得できる?)証明は本当にありますか? (2)この理論が本当にそこにあるのなら、なぜ、例えば、前注文をより簡単に、後注文を反復することがそれほど難しいと私が思うのはなぜですか?(私の限られた知性以外)

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

1
PCFでの連続性関数の係数の定義不可能性に関するリファレンス?
誰かが、PCFの連続性関数の係数の定義不可能性についての参照を私に指摘できますか?\newcommand{\N}{\mathbb{N}} \newcommand{\bool}{\mathsf{bool}} Andrej Bauerがいくつかの問題をより詳細に探求している非常に素晴らしいブログ投稿を書いていますが、この質問にいくつかのコンテキストを与えるために彼の投稿のほんの一部を要約します。ベイル空間BBBは、自然数列のセット、または同等に、自然数から自然数\ N \ to \ Nまでの関数のセットですN → NN→N\N \to \N。この質問では、計算可能なストリームにのみ注意を限定します。 さて、関数f:B → b o o lf:B→boolf : B \to \boolすべてのためならば連続しているX S ∈ Bバツs∈Bxs \in B、の値f(xs)f(xs)f(xs)の要素の唯一の有限数によって異なりxsxsxs、私たちは実際に上位を計算することができれば、それはcomputably連続です必要なxsの要素数に制限されますxsxsxs。いくつかの計算モデルでは、実際にプログラム\ mathsf {modulus}を書くことが可能 です:(B \ to \ bool)\ to B \ to \ Nm o d u l u s:(B → b o …


2
ロックのないコレクションの制限?
DavidRodríguez-dribeasがStackOverflowのコメントに「すべてのコレクションがロックなしで実装できるわけではない」と書きました。これが本当かどうかはわかりませんが、どちらの方法でも証拠を見つけることができません。 このステートメントはあまり正確ではありませんが、もう少し正式な方法で言い換えてみましょう。すべてのコレクションタイプに対して、同じ操作セットを提供CするロックフリーのコレクションタイプCLFがあり、各操作でCLFの対応する操作と同じbig-Oの複雑さを持っていCます。 ちなみに、変革は期待していません。

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