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?


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



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


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.


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.


21

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

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


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

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.


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




10

Eu chamaria isso de constructQuery.


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.


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.


9

generateQuery, possivelmente? createQuery?


8

Faça sua escolha

  • Gerar
  • Despejo
  • Serializar
  • Emitir

Cada um deles tem conotações ligeiramente diferentes.



7

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


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




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.



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.


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

3

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


3

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



3

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


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); 
}

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:


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.