Was ist das Gegenteil von "Parsen"? [geschlossen]

147

Ich habe eine Funktion, parseQuery, die eine SQL-Abfrage in eine abstrakte Darstellung dieser Abfrage analysiert.

Ich bin dabei, eine Funktion zu schreiben, die eine abstrakte Darstellung einer Abfrage verwendet und eine SQL-Abfragezeichenfolge zurückgibt.

Wie soll ich die zweite Funktion nennen?

Simon
quelle
Stringifizieren? Die JSON-Klasse verwendet diese Terminologie. JSON.parse und für das Gegenteil JSON.stringify ?
Wilt

Antworten:

200

Ich denke, das Verb, das Sie wollen, ist "komponieren".

Joel Coehoorn
quelle
3
@ Joel: twitter.com/shanselman/status/5024768993
Daniel Schaffer
16
Ich meine, wenn ich ein Jahr später zurückkomme, würde ich sogar "Assemble" als besseres Gegenteil oder "Build" als besseren Funktionsnamen beantworten.
Joel Coehoorn
3
Oh wow, ich habe die Daten dazu nicht überprüft ... SO frage Nekromantie!
Daniel Schaffer
äh .. warum nicht ToString ()? Scheint der Standard zu sein, der von Leuten wie Int32 usw. festgelegt wurde
Joseph Kingry
1
machte meinen vorherigen Kommentar, bevor ich sah, dass die Frage sprachunabhängig war. ToString () scheint der von .NET akzeptierte Standard zu sein
Joseph Kingry
79

Das Gegenteil von Parse ist Serialize

Yuval Adam
quelle
1
Dies ist aus meiner Sicht möglicherweise die nützlichste Antwort.
Joseph
8
Was ist mit "deserialisieren"?
Den
32

In der Compiler-Terminologie ist das Gegenteil "unparse". Insbesondere verwandelt das Parsen einen Stream von Token in abstrakte Syntaxbäume, während das Parsen abstrakte Syntaxbäume in einen Stream von Token verwandelt.

Barry Kelly
quelle
4
Wie ein Auto ausbrechen ...
Walter Tross
31

Komponieren? Wenn Sie eine Abfrage analysieren, teilen Sie sie in ihre Bestandteile (Token usw.) auf. In umgekehrter Reihenfolge werden die Teile zu einer Zeichenfolgenabfrage zusammengefasst.

Michael Brown
quelle
21

Um Ihre bestehende Benennung zu ergänzen, sieht composeQuery am besten aus.

Im allgemeinen Fall ist das Gegenteil von parse jedoch ǝsɹɐd

Danja
quelle
8
Ich denke, das ist das Gegenteil, das Gegenteil wäre esrap
agusgambina
@agusgambina: Eigentlich macht das Sinn ... Denken Sie an Bourne Shell: wenn ... fi Fall ... esac
Shrike
20

Ich würde eines davon verwenden:

  • ToString ()
  • ToSQL ()
  • Machen()
Sklivvz
quelle
17

Ich denke, "serialisieren" ist wahrscheinlich das Wort, das Sie wollen. Es bedeutet, eine Textdarstellung von Daten zu erstellen, die aus dem Programm exportiert (und importiert) werden können.

Kyle Cronin
quelle
1
Serialisieren kann genauso gut eine binäre Darstellung bedeuten.
Ben Hoffstein
1
Wahr. Bei Parsimg dreht sich alles um das Einblenden externer Daten, und bei der Serialisierung geht es darum, Daten für externe Zwecke zu erstellen. Das erzeugte Format muss kein Text sein, ist es aber häufig.
Kyle Cronin
Anscheinend wird die Tastatur meines iPod besser als ich. Das soll "Parsen" und "Lesen" sein.
Kyle Cronin
15

Das Antonyme von "analysieren" ist "synthetisieren".

Mike F.
quelle
4
synthetisieren. gute Wahl.
MikeJ
13

ToQueryString ()

Sockel
quelle
12

Auf jeden Fall rendern.

David Mitchell
quelle
10

Ich würde es constructQuery nennen.

Sec
quelle
Das klingt fast perfekt. Das würde passieren. Er würde Daten sammeln, die "in Worte gefasst" werden könnten. Er würde eine Abfrage "konstruieren".
Tgwizman
10

möglicherweise erzeugen oder emittieren.

DGentry
quelle
1
Genau. rfc7159 (JSON) definiert in den Abschnitten 9 und 10 "Parser" und "Generator" als Gegensätze.
Mydoghaswürmer
10

Nur um ein paar Sachen hinzuzufügen.

Parse ist sicherlich ein Zwei-Wege-Wort.

Sie können eine Zusammenfassung in eine Abfrage analysieren.

Sie können eine Abfrage in ein Abstract analysieren.

Die Frage sollte sein, wie nennen Sie den letzten Teil der Methode, und weil Sie in diesem Fall eine Zusammenfassung analysieren, um eine Abfrage zu erstellen, die Sie aufrufen würden parseAbstract.

Um die Frage zu beantworten, hat das Parsen kein Gegenteil.

Henry B.
quelle
9

generierenQuery, möglicherweise? createQuery?

Dre
quelle
8

Treffen Sie Ihre Wahl

  • Generieren
  • Dump
  • Serialisieren
  • Emittieren

Sie haben jeweils leicht unterschiedliche Konnotationen.

Mike Graham
quelle
7

komponieren, konstruieren, generieren, rendern, verdichten, reduzieren, toSQL, toString abhängig von der Art der Klasse und den zugehörigen Operatoren

MikeJ
quelle
6

Ein traditioneller Compiler besteht aus zwei Teilen: einem Parser und einem Codegenerator.

Man könnte es also "Generieren" nennen. Natürlich ist es hier etwas anders, weil der Compiler keinen Quellcode schreibt. (es sei denn, es ist ein Precompiler).

Walter Mitty
quelle
5

Möglicherweise Format (). oder ToSQL () in Ihrer Instanz?

Omar Kooheji
quelle
5

unParse ()? Nur ein Scherz, ich würde mit toQueryString () gehen

Ben Hoffstein
quelle
4

ebnen?

Das analysierte Abfrageobjekt stellt möglicherweise eine Bedingungshierarchie dar, die Sie zurück in eine eindimensionale Zeichenfolge "reduzieren".

Aber wenn Sie von Objekt zu Zeichenfolge wechseln, verwenden Sie einfach toString oder toSQL () oder ähnliches. Wenn Sie es gut gestaltet haben und die richtige App verwenden, können Sie es später umbenennen und einfach in die Kommentare einfügen, was es tut.

Josh
quelle
4

Ich würde sagen, serialisieren und deserialisieren, anstatt zu analysieren und ...

Christophe Herreman
quelle
4

Ich würde mich für ToString () entscheiden, da Sie sie normalerweise kettenverschachteln können (entgegengesetzte Funktionen, mit denen Sie von Klasse1 zu Klasse2 und umgekehrt wechseln können).

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

Serialize () sieht nach einer guten Wahl aus, hat aber in Deserialize () bereits ein Gegenteil.

Wie bereits erwähnt, ist ToSql () in Ihrem speziellen Szenario eine weitere gute Wahl.

Filini
quelle
4

Ich würde rendern verwenden

> 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>

Welches ist IMHO, das Gegenteil von parse ()

> c = parse(b)

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

+1 für Generieren, aber wenden Sie an, was Sie generieren, dh GenerateSQL ()

Tom Lahti
quelle
3

Ich habe für "Komponieren" gestimmt, aber wenn Ihnen das nicht gefällt, würde ich auch "Bauen" vorschlagen.

Kerl
quelle
3

Was ist mit asSQL () oder noch mehr asQuery ()?

Müge
quelle
3

INHO Serialisieren, synthetisieren sind gute Optionen. Wie Sie parseQuery genannt haben, werde ich auch mit codeQuery gehen

mbmihura
quelle
3

Normalerweise verwende ich "parse" als Konvertierungsmethode und daher kann ich kein entgegengesetztes Wort für "convert" finden. (Sie können etwas nicht "dekonvertieren", da "nicht konvertieren" eine Art der Konvertierung selbst ist).

Wenn ich so denke, ist die beste Lösung (für mich), zwei "Analysemethoden" zu haben, die unterschiedliche Argumente erhalten. Beispiel (Java):

public class FooBarParser{

    public Foo parse(Bar bar);
    public Bar parse(Foo foo); 
}
David Paulo
quelle
2

deparse

Deparse ist zu analysieren, als:

  • dekompilieren ist kompilieren
  • zerlegen heißt komponieren
  • Deserialisieren ist zu serialisieren
  • degroovy ist zu groovig :);)

Parsing / Deparsing ist keine Änderung der Struktur, sondern eine Konvertierung. Präzise Konvertierung zwischen äquivalentem Text und abstrakten Syntaxbaumformaten unter Beibehaltung aller Beziehungen und Strukturen.

"Verfassen" bedeutet eine Änderung der Struktur, ist also nicht ganz richtig. Es wird vorgeschlagen, (normalerweise zum ersten Mal) aus separaten unabhängigen Teilen zu kombinieren. Genau wie "Zerlegen" die Aufteilung in unabhängige Teile vorschlägt. Sie ändern die Form, nicht nur das Format.

In einer Schnellsuche wird der Begriff verwendet in:

Glen Best
quelle
Eine schnelle Suche nach Github-Code zeigt, dass der Begriff "deparse" nicht weit verbreitet ist. Siehe github.com/search?q=deparse - Ich denke, "deparse" ist ein Begriff aus dem R-Ökosystem. - Für mich erzeugt das Gegenteil von Parsen. Beim Parsen haben wir einen Satz und eine Grammatik als Eingabe und möchten wissen, wie die syntaktische Struktur und / oder die semantische Darstellung des Satzes ist. In der Generation haben wir eine semantische Darstellung und eine Grammatik als Eingabe und möchten Sätze finden, die der semantischen Darstellung entsprechen.
Jens A. Koch