問題タブ [compiler-construction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - コンパイラをクラッシュさせたことがありますか?
誰もが (少なくともコンパイル済み言語を使用するすべての人が) コンパイル エラーに直面したことがありますが、実際にコンパイラをクラッシュさせることが何回ありますか?
「内部コンパイラ エラー」がかなりの割合で発生しましたが、ほとんどは再コンパイルするだけで解消されました。コンパイラをクラッシュさせる (最小限の) コードはありますか?
.net - Ruby .NET コンパイラはありますか?
Ruby 言語用の .NET Framework コンパイラはありますか? DLR (動的言語ランタイム) について聞いたことがありますが、これにより Ruby を .NET 開発で使用できるようになりますか?
asp.net - 断続的な「オブジェクト参照がオブジェクトのインスタンスに設定されていません」を追跡しています。ビルド時のエラー
ASP.Net プロジェクトでかなり長い間発生している断続的なエラーを追跡するために、いくつかの助けを借りることができます。
ソリューションのビルド時に断続的に、"/: ビルド (web): オブジェクト参照がオブジェクトのインスタンスに設定されていません" というエラーでビルドが失敗します。エラーには、関連するファイル、行、列、またはプロジェクト情報がありません。このエラーの奇妙な点は、再構築を繰り返すとエラーが解消され、ビルドが成功すると実行時エラーが発生しないように見えることです。エラーが 1 回だけ表示される場合もあれば、3 ~ 4 回表示される場合もありますが、最終的にはビルドが正常に終了し、毎回正常にビルドされているように見えます。なぜ、いつエラーが発生するのか、パターンを突き止めることはできませんでした。エラーは常に最終的にビルドされるため、私たちにとって重大な問題ではありませんでした。ただの迷惑です。しかし、明らかな理由で私が欲しいのは1つです。
これはもともと ASP.net 1.1 で開発され、2.0 に変換されたアプリケーションであり、その後どこかで継承したため、問題が最初にいつ表面化したかはわかりません。ここにいる全員に関する限り、それは常にそこにありました。
明らかに、誰かが私の問題の原因を特定することを期待していません。潜在的な問題を特定するために、ソリューション全体を検討する必要があるからです。コード内のエラーの実際の原因を追跡する方法について、誰かが私にいくつかの新鮮なアイデアを提供してくれることを願っています. どこかから来ているはずですよね?どこを調べたらどうなるの?
c++ - クラス演算子のみでキャストする方法はありますか?
ランダムな質問のようなもの...
私が探しているのは、キャスト元のクラス インスタンスの定義済み演算子を使用するキャスト操作を表現する方法であり、型に定義済みキャスト演算子がない場合はコンパイル時エラーを生成します。たとえば、私が探しているのは次のようなものです。
興味深い補足: 上記のコードは VS2005 C++ コンパイラをクラッシュさせ、VS2008 C++ コンパイラでは正しくコンパイルされません。これは、コンパイラのバグであると推測していますが、うまくいけばアイデアを示しています。
この効果を達成する方法を知っている人はいますか?
編集:これを使用する理由を説明するためのより多くの理論的根拠。型をカプセル化または抽象化することになっているラッパー クラスがあり、それをカプセル化された型にキャストしているとします。static_cast<> を使用することもできますが、失敗させたい場合に機能する可能性があります (つまり、コンパイラーは、要求した型に変換できる演算子を選択します。その演算子が存在しないために失敗したい場合)。
確かに、これはまれなケースですが、カプセル化された関数でコンパイラに実行してもらいたいことを正確に表現できないのは面倒です...したがって、ここで質問します。
c++ - C++ での定数とコンパイラの最適化
C++ の const-correctness に関するすべてのアドバイスを読みましたが、コンパイラがコードを最適化するのに役立つため、(部分的に) 重要であることがわかりました。私が見たことがないのは、コンパイラがこの情報を使用してコードを最適化する方法についての適切な説明であり、カーテンの後ろで何が起こっているかを説明している優れた本でさえありません。
たとえば、コンパイラは const として宣言されているメソッドと、そうではないはずのメソッドをどのように最適化しますか。可変変数を導入するとどうなりますか? それらは const メソッドのこれらの最適化に影響しますか?
c# - C#コードをASTに変換しますか?
現在、C#コードを抽象構文木に変換することは可能ですか?
編集:いくつかの説明; コンパイラがASTを生成することを必ずしも期待しているわけではありません。「公式」なものを使用したいのですが、パーサーで十分です。ラムダ式は、私が探しているステートメント本体を使用できないため、残念ながら十分ではありません。
compiler-construction - プログラマーのメモ帳がメイク出力をキャプチャしない?
私はプログラマーのメモ帳をしばらく使用していますが、驚くほどシンプルなツールであることがわかり、標準の IDE オーバーヘッドのほとんどを必要としないことがわかっているプロジェクトで使用することを好みます。しかし、最近、Windows Vista でプログラムを実行しているときに、この問題に遭遇しました。
組み込みの「make」コマンドを実行すると、make.exe からの出力が想定どおりにウィンドウにキャプチャされないことがわかりました。エラーコードはキャッチされていますが、プログラムが実際に何を出力しているかに関係なく、出力は常に完全に空白です。(コマンド ラインからプログラムを実行すると、PN の [Capture Output] オプションを使用せずに実行した場合と同様に、出力が正常に表示されます。) これの原因を知っている人はいますか?
ありがとう
gcc - 警告IDを持つ警告メッセージを取得するためのg++またはgccオプション
デフォルトでは、gcc /g++は行番号のみの警告メッセージを出力します。g ++またはgccがビルド警告メッセージを警告IDに関連付けて、警告メッセージを(解析せずに)簡単に識別できるようにするオプションを探しています。また、より詳細な警告メッセージを取得するためのオプションは他にありますか?(各警告メッセージはそれ自体でかなり説明的だと思いますが、ただ好奇心が強いです)
ありがとう。
asp.net - クラスはテスト/コンソール用にコンパイルされますが、Asp.net アプリケーションではコンパイルされません
私はシンプルなインターフェースを持っています:
クラス VisitorLogController はこのインターフェースを実装します。
コンソール アプリケーションまたは TestFixture から - 問題ありません - コンソール/テスト フィクスチャは完全にコンパイルされます。
ただし、コード ビハインドにこのコードを含む同じソリューションの Asp.Net Web サイト (アプリケーションではない) から
コンパイラは次の例外をスローします。
エラー 1 'WebSiteBusinessRules.Interfaces.IVisitorsLogController' には 'GetUniqueSubscribersCount' の定義が含まれておらず、タイプ 'WebSiteBusinessRules.Interfaces.IVisitorsLogController' の最初の引数を受け入れる拡張メソッド 'GetUniqueSubscribersCount' が見つかりませんでした (using ディレクティブまたはアセンブリ参照?)
同じファイル内のこのコードの場合:
コンパイラは文句を言わずにこれらの行をコンパイルします。実際、インターフェイスに何か新しいものを追加すると、コンパイラは asp.net ページをコンパイルしようとすると文句を言うようになりました。
using ディレクティブまたはアセンブリ参照が欠落している可能性はありません。そうしないと、両方のメソッドが失敗します。
これは私を夢中にさせています!
何か考えはありますか?
ありがとう、
ジェレミー
c++ - 16 ビット x86 コンパイラを探しています
私は組み込みシステム プロジェクトに取り組んでおり、コンパイラが Paradigm C++ IDE にプログラム的に組み込まれているという問題に遭遇しました。ビルドを自動化できるようにしたい。
プロセッサは AMD186ES です。私はOSで作業していません-ベアメタルのものだけです。C++ からリアルモードの 16 ビット 8086 マシン コードを生成する必要があります。
私のグーグルは、G ++がそのようなコードを構築できることを示しています。
私の質問は次のとおりです。
このマシン コードをビルドするように g++ を構成できますか?
それを行うことができる他の C++ コンパイラはありますか?