Qual é o oposto de 'analisar'? [fechadas]

147

Eu tenho uma função, parseQuery, que analisa uma consulta SQL em uma representação abstrata dessa consulta.

Estou prestes a escrever uma função que pega uma representação abstrata de uma consulta e retorna uma string de consulta SQL.

Como devo chamar a segunda função?

Simon
fonte
Stringify? A classe JSON usa essa terminologia. JSON.parse e, pelo contrário, JSON.stringify ?
Wilt

Respostas:

200

Eu acho que o verbo que você quer é 'compor'.

Joel Coehoorn
fonte
3
@Joel: twitter.com/shanselman/status/5024768993
Daniel Schaffer
16
Quero dizer, voltando um ano depois, eu até respondia 'assemble' como um melhor oposto ou 'build' como um nome de função melhor.
Joel Coehoorn
3
Oh uau, eu não verifiquei as datas nesta ... SO pergunta necromancia!
21711 Daniel Schaffer
err .. por que não ToString ()? Parece ser o conjunto padrão pelos gostos de Int32, etc
Joseph Kingry
1
fiz meu comentário anterior antes de ver que a pergunta era independente de idioma. ToString () parece ser o padrão aceito pelo .NET.
Joseph Kingry 20/10/2009
79

O oposto de análise é serializar

Yuval Adam
fonte
1
Esta pode ser a resposta mais útil da minha perspectiva.
JosephDoggie
8
Que tal 'desserializar'?
Den
32

Na terminologia do compilador, o oposto é "unparse". Especificamente, a análise transforma um fluxo de tokens em árvores de sintaxe abstrata, enquanto a análise não processada transforma árvores de sintaxe abstrata em um fluxo de tokens.

Barry Kelly
fonte
4
Gostaria de desarrumar um carro ...
Walter Tross
31

Compor? Ao analisar uma consulta, você a divide em suas partes constituintes (tokens etc.), o inverso compõe as partes em uma consulta de string.

Michael Brown
fonte
21

Para complementar sua nomeação existente, o composeQuery parece melhor.

Mas, no caso geral, o oposto de análise é ǝsɹɐd

danja
fonte
8
Eu acho que isso é o inverso, o oposto seria esrap
agusgambina
@agusgambina: na verdade, isso faz sentido ... Pense sobre Bourne shell: se ... caso fi ... ESAC
Picanço
20

Eu usaria um destes:

  • Para sequenciar()
  • ToSQL ()
  • Render ()
Sklivvz
fonte
17

Eu acho que "serializar" é provavelmente a palavra que você deseja. Significa produzir uma representação textual dos dados que podem ser exportados (e importados) do programa.

Kyle Cronin
fonte
1
Serializar pode facilmente significar uma representação binária.
Ben Hoffstein
1
Verdade. O Parsimg tem tudo a ver com o desbotamento de dados externos e a serialização com a produção de dados para usos externos. O formato produzido não precisa ser texto, mas geralmente é.
Kyle Cronin
Aparentemente, o teclado do meu iPod está tirando o melhor de mim. Isso deveria estar "analisando" e "lendo".
Kyle Cronin
15

O antônimo de 'analisar' é 'sintetizar'.

Mike F
fonte
4
sintetizar. boa escolha.
MikeJ
13

ToQueryString ()

plinto
fonte
12

Definitivamente render.

David Mitchell
fonte
10

Eu chamaria isso de constructQuery.

Sec
fonte
Isso parece quase perfeito. Isso é o que estaria acontecendo. Ele coletaria dados que poderiam ser "colocados em palavras". Ele "construiria" uma consulta.
Tgwizman 28/04
10

gerar ou emitir, possivelmente.

DGentry
fonte
1
Concordo. rfc7159 (JSON), nas seções 9 e 10, define "Analisador" e "Gerador" como opostos.
Mydoghasworms
10

Apenas para adicionar algumas coisas.

Certamente analisar é uma palavra de mão dupla.

Você pode analisar um resumo em uma consulta.

Você pode analisar uma consulta em um resumo.

A pergunta deve ser: qual é o nome da parte final do método e, nesse caso, você está analisando um resumo para fazer uma consulta que você chamaria parseAbstract.

Para responder à pergunta, a análise não tem oposto.

Henry B
fonte
9

generateQuery, possivelmente? createQuery?

Dre
fonte
8

Faça sua escolha

  • Gerar
  • Despejo
  • Serializar
  • Emitir

Cada um deles tem conotações ligeiramente diferentes.

Mike Graham
fonte
7

compor, construir, gerar, renderizar, condensar, reduzir toSQL, toString, dependendo da natureza da classe e de seus operadores relacionados

MikeJ
fonte
6

Um compilador tradicional possui duas partes: um analisador e um gerador de código.

Então você pode chamar de "Gerar". Claro, é um pouco diferente aqui, porque o compilador não está escrevendo o código-fonte. (a menos que seja um pré-compilador).

Walter Mitty
fonte
5

Possivelmente Format (). ou ToSQL () em sua instância?

Omar Kooheji
fonte
5

unParse ()? Brincadeirinha, eu iria com toQueryString ()

Ben Hoffstein
fonte
4

achatar?

O objeto de consulta analisada talvez represente uma hierarquia de condições, que você está "achatando" novamente em uma cadeia unidimensional.

Mas, como você está passando de objeto para string, use apenas toString ou toSQL () ou algo assim. Além disso, se você o projetou bem e está usando o aplicativo certo, poderá renomeá-lo mais tarde e colocar algumas coisas nos comentários sobre o que ele faz.

Josh
fonte
4

Eu diria serializar e desserializar, em vez de analisar e ...

Christophe Herreman
fonte
4

Eu iria para o ToString (), já que geralmente você pode aninhar em cadeia (funções opostas, que permitem passar da Classe1 para a Classe2 e vice-versa)

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

Serialize () parece uma boa opção, mas já tem um oposto em Deserialize ().

No seu cenário específico, como outro apontado, ToSql () é outra boa opção.

Filini
fonte
4

Eu usaria render

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

Qual é IMHO, o oposto de analisar ()

> c = parse(b)

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

+1 para Generate, mas inclua o que você está gerando, ou seja, GenerateSQL ()

Tom Lahti
fonte
3

Votei em 'compor', mas se você não gostar, sugiro 'compilar'

Cara
fonte
3

E quanto ao asSQL () ou ainda mais ao asQuery ()?

Müge
fonte
3

INHO Serializar, sintetizar são boas opções. Além disso, como você nomeou parseQuery, irei com o codeQuery

mbmihura
fonte
3

Eu normalmente uso "analisar" como método de conversão e, portanto, não consigo encontrar uma palavra oposta para "converter". (você não pode "desconverter" algo, pois "não converter" é um tipo de conversão)).

pensando dessa maneira, a melhor solução (para mim) é ter dois métodos de "análise" que recebem argumentos diferentes. Exemplo (Java):

public class FooBarParser{

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

separar

Separar é analisar, como:

  • descompilar é compilar
  • decompor é compor
  • desserializar é serializar
  • degroovy é para groovy :);)

A análise / análise não é mudança de estrutura, mas conversão. Conversão precisa entre texto equivalente e formatos de árvore de sintaxe abstrata, mantendo todos os relacionamentos e estrutura.

"Compor" significa mudança de estrutura, por isso não está certo. Ele sugere a combinação de partes independentes separadas (geralmente pela primeira vez). Assim como "decompor" sugere se dividir em partes independentes. Eles mudam de forma, não apenas de formato.

Uma pesquisa rápida mostra o termo usado em:

Glen Best
fonte
Uma rápida pesquisa no Código Github revela que o termo "interromper" não tem uso generalizado, consulte github.com/search?q=deparse - penso em "separar" como um termo do ecossistema R. - Para mim, o oposto de analisar está gerando. Na análise , temos uma sentença e uma gramática como entrada e queremos saber qual é a estrutura sintática e / ou a representação semântica da sentença. Em geração , temos uma representação semântica e uma gramática como entrada e queremos encontrar sentenças que correspondam à representação semântica.
Jens A. Koch