質問

私の理解であることができるプログラムを書く正式があることを証明する書かれたプログラムは、静的に入力言語の無料となりますの一部(小)のサブセットします。

私の問題は以下のとおりです:

そしてチューリング完全な言語およびBるとされる"タイプの安全"と"B"になると推定されません。仮に私が与えられプログラムLチェックが正確であるかの書かれたプログラムA.何が止まらない翻訳プログラムを書Bには、L.場合はPを変換しみらそんPL有効な型チェッカーのためのプログラムを書いたします

私は修行代数とのみから研究CSいがあることを明することはできませんがいになっています。この型安全である"ことがわかさぎ怪へと向かった。

役に立ちましたか?

解決

させるチューリング-完全言語へ静的に入力させる'の言語から取り外すタイプチェックなの型の注釈がるその他の目的に).の受け入れプログラムの可のサブセットの受け入れプログラムの'.なので、特に、"もチューリング-完了です。

に考える翻訳者からBへ(およびその逆).何をもっています。この一生は二つのことをやろうとしてい

  1. 第一に、心から感謝するとともに各プログラムyプロジェクトリーダープログラムA.この場合、LPyいて常にTrueを返すプログラムとしての、そして時間によって正しく入力.

  2. 第二に、Pに心から感謝するとともに各プログラムyプロジェクトリーダープログラムの'.この場合、LPyい場合にTrueを返しますPyがプログラムのない場合はFalse

初めての場合にはない利回りに何でも興味深いようにこだわりの場合でしょう?な機能をLPに定義されたプログラムBを教えても興味深いのはプログラム。いないではありませんので、不変の変更P.としてはチューリング-完全なものの場合はPできるように選択し、その画像があA.その後LPが常にTrueです。一方、Pが選ばれ、いくつかのプログラムマップの補A'.この場合LPが吐き出Falseにある全てのプログラムBご覧のとおり得られないときには、いくつかのものだけに依存す。

いつでも入れより数学的には次のようになっています:あるカテゴリCのプログラミング言語るオブジェクトがプログラミング言語とそのmorphismsは翻訳者からのいずれかのプログラミング言語ることがありますか。特にがある場合は射P:X->Y,Yは少なくとも表現としてのX.各ペアのチューリング-完全な言語がありmorphismsます。各オブジェクトX C(各プログラミング言語)を関連付けられてい設定という{X}(悪表記のは、私の方が部分的に定義される機能できることによって計算されたプログラムのX.各射P:X->Yをテーションが起こるリスクを内包{X}->{Y}のセット。ましょう正式に転者morphisms P:X->Yを誘導する人{X}->{Y}.私はこの結果、カテゴリーは、数理、ローカライズC)による。現在、包摂A→"は、射による。しかし、保存しなけ下automorphismsのである、射A→"は不変なのは'C'.言い換えればこのことから抽象的な視点の属性には"静的型付き"ではない指定できる任意の取り付けます。

ぶことができ点が明確でも思いのままC'としては、幾何学的形状を三次元空間とのユークリッド運動をしていmorphisms.A'Bの二つの幾何学的形状、PとQはユークリッド動作をBにはA'ます。例えば、'およびBが二つの側面それでは、固定点の、は、スタンドのサブセットA'.えこの"静的型付き".しいのか知りたいのポイントは静的に入力.なお、以下のようなy,地図でPを'および試験では当社の著点では".一つとして簡単に参照によっては、選択した地図は、p.または、その著点球り付けることができるautomorphisms(とユークリッドモーション地図の球面そのもののことです。

他のヒント

の場合は、(B「がある場合は、正しいです) 'と等価Aに(Bで書かれたプログラム)' のすべてののB翻訳することができ、その後、言語Bを楽しんでいますただ当然の理論的な意味での言語A(、;-)同じくらい「型の安全性」など - 基本的にこれはBはあなたが完璧なタイプの推論を行うことができるようになっていることを意味します。

:例えば、考える - しかし、それは非常に動的言語のために制限されています
if userinput() = 'bah':
    thefun(23)
else:
    thefun('gotcha')
thefunは(のが前提としましょう)int型の引数の型保証されている

ではなく、STR引数。今? - どのようにあなたが最初の場所で言語Aにこれを翻訳しない...

他に同点とされていることがご質問にある証明のよう矛盾のいずれかの

  • あきマップB
  • 型安全な語彙的財産の言語

します。私の直感は後者であろう、こだわりポイント:この型安全であるメタ言語的な物件です。

あの"怪"です。;)

セットのチューリング-完全な言語であるタイプの安全に関する自明でない[1 なし】タイプシステム T厳しい サブセットのチューリング-完成ます。このように、一般の場合、翻訳者 P-1 から BA 存在そのため、いずれも他の翻訳-タイプチェッカー LP-1.

膝-ジャークに反応したこの種の請求項がす: ナンセンス!両 A B はコンピュータの完全な表現できま 他の 応用機能 のいずれか 単語帳(英語音声の再生も可能) 事実、これが正しい--す ができ 不計算可能な機能のいずれかの言語しかし、ここでは、できる表現 非常に少.特にを構築できますの表現がdenotational意味が明確になっていないなどが楽しみの総和の文字列"foo"および"バー"(このはの概要 Chubsdad アレックスMartelli回答).このような表現する"を"言語の B, ものでないことが表現できる言語 A, では、denotational意味は未定義とな良識ある方に翻訳します。

この大きな強みですの静的タイピング:場合はタイプシステムはできないことを証明し、コンパイル時には、上記の機能を受けるパラメータでの成果の算術演算は加算演算子が定義できるので拒否されたとして病気に入り.

ることに注意してくださ以上のような例では説明のメリットを静的タイプシステムでもなり控えめです。一般的に、静的タイプシステムが必要これらに限定されない単なる強化型の正のパラメータが実際に表現できるので 他の ご希望のプログラムすることが証明できるコンパイルす。例えば、作成することができるタイプシステムを確実に制約がリリースファイルシステムの取扱い例えば データベースへのファイル、ネットワークソケット など。 内と同じ範囲を取得しました。明らかに、これは非常に貴重なドメインとしての生命維持システムなど、 正多くのパラメータをできるだけシステムが重要である。条件を満たす場合は、静的タイプシステム、これらの証明は無料です。

[1]による自明でないというのは、その全ての可能な表現などを入力.

私の理解では、これはコンパイル時対ランタイムに関係しているということです。静的型付け言語では型チェックの大部分は、コンパイル時の間に行われます。動的型付け言語では、その型チェックの大部分は、実行時に行われます。

私は、この他の方法でのラウンドに答えてみましょう。

「ダイナミック」プログラミングの2種類があります。

一つは、あなたがPythonのIDLEのシェルのようにそれを考えると、そのシェルにタイピング定義によってプログラミングできるシェルのいくつかの並べ替えを持っていることを意味する、「動的型付け」されます。

は、動的プログラミングの他のタイプは、より理論的なものです。動的プログラムは、独自のソースを変更することができるものです。それはintrojectionのいくつかのレベルを必要とし、多くの場合、マイクロコントローラのプログラムメモリを変更するために使用されます。時には数のクランチングのためのルックアップテーブルを生成する動的計画法と呼ばれています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top