問題タブ [control-flow]
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.
c - 静的変数の最適化に関するCブランチ
このコードのプロファイルを作成しておらず、クリティカルパスでもないということで、この前置きをさせてください。これは主に私自身の好奇心のためです。
静的intを既知のエラー値に宣言/定義する関数があります。これによりコードが分岐します。ただし、関数が成功した場合、ブランチが二度と取得されないことは確実です。このためのコンパイル時の最適化はありますか?具体的にはGNU/gcc / glibc?
だから私はこれを持っています:
したがって、関数が正常に完了すると(この関数がnullを返す場合は、プログラムを終了します)、fdは今後のすべての呼び出しで有効になり、最初の分岐を取得することはありません。__builtin_expect()マクロがあることを知っているので、次のように書くことができます
しかし、私が理解していることから、これはコンパイラーへのヒントにすぎず、それでも条件チェックを実行する必要があります。また、99.9999%のケースでは十分すぎるため、パフォーマンスの向上はごくわずかです。
初めて実行した後の最初の条件チェック(fd <0)さえも防ぐ方法があるのではないかと思いました。
scala - Scala でメソッドの本体の外側からアーリー リターンを実装するにはどうすればよいですか?
免責事項:誰かがそれを言う前に: はい、私はそれが悪いスタイルであり、奨励されていないことを知っています. これは、Scala をいじって、型推論システムのしくみと制御フローの微調整方法について詳しく学ぼうとしているだけです。このコードを実際に使用するつもりはありません。
だから:私がかなり長い関数にいると仮定してください。最初に多くの連続したチェックがあり、それらが失敗した場合、関数はすべて他の値を返し(スローではありません)、それ以外の場合は通常の値を返します。 . return
の本体には使用できませんFunction
。でもシミュレートしていいの?break
でシミュレートされているのと少し似ていscala.util.control.Breaks
ますか?
私はこれを思いついた:
ここでの私のチェックは明らかにダミーですが、主なポイントは、実際に興味深いコードがネストされすぎて、私の好みには合わないというようなことを避けたいということです:
私のソリューションはここで問題なく動作し、必要に応じて戻り値として 4 を使用して早期に返すことができます。問題は、型パラメーターを明示的に記述しなければならない[Int]
ことです — これは少し面倒です。これを回避する方法はありますか?
language-agnostic - 制御フロー グラフのパスで検索
多くの場合、 function での印刷に問題があり、 functionからの制御フロー グラフで到達可能な in コードfoo
のすべての出現を探したいと考えています。または、との間のパス内のすべてのコードで( を呼び出す前は仮定が trueであり、 に到達した後は false であることを確認したため、その間で何が起こっているかを調べたいと思います)。Print
foo
foo
bar
foo
bar
それを簡単にできるツールはありますか。すべての C コードをCILでコンパイルして、CFG で検索を行う OCaml モジュールを作成するつもりはありません。最小限の手間で動作するものが欲しい。
Eclipse CDT はそれを実行できるはずですが (CFG は で計算できますshow function hiererchy
)、似たようなものは見つかりませんでした。
私は現在 C/C++ をターゲットにしていますが、同様のツールについて教えていただければ幸いです。CQLにそれを表現する方法があるかどうかはわかりません。
java - Antlr-制御フローグラフ
Antlrを使用してJavaプログラムの制御フローグラフを作成することは可能ですか?そうするためのガイドラインを提供するリソースはありますか?Antlrを使用するよりも優れたアプローチはありますか、それとも役立つ可能性のある日食ツールはありますか?
ssis - ストアドプロシージャの出力に基づいてパッケージの実行を停止するにはどうすればよいですか?
最初のタスクがストアドプロシージャを実行して、実行日が休日ではないことを確認するSSISパッケージがあります。休日の場合は、カウントが1のレコードセットを返します。
レコード数が1の場合はSSISを停止できるようにしたいのですが、レコード数がゼロの場合は実行を継続します。これを実装するための最良の方法がわかりません。パッケージに追加する必要がある制御フロー項目は何ですか?
私はSSISに比較的慣れていないので、どのアイテムを追加すればよいかわかりません。どんな助けでも素晴らしいでしょう。
c++ - GCC の enum スイッチの制御フロー解析が不十分
次の C++ コードでは:
-Wall
でコンパイルすると、制御が非 void 関数の終わりに達したという警告が表示されます。なんで?
編集
test
この例の変数に任意の値を含めることができると言うのは、一般的に正しくありません。
foo(12354)
コンパイルしません:
12354 は有効なTest
値ではないためです (実際にはプレーンCでは有効ですが、C++ では有効ではありません)。
任意の整数定数を列挙型に明示的にキャストできますが、それは未定義の動作と見なされませんか?
php - ユニットテスト:特定のテストと制御の流れ
私はユニットテストと一般的なテストにまったく慣れていません。私はphpUnitを使用して開発していますが、私の質問はより一般的/設計上の質問であるため、実際の環境はそれほど重要ではありません。
テストケースをできるだけ具体的に書くのは良い習慣だと思います。例(遅いほど良い):
それが正しければ、ここに私の質問があります:
テスト対象のオブジェクトの状態が外部ソース(つまりDB)に依存している場合、または一般的に、テストケース内にフロー制御を記述することは受け入れられている方法ですか?
好き:
テストケース内のこの種のフロー制御は許容されますか、それとも「コードの臭い」であり、回避する必要がありますか?よろしければ、ここで覚えておくべきヒントや実践はありますか?
c - 関数の引数に応じた C プリプロセッサのフロー制御
私がやりたいことは、このようなものです
となることによって
出力のトリプルループ内にprintfを生成し、
SOME_OTHER_CODE が生成されます これは可能ですか?
functional-programming - 「call/cc」を使用して「if」を実装できますか?
「call/cc」を使用して任意の制御フロー構造を実装できると聞いたので、「call/cc」を使用してそのようなすべての構造を実装しようとしていますが、問題が発生しています。「if」がないと仮定すると、「define-syntax」と「call/cc」を使用してどのように実装しますか? それは可能ですか、それとも私は誤解されていますか? 「call/cc」を使用して無条件ジャンプを実装する方法は知っていますが、マシンレベルでは、実行がプロセッサのステータスビットに依存する分岐命令で条件付き実行が実行されます。このタイプの構造がなければ、それがどのように行われるかわかりません。
scala - Scala でのローカル以外の戻り値は新しいものですか?
同僚がこれを見せてくれましたが、コンパイルされていることに驚きました。
そしてこれも機能します:
return
内部から閉鎖は許可されていないと思いました。これはいつから機能していますか?このような非ローカル リターンに関する注意事項はありますか?