問題タブ [opcode]
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.
regex - RPAREN を正しく検索する (高速解析を有効にするため)
コード内の RPAREN を探す最良の方法は何ですか? たとえば、次の擬似コードがあります。
たとえば、最初の LPAREN を考えると、最後の RPAREN と一致する必要があります (ケース B)。2 番目の LPAREN を考慮すると、最後の 1 つの RPAREN と一致する必要があります (ケース A)。
"C)"
RPAREN を含む文字列がありますが、大文字と小文字を区別する必要があることに注意してください。
ええと... 正規表現について考えますが、それは非常に複雑になると思います(一致する文字列、正規表現が必要であり、RPARENなどを含めることができると別の人が考えることに注意してください)。次に、(コードを介して)手動スキャンを使用して各部分を検出することを考えます(手動正規表現のように)。
私が構築しているコード(独自のプログラミング言語)を解析するためにそれが必要です。そして、高速化するためにいくつかのコードを読み取ることを無視したいと思います。
例えば:
この場合、決して使用されないb()
ため、解析するだけで済みます。a()
したがって、スターター{
でスキャンし、実際の まで無視します (ただし、保存します) }
。関数が使用されている場合は、解析されます。
私の疑問:
- 正規表現または手動コード?
- それは良いことですか、それとも悪いことですか?パーサーの速度を向上させるのに役立つコードが使用されていない場合は、コードを無視しますか?
- トピック外: パーサーを高速化するためのヒントはありますか? おそらく、言語コードをコンピュータ コード (オペコード???) と共に保存する「事前に解析された」ファイルですか?
c# - 「Calli」という用語の意味論的推論または意味は何ですか?
グラフィック プログラミング サンプルなど、コードのさまざまな場所でこの用語を目にしました。C++ セマンティックのようですが、どうやらOpCodes.Calliに関連していると思われるEmitCalliという C#/.NET マネージ実装があります。これは機械語の命令だと思います。素人の用語にやや近いこの用語の説明はありますか?
c - Cを分解し、オペコードを置き換えます
私は逆転の基本を学ぼうとしていて、小さなCプログラムを分解しようとしました。私はMacOS10.7.2(64ビット-Intel)で作業しており、gcc4.2.1を使用しています。
でコンパイルし、gdbでしばらく作業して、呼び出し(100000e8e)gcc -o test test.c
の後にブレークポイントを設定し、関連するアセンブリコードを取得しました(私が思うに):strcmp
さて、アセンブラの私の理解によれば、物事は簡単なはずですstrcmp
。100000e89での呼び出しの後、の値%ecx
が保存され、0と比較されます。
それらが等しくない場合(jne
)、ジャンプ(else)があり、そうでない場合は続行する必要があります(if)。
非常によく、間違った入力でも「正しい」となるように変更jne
することを考えました。je
実際、私はしませんでした。問題が何であるかを理解しようとして、操作コードを調べようとすると、奇妙な(私にとって)出力が得られます:
0f85
のコードであるべきであるという兆候はありませんjne
。
少し戸惑いました…ジャンプのオペコードをもらえませんか?誰かが私のエラーを説明してもらえますか?
java - どのJavaコードがjavac1.6に「swap」および「nop」オペコードの使用を強制しますか?
私はアマチュアJVM実装に取り組んでおり、仕様内のすべてのオペコードのテストカバレッジがあることを確認しようとしています。私は最後の数までそれを手に入れました、しかしnop
そしてswap
私を避けてきました。たとえば、次のような単純な関数を使用できますswap
。
ただし、によって生成されるバイトコードはjavac 1.6
、ローカルストレージの代わりにスワッピングを回避します。
何か案は?
c - ACプログラムのオペコードを取得する方法
gdbを使用してプログラムのアセンブリコードを取得する方法を知っていますが、オペコードを取得するにはどうすればよいですか?Linuxサーバーをハックするために必要です(私が持っているクラスの一部であるため、実際のサーバーに害が及ぶことはありません)。実際、私はこの記事を読んでいて、どうすればアセンブリから取得できるのか疑問に思っています。
以下:
システムはlinuxx86で、使用する言語はCです。自動化された方法が本当に必要ですが、手動のソリューションでも機能します。
つまり、%ebp、%esi、%espなどを変換するにはどうすればよいですか。使用できるマップはありますか?または自動化されたプログラム?
php - 異なるファイル バージョンでの APC オペコード キャッシング
単一のサーバーに、同じ Web アプリケーションのいくつかの異なるバージョンがデプロイされています。
例えば :
www.myserver.com
rc.myserver.com
alpha.myserver.com
同じ PHP クラスのバージョン間で競合が発生する可能性があることを懸念しています。APC はこれを正しく処理しますか? そうでない場合、これを回避するにはどうすればよいですか?
ご協力いただきありがとうございます。
android - Android、Eclipse:「展開されたオペコードがありません」というエラーはどういう意味ですか?
Eclipse から Android アプリをデバッグしようとすると、次のメッセージが表示されました。
これは一体何を意味するのでしょうか?
どうも
x86 - Intel x86 XOR オペコード 0x31
次の Intel x86 命令はオペコード 0x31:xor <r/m32>,<r32>
です。命令の実際のマシン コードでは、0x31 の後に、使用されるレジスタまたはメモリ アドレスを表す別の 16 進数値が続きます。私の質問は次のとおりです。
- XOR できる可能性のあるレジスタを参照する 16 進数コードは何ですか?
- 使用できるレジスタとメモリ引数の組み合わせの数が与えられた場合、この命令が作成できる可能性のあるマシン コードの制約は何ですか?
x86 - Turing 完全英数字 x86 命令セット (サブセット)
英数字の x86 オペコードの最小限の、計算上普遍的なサブセットを作成しようとしています。最終的には、サブセットに含まれる命令をできるだけ少なくしたいと考えており、最小サブセットが複数ある場合は、それも知りたいと考えています。サブセットは、英数字命令のセット全体で作成できるプログラムをシミュレートできる必要があります。命令は、文字「AZ」、「az」、および「0-9」に対応する命令のみをカバーする必要があります。
これまでのところ、 、 、 、 、 で十分だと思いますpush
がpop
、inc
もっとdec
小さいcmp
セットje
があると確信しています。私が生成したセットが、すべての英数字命令を使用して任意のプログラムをシミュレートできることを証明するにはどうすればよいでしょうか? そのようなセットが最小であることをどのように証明できますか? そのような命令サブセットが存在するかどうかは誰にもわかりませんか?
android - AndroidR.javaの拡張オペコードはありません
Androidアプリケーションのコンパイル中に重要な問題が発生しました。
Windev Mobileを使用して、Javaコードを生成し、apkをコンパイルして作成しますが、apkを作成すると、エラーが発生します。
コマンドライン:"myjavapath\java.exe" -Xmx1024m -Djava.ext.dirs=.\platform-tools\lib -jar .\platform-tools\lib\dx.jar --dex --output "path\classes.dex" "path\classes" "path\libs"
返されたエラー:出力の書き込みに問題があります:No expanded opcode for 0004368d R.java:11@0001: invoke-direct v0:NffffLmynamespace/R$attr;, java.lang.Object.<init>:()v
さらに、R.javaのR$attrには何も含まれていません。
64kという厳しい制限があると思います。だが:
- R.javaファイルには364行しか含まれていません。これらの行がフィールド/メソッド参照である場合、64kのハード制限からはほど遠いです。
- このエラーは、WindevMobileプロジェクトで特定のウィンドウを追加したときに発生しました。別のプロジェクトでエラーなしで使用しているウィンドウ。
それで、あなたはそれが何から来ていると思いますか?情報や書類が必要な場合は問題ありません。
前もって感謝します。
PS:たぶん私の英語は完璧ではありません、ごめんなさい。