タグ付けされた質問 「compiler-construction」

タグcompiler-constructionは、コンパイラーのプログラミングに関する質問、またはコンパイラーの詳細な内部動作に関する質問に適用する必要があります。特定のコンパイラの*使用*またはコンパイルエラーに関する質問には使用しないでください。

6
.bssセグメントが必要なのはなぜですか?
私が知っているのは、グローバル変数と静的変数が.dataセグメントに格納され、初期化されていないデータが.bssセグメントにあることです。私が理解していないのは、初期化されていない変数専用のセグメントがあるのはなぜですか?初期化されていない変数に実行時に値が割り当てられている場合、変数はまだ.bssセグメントにのみ存在しますか? 次のプログラムで aは、.dataセグメントb内にあり、.bssセグメント内にあります。あれは正しいですか?私の理解が間違っている場合は親切に私を修正します。 #include <stdio.h> #include <stdlib.h> int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9}; int b[20]; /* Uninitialized, so in the .bss and will not occupy space for 20 * sizeof (int) */ int main () { ; } また、次のプログラムを検討してください、 #include <stdio.h> #include <stdlib.h> …

1
VSデバッガーの「マジックネーム」について学ぶ場所
リフレクターを使用したことがあれば、C#コンパイラーが型、メソッド、フィールド、ローカル変数を生成することに気づいたでしょう。これらはデバッガーによる「特別な」表示に値します。たとえば、「CS $」で始まるローカル変数はユーザーに表示されません。匿名メソッドのクロージャタイプ、自動プロパティのバッキングフィールドなどには、他にも特別な命名規則があります。 私の質問:これらの命名規則についてどこで学ぶべきですか?誰かがいくつかのドキュメントについて知っていますか? 私の目的は、PostSharp 2.0で同じ規則を使用することです。

8
Qt:-lGLエラーが見つかりません
私はQtCreatorを再インストールし、新しいプロジェクト(Qt Application)を作成し、コンパイル後にこれを取得しました: /usr/bin/ld: **cannot find -lGL** collect2: error: ld returned 1 exit status make: *** [untitled1] Error 1 18:07:41: The process "/usr/bin/make" exited with code 2. Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit) When executing step 'Make' (プロジェクトは空です。変更はコミットしていません) Qt Creator 2.7.2 (Qt 5.1.0(32ビット) Ubuntu 13.04 ベース) …

6
(A + B + C)≠(A + C + B)とコンパイラの並べ替え
2つの32ビット整数を追加すると、整数オーバーフローが発生する可能性があります。 uint64_t u64_z = u32_x + u32_y; このオーバーフローは、32ビット整数の1つが最初にキャストされるか、64ビット整数に追加される場合に回避できます。 uint64_t u64_z = u32_x + u64_a + u32_y; ただし、コンパイラが追加の順序を変更することを決定した場合: uint64_t u64_z = u32_x + u32_y + u64_a; それでも整数オーバーフローが発生する可能性があります。 コンパイラはそのような並べ替えを行うことができますか、それとも、結果の矛盾に気づき、式の順序をそのまま維持することを信頼できますか?


13
C ++関数が特定の変数の値を変更するかどうかを判断できるコンパイラーを構築できないのはなぜですか?
私は本でこの行を読みました: C ++関数が特定の変数の値を変更するかどうかを実際に決定できるコンパイラを構築することはおそらく不可能です。 このパラグラフは、コンパイラがcons-nessをチェックするときに保守的である理由について話していました。 なぜそのようなコンパイラを構築することが不可能なのですか? コンパイラーは常に、変数が再割り当てされているか、非const関数が呼び出されているか、または非constパラメーターとして渡されているかどうかを常にチェックできます...

3
Android Studioエラーの意味:アノテーションが付けられていないパラメーターは@NonNullパラメーターをオーバーライドします
Android Studioを試しています。新しいプロジェクトを作成し、デフォルトのonSaveInstanceStateメソッドをcreate MyActivityクラスに追加すると、コードをGitにコミットしようとすると、理解できない奇妙なエラーが発生します。コードはこれです: 私が得るエラーはこれです: メソッドシグネチャをに変更しようとするとprotected void onSaveInstanceState(@NotNull Bundle outState)、IDEは、シンボルを解決できないことを通知しますNotNull。 警告を取り除くには何をする必要がありますか?

8
LR、SLR、およびLALRパーサーの違いは何ですか?
LR、SLR、およびLALRパーサーの実際の違いは何ですか?SLRとLALRはLRパーサーのタイプであることを知っていますが、それらの解析テーブルに関する限り、実際の違いは何ですか? また、文法がLR、SLR、またはLALRであるかどうかを示す方法は?LL文法の場合、解析テーブルのセルに複数のプロダクションルールが含まれていてはならないことを示す必要があります。LALR、SLR、およびLRに同様のルールはありますか? たとえば、どのように文法を示すことができますか S --> Aa | bAc | dc | bda A --> d LALR(1)ではなくSLR(1)ですか? 編集(ybungalobill):LALRとLRの違いは何なのか、満足のいく答えが得られませんでした。したがって、LALRのテーブルはサイズが小さくなりますが、認識できるのはLR文法のサブセットのみです。誰かがLALRとLRの違いについて詳しく説明できますか?LALR(1)とLR(1)で回答できます。どちらも1トークンの先読みを使用し、どちらもテーブル駆動型です。それらはどのように違うのですか?

4
GCC最適化レベルはいくつありますか?
どのように多くのGCCの最適化のレベルがありますか? gcc -O1、gcc -O2、gcc -O3、gcc -O4を試しました 非常に大きな数を使用すると、機能しません。 しかし、私は試しました gcc -O100 そしてそれはコンパイルされました。 最適化レベルはいくつありますか?

3
g ++で静的ライブラリを作成する方法は?
誰かが.cppと.hppファイルから静的ライブラリを作成する方法を教えてもらえますか?.oと.aを作成する必要がありますか?また、静的ライブラリをコンパイルして他の.cppコードで使用する方法を教えてください。持っていますheader.cpp、header.hpp .作りたいheader.aです。でheader.aをテストしtest.cppます。コンパイルにg ++を使用しています。

3
なぜこれ(null ||!TryParse)は条件付きで「割り当てられていないローカル変数の使用」を引き起こすのですか?
次のコードでは、割り当てられていないローカル変数 "numberOfGroups"が使用されます。 int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } ただし、このコードは正常に機能します(ただし、ReSharperはこれ= 10は冗長であると言っています)。 int numberOfGroups = 10; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } 私は何かが足りないのですか、それともコンパイラが気に入らないの||ですか? これをdynamic問題の原因に絞り込みました(options上のコードの動的変数でした)。問題はまだ残っていますが、なぜこれができないのですか? このコードはコンパイルされません: internal class Program { #region Static Methods private static void Main(string[] args) { …

14
このJavaコードがコンパイルされるのはなぜですか?
メソッドまたはクラスのスコープでは、以下の行がコンパイルされます(警告付き): int x = x = 1; 変数がデフォルト値を取得するクラススコープでは、以下は「未定義の参照」エラーを示します。 int x = x + 1; 最初にx = x = 1同じ「未定義の参照」エラーが発生するのではないですか?または、2行目int x = x + 1をコンパイルする必要がありますか?または私が行方不明のものがありますか?

5
Eclipse:アサーションを有効にする
私はEclipse Galileoを実行しています。Eclipseでアサーションを有効にするにはどうすればよいですか? 他のサイトで提案されているように、私は引数を追加しようとしました:-ea。また、コンパイラーの準拠レベルをに変更してみました1.4。これらの提案はどちらも機能しませんでした。

14
Xcode 4(および依存関係)のコンパイル、ビルド、またはアーカイブの問題
この質問は、過去数週間にわたって進化し、より一般的な問題をカバーしています xcode4 (そして古いプロジェクトからのアップグレードプロジェクト xcodes)。 ただし、問題の多くは、同じ手順に従うことで解決できます。 次のいずれかの問題がある場合は、承認された回答の方法を試してください。 Xcode 4がアプリのアーカイブに失敗する Xcode 4が使用できないアーカイブを作成する Xcode 4は.ipaを作成しません Xcode 4は、プリプロセッサエラーのためにコンパイルに失敗します Xcode 4はヘッダーを見つけることができません Xcode 4のコードコンプリートが機能しない プロジェクトの依存関係はコンパイルされません 依存関係を追加すると、上記の問題が発生します 元の質問 タイトル:Xcode 4の「字句またはプリプロセッサの問題ファイルが見つかりません」 Xcode 4にプロジェクトがあり、正常にビルドしてデバイスとシミュレーターで実行しますが、静的ライブラリに関連付けられたヘッダーファイルを検索すると、アーカイブしようとするとエラーが発生します。 In file included from /Volumes/Development/Path/LBProject/LBProject/LBProject-Prefix.pch:15: In file included from /Volumes/Development/Path/LBProject/LBFDefines.h:23: In file included from /Volumes/Development/Path/LBProject/Classes/LBProjectAppDelegate.h:11: In file included from /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDirectoryManager.h:10: /Volumes/Development/Path/LBProject/LBProject/../FKNDirectory/FKNDataModel.h:11:9: fatal error: 'Merchant.h' file …

11
ブートストラップには依然として外部サポートが必要です
言語をブートストラップする、つまり、言語自体のコンパイラー/インタープリターを作成するという考えを聞いたことがあります。私はこれがどのようにして達成され、少し周りを見渡せるのか疑問に思っていました。 別の言語で初期コンパイラを書く。 最初のコンパイラの特別なケースのように見えるアセンブリでの初期コンパイラのハンドコーディング 私には、どちらも外部のサポートが必要であるという意味で、どちらも実際に言語をブートストラップしているようには見えません。実際にコンパイラを独自の言語で作成する方法はありますか?

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