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

プログラミング言語の設計、実装、および分析に関する質問。このサイトのトピックから外れている、プログラミング方法に関する質問は対象外です。

3
継承、およびJavaのような言語でのメンバー/属性およびメソッドへの動的アクセス
JavaのようなOOプログラミング言語での継承について質問があります。メソッドとその呼び出しをコンパイルする方法を説明したとき、それは私のコンパイラクラスで思い付きました。コンパイルするソース言語の例としてJavaを使用していました。 次に、このJavaプログラムについて考えてみましょう。 class A { public int x = 0; void f () { System.out.println ( "A:f" ); } } class B extends A { public int x = 1; void f () { System.out.println ( "B:f" ); } } public class Main { public static void main ( String …

6
すべての言語に意味的および論理的なエラーがある可能性はありますか?
私はPHPについて読んでおり、多くの著者がセマンティックエラーと論理エラーを別々に言及しています。セマンティックエラーの例として、不正な数のパラメーターで呼び出される関数が提供されます。これはパーサーによってキャッチされませんが、実行時にエラーをスローします。 しかし、C ++などの言語では、これはコンパイラーによってキャッチされます。その時それは構文エラーだと思います。意味的エラーと論理的エラーの違いは何ですか? たとえば、「コンピュータサイエンティストのように考える方法」では、著者は「論理エラー」と「意味エラー」を同じ意味で使用しています。一方、Visual Basic .NETでは。Primer Plusでは、「論理エラー」は「セマンティックエラー」から分離されています。

2
行列乗算プログラムの入れ子ループの不変式
Hoareロジックを使用して2つの行列を乗算するためのプログラムの正確性を証明することについて、卒業論文を作成しています。これを行うには、このプログラムの入れ子ループの不変式を生成する必要があります。 for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end end 私は最初に内部ループの不変式を見つけようとしましたが、今までは本当のものを見つけることができません。上記のプログラムの不変式を見つけるのを手伝ってくれる人はいますか?
7 algorithms  loop-invariants  correctness-proof  formal-languages  regular-languages  pumping-lemma  logic  logic  programming-languages  lambda-calculus  term-rewriting  operational-semantics  complexity-theory  time-complexity  computability  proof-techniques  reductions  digital-preservation  distributed-systems  storage  algorithms  dynamic-programming  check-my-algorithm  reference-request  cryptography  quantum-computing  formal-languages  regular-languages  context-free  formal-grammars  algorithms  graphs  network-flow  algorithms  data-structures  randomized-algorithms  lists  computability  proof-techniques  undecidability  terminology  distributed-systems  parallel-computing  artificial-intelligence  heuristics  search-problem  algorithms  computational-geometry  algorithm-analysis  asymptotics  recurrence-relation  mathematical-analysis  master-theorem  algorithms  algorithm-analysis  runtime-analysis  computability  reductions  turing-machines  formal-languages  context-free 

1
IFの削減ルール?
私はSimon Peyton Jonesの「関数型プログラミング言語の実装」を通じて作業しており、20ページで次のように表示されます。 IF TRUE((λp.p)3)↔IF TRUE 3(β赤あたり)(1) ↔(λx.IFTRUE 3 x)(η赤あたり)(2) ↔(λx.3)(3) ステップ1から2は、η変換として説明されます。しかし、2から3までは、「最後のステップはIFの削減ルールである」と述べています。この削減ルールが何であるかわかりません。

1
LALR文法でのreduce reduceおよびshift reduce error
Pascalの文法を書く必要がありますが、問題を引き起こしていることが1つだけあります。 演算子があるとしましょう(優先度の低いものから高いものに並べ替えられます)。 Postfix^。 接頭辞^。 [ ]、及び.、(同じ優先順位と左連想)。 唯一の終端はid小文字であるです。 次に、式が次のとおりだとします。 任意のID。 Postfix^演算子を使用した式。 プレフィックス^演算子を含む任意の式。 が.後に続く任意の式id。 とを含む任意の式[および]。 次に、shift-reduceとreduce-reduceの競合なしにLALR文法を作成する方法、またはそれができない場合は、それができないことをどのように証明できるかを知りたいです。 いくつかの例: good: a.b.c.d a.b^.c ^a.b^ a.b^^[c]^^.d.e ^^a.b^.d.e^[] bad: a.^b.c 接頭辞がなければ^、この問題は簡単に解決できますが、接頭辞の記号が原因で問題が解決しません。誰か助けてもらえますか?これまでの私の解決策: // this works without the prefix but it does not produce a.b^.c which is wrong. A ::= B | A ^ ; B ::= C | …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.