問題タブ [symbol-table]
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.
compiler-construction - コンパイラ スキャナ - シンボル テーブルの「位置」の意味
コンパイラ設計コースで、スキャンの出力は一連のペア(トークン コード、シンボル テーブル内のトークン位置) であると読みました。「位置」部分の意味について少し混乱しています。シンボルテーブルがインデックスを使用して要素にアクセスできる構造、たとえば配列として表される場合、「位置」は明確で、配列の 1 番目、2 番目、99 番目の要素を意味します。たとえば、ソース コードの場合:
スキャンの出力はストリームになります: ( ..., (id,1), ..., (id,2), ..., (id,3) ) - 他のトークンは描写していませんシンプルさ -シンボル テーブルは(a,b,c)となるため、シンボル テーブルの位置 1 に a、位置 2 に b、位置 3 に c が配置されます。
記号表を二分探索木で表すとどうなるでしょうか? 同じソース コードの場合、シンボル テーブル ツリーにはキー 'b' を持つルート ノードがあります。b の左側のノードはキー 'a'を持ち、b の右側のノードはキー 'c'を持ちます。スキャンの出力は次のようになります( ...,(id,?), ..., (id,?),..., (id,?)) ? ツリーが Node クラスを使用して実装されている場合、次のようにすればよいでしょうか: ( ...,(id, キー = a のノードへの参照),...) ?
シンボル テーブルがhashtableの場合はどうでしょうか。たとえば C# では、Hashtable オブジェクト HashST とスキャンの出力を(..., (id,pointer to HashST["a"]),...) のようにすることはできますか?
これが正しいアプローチであるかどうかは本当にわかりません。ツリーまたはハッシュテーブルで「位置」が他に何を意味するのでしょうか?
前もって感謝します!
c# - なぜ辞書.Item() は、IDictionary.Item() が見つからないキーで例外をスローしますか?
Dictionary.Item()メソッドが KeyNotFoundException をスローするのにIDictionary.Item()がスローしないのは、私には奇妙に思えます。そして Dictionary はこのインターフェースを実装しています。では、なぜインターフェイスの慣例を破るような実装があるのでしょうか?
(また、Dictionary の背後にあるアイデアをイメージするシンボル型構造には、メソッドが例外をスローしてはならないという規則があるようです。)
ruby - Rubyインタープリターは参照されていない変数を魔法のように割り当てますか?
これまでのところ、「foo」は未定義です。
foo はまだ定義されていないはずですが...
シンボルテーブルに存在しますか?if ブランチのロジックには決して到達してはならないので、突然 nil になるのではなく、foo が未定義のままであるべきだと思いますか?
c++ - C++ でファイルからシンボル テーブルを生成する
したがって、C++ では、このような C スタイルのネストされたブロックを含む入力ファイルからシンボル テーブルを生成しようとしています。
出力は次のようになります。
私は非常に多くのことを試しました。ベクトル、マップを使用して、最終的にマルチマップを使用することにしました。私が何をしても同じ問題に陥るので、おそらく私が選択したデータ構造とは何の関係もありません。
問題は、1 行ずつ読んでいるため、必要以上に計算してしまうことです。しかし、マルチマップが消去/ポップされた後に反復するよりも、各行のforループでマルチマップを計算/反復しない場合。出力を正常に表示するために論理的に何をすべきか、または正しい軌道に乗っているかどうかはわかりません。
これまでのところ、私の .cpp ファイルは次のとおりです。コメントは過去の試みであり、当面は使用しないことを選択したため、無視してください。また、このバージョンではベクトルを使用していないため、ベクトル関連のコードは無視してかまいません。私は今、マルチマップを使用しています。
これは私が得る出力です。
c++ - クラスのすべての関数を表示するにはどうすればよいですか?
主に、コンパイラによって生成された関数 (デフォルト コンストラクタ、コピー コンストラクタ、代入演算子、移動代入、デストラクタ) を見たいと思っています。
コンパイラが生成した関数を確認したいだけです。
シンボル テーブルでこれを確認できると思っていましたが、シンボル テーブルで名前マングリングを見つけるのに苦労しています。定義した他の関数を確認できますが、コンストラクターなどを見つける方法がわかりません。
どの関数がクラスに関連付けられているかを確認するより良い方法はありますか?
c - GDB - 「No Symbol Table」の処理方法
検査したいアプリケーションがありますが、それを再構築してシンボル テーブルを作成するためのソースがありません( ) gcc -g my_app.c
。
を呼び出すと、 「 No symbol table info available」というinfo locals
エラーが表示されます
ライブラリのソースがなくてもEclipseで作業しているとき、現在の関数の引数をarg0、arg1 ... argNに解決でき、オブジェクトのメンバーも正しく覚えていれば。
カスタム/ジェネリック/デフォルト シンボル テーブルを生成する方法はありますか? GDB を満たし、ローカル変数と引数の値を表示できるようにするものはありますか?
javascript - JavaScript には php list コマンドに似た言語構造がありますか?
JavaScript には、php list コマンドに似た言語構造または何かがありますか? http://php.net/manual/en/function.list.php
このコマンドは、1 つのステートメントで配列の値を変数に割り当てます。たとえば、次の配列があるとします。
list コマンドは、各配列要素の値を名前付き変数に割り当てます。
そのような:
したがって、これは 1 つのステートメントで多くの変数に値を割り当てる簡単な方法です。
JavaScript には、各変数を個別に割り当てる必要がない同等のものがありますか?
オブジェクトのプロパティまたは配列の要素を使用してこれを行う方法はありますか? そうでない場合、それを行う関数を作成できますか? これを行う唯一の方法が関数経由である場合、関数は変数が定義されているスコープにアクセスする必要があります。
この 5 年前の質問: PHP の list()に相当する Javascript の解決策を試しましたが、うまくいきません。Array プロトタイプの変更は、私の node.js 環境では変数の割り当てに失敗し、左側の配列割り当ては Chrome での参照エラーです。実験的な新しい技術についての話がありますが、話は数年前です。リンクされた質問に記載されている解決策よりも優れた解決策があるかどうかを知りたいです。
javascript - 関数の引数を元の引数名に再割り当てする方法は?
標準の定義を満たすために別の関数の引数を再配置する関数があります。
*** は問題の行であり、再割り当てされた引数オブジェクトと一致するように「null null 1」にする必要があります。
引数オブジェクトは必要に応じて変更され、メインによって呼び出される値「1」が最後の引数に移動されます。ただし、引数オブジェクトを移動しても、引数にマップされる変数名は変更されません (*** でマークされた最後の console.log を参照)。これは、変更された引数オブジェクトと一致するように null null 1 である必要があります)。
引数オブジェクトと一致するように、変数 a、b、および c を shiftArgs 関数によって再割り当てするにはどうすればよいですか?
bc - bc コマンドで定義されたすべての変数を一覧表示する
bc
コマンドですべての変数 (印刷記号テーブル) をリストすることは可能ですか?
例えば
「すべての定義済み変数」という言い方があいまいな場合は、「すべての非ゼロ変数」も受け入れられるはずです。