「解析」の反対は何ですか?[閉まっている]


147

SQLクエリを解析してそのクエリの抽象表現に変換する関数parseQueryがあります。

クエリの抽象表現を取り、SQLクエリ文字列を返す関数を記述しようとしています。

2番目の関数は何と呼びますか?


文字列化?JSONクラスはこの用語を使用します。JSON.parseおよび反対のJSON.stringifyの場合
Wilt

回答:


200

欲しい動詞は「作曲」だと思います。



16
つまり、1年後に戻ってくると、「アセンブル」は正反対で、「ビルド」は関数名としても返答します。
Joel Coehoorn、2009年

3
ああ、これで日付を確認しませんでした...ネクロマンシーに質問します。
ダニエルシャファー

エラー.. ToString()でない理由 Int32などの標準によって設定されているようです
Joseph Kingry '20年

1
質問が言語に依存しないことを確認する前に、私の前のコメントをしました。ToString()は.NETで受け入れられている標準のようです
Joseph Kingry


32

コンパイラーの用語では、その反対は「unparse」です。具体的には、構文解析によりトークンのストリームが抽象構文ツリーに変換され、構文解析解除により抽象構文ツリーがトークンのストリームに変換されます。


4
同様の車をuncrashする ...
ウォルターTross

31

作成しますか?クエリを解析するときは、クエリを構成要素(トークンなど)に分割します。その逆は、部分を文字列クエリに構成することです。


21

既存の命名を補完するには、composeQueryが最適です。

しかし、一般的なケースでは、解析の反対はǝsɹɐdです


8
私は逆だと思う、反対はesrapだろう
agusgambina

@agusgambina:実際には、これは理にかなっています... Bourneシェルについて考えてみてください:if ... fiケース... esac
shrike

20

私はこれらのいずれかを使用します:

  • ToString()
  • ToSQL()
  • Render()

17

「シリアライズ」はあなたが望む言葉だ​​と思います。これは、プログラムからエクスポート(およびインポート)できるデータのテキスト表現を生成することを意味します。


1
シリアライズは、バイナリ表現と同じくらい簡単に意味できます。
ベンホフスタイン2008

1
そうだね。Parsimgはすべて外部データのフェードインに関するものであり、シリアル化はすべて外部使用のためのデータの生成に関するものです。生成されるフォーマットはテキストである必要はありませんが、多くの場合テキストです。
カイル・クロニン

どうやら私のiPodのキーボードは私の方が良くなっているようだ。それは「解析」と「読み取り」であることになっています。
カイル・クロニン




10

私はそれをconstructQueryと呼びます。


ほぼ完璧に聞こえます。それが起こっていることです。彼は「言葉にする」ことができるデータを収集しているでしょう。彼はクエリを「構築」します。
Tgwizman

10

おそらく生成または放出します。


1
同意する。rfc7159(JSON)のセクション9と10では、「Parser」と「Generator」を反対のものとして定義しています。
mydoghasworms 2015

10

何かを追加するだけです。

確かに解析は双方向の言葉です。

抽象をクエリに解析できます。

クエリを抽象に解析できます。

問題は、メソッドの後半部分にどのような名前を付けるかということです。この例では、抽象を解析してクエリを作成しているので、それを呼び出しますparseAbstract

質問に答えるために、構文解析には逆はありません。



8

好きなのを選びな

  • 生む
  • 投げ捨てる
  • シリアライズ
  • 放出する

彼らはそれぞれわずかに異なる意味合いを持っています。



7

クラスとその関連演算子の性質に応じて、作成、構築、生成、レンダリング、圧縮、reduce、toSQL、toString


6

従来のコンパイラーには、パーサーとコードジェネレーターの2つの部分があります。

したがって、これを「生成」と呼ぶことができます。もちろん、コンパイラはソースコードを記述していないため、ここでは少し異なります。(それがプリコンパイラでない限り)。



5

unParse()?冗談です、私はtoQueryString()で行きます


4

平らにする?

解析されたクエリオブジェクトは、おそらく1次元文字列に「フラット化」している条件階層を表します。

ただし、オブジェクトから文字列に移動する場合、実際にはtoStringまたはtoSQL()などを使用します。さらに、うまく設計して適切なアプリを使用している場合は、後で名前を変更して、コメントにコメントを追加することができます。



4

あなたは通常それらをチェーンネストすることができるので、ToString()を使います(反対の関数、それによりClass1からClass2に、そしてその逆に渡すことができます)

DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );

Serialize()はいい選択のように見えますが、Deserialize()にはすでに反対のものがありました。

特定のシナリオでは、他で指摘されているように、ToSql()は別の良い選択です。


4

レンダーを使用します

> a = 'html': { 'head': {'title': 'My Page'}, 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } }

> b = render(a)

> console.log(b)

<html>
    <head>
        <title>My Page</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>This is a Paragraph</p>
    </body>
</html>

これはparse()の反対である私見です

> c = parse(b)

{ 'html': {
    'head': {
        'title': 'My Page'
    }
    'body': {
        'h1': 'Hello World',
        'p': 'This is a Paragraph'
    }
}


3

私は「構成」に投票しましたが、それが気に入らない場合は「ビルド」も提案します



3

INHOシリアライズ、合成は良いオプションです。また、parseQueryに名前を付けたので、codeQueryを使用します


3

私は通常、変換方法として「解析」を使用しているため、「変換」の反対の単語を見つけることができません。(「変換解除」は変換そのものの一種であるため、何かを「変換解除」することはできません)。

このように考えると、最良の解決策(私にとって)は、異なる引数を受け取る2つの「解析」メソッドを持つことです。例(Java):

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}

2

分解する

Deparseは次のように解析します:

  • 逆コンパイルはコンパイルすることです
  • 分解は作曲することです
  • デシリアライズはシリアライズすることです
  • degroovyはgroovyです:);)

解析/解析は構造の変更ではなく、変換です。同等のテキストと抽象構文ツリー形式の間の正確な変換により、すべての関係と構造を維持します。

「構成」は構造の変更を意味するので、正しくありません。個別の独立したパーツから組み合わせることが推奨されます(通常は初めて)。「分解」が独立した部分に分割することを示唆しているように。フォーマットだけでなく、形式も変化します。

クイック検索ショーは、以下の中で使用される用語です。


Githubコードをすばやく検索すると、「deparse」という用語が広範に使用されていないことがわかります。github.com/ search?q = deparseを参照してください。「deparse」はRエコシステムの用語と考えています。-私にとって、解析の反対が生成されます。で解析し、我々は、入力として文と文法を持っていると構文構造および/または文の意味表現が何であるかを知りたいです。では世代、我々は、入力として意味表現と文法を持ち、意味表現への対応の文章を見つけたいです。
イェンスA.コッホ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.