“解析”的反义词是什么?[关闭]


147

我有一个函数parseQuery,它将SQL查询解析为该查询的抽象表示。

我将要编写一个函数,该函数采用查询的抽象表示形式并返回SQL查询字符串。

我应该怎么称呼第二个功能?


串化?JSON类使用此术语。JSON.parse和相反的JSON.stringify吗?
威尔特

Answers:


200

我认为您想要的动词是“组成”。



16
我的意思是,一年后回来,我什至会回答“汇编”作为更好的对立词,或者回答“构建”作为更好的函数名。
乔尔·科恩荷恩

3
哦,我没检查这个日期。
丹尼尔·谢弗

err ..为什么不使用ToString()?似乎是Int32等公司设定的标准
Joseph Kingry

1
在看到问题与语言无关之前发表了我的先前评论。ToString()似乎是.NET接受的标准
Joseph Kingry 09年


32

在编译器术语中,相反的是“ unparse”。具体来说,解析将令牌流转换为抽象语法树,而未解析将抽象语法树转换为令牌流。


4
就像到uncrash汽车 ...
瓦尔特Tross

31

撰写?解析查询时,将其分解为组成部分(令牌等),反之则是将这些部分组成一个字符串查询。


21

为了补充您现有的命名,composeQuery看起来最好。

但是在一般情况下,解析的反义词是


8
我认为这是相反的情况,相反会退步
agusgambina 2014年

@agusgambina:实际上,这是有道理的...想想伯恩贝壳:如果... fi案... esac
伯劳伯劳

20

我将使用以下之一:

  • ToString()
  • ToSQL()
  • 渲染()

17

我认为“序列化”可能是您想要的词。这意味着产生可以从程序导出(和导入)的数据的文本表示形式。


1
序列化可以很容易地表示二进制表示。
本霍夫斯坦

1
真正。Parsimg只是关于外部数据的淡入淡出,而序列化则是为了产生供外部使用的数据。生成的格式不需要是文本,但通常是文本。
凯尔·克罗宁

显然我的iPod的键盘对我有好处。那应该是“解析”和“阅读”。
凯尔·克罗宁




10

我将其称为constructQuery。


听起来几乎是完美的。那就是会发生的事情。他将收集可能“变成文字”的数据。他将“构造”查询。
Tgwizman '16

10

可能产生或发出。


1
我同意。rfc7159(JSON)在第9和10节中将“解析器”和“生成器”定义为相反的内容。
mydoghasworms

10

只是添加一些东西。

解析肯定是两个词。

您可以将摘要解析为查询。

您可以将查询解析为摘要。

问题应该是,您如何命名方法的后半部分,因为在这种情况下,您正在解析摘要以进行查询,因此您将其称为parseAbstract

为了回答这个问题,解析没有相反的意义。





7

根据类及其相关运算符的性质,组成,构造,生成,渲染,压缩,缩减,toSQL,toString


6

传统的编译器分为两部分:解析器和代码生成器。

因此,您可以将其称为“生成”。当然,这里有点不同,因为编译器未编写源代码。(除非它是预编译器)。




4

扁平化?

解析的查询对象可能表示条件层次结构,您将其“展平”回一维字符串。

但是鉴于您要从对象到字符串,实际上只使用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

我通常使用“ parse”作为转换方法,因此,我找不到“ convert”的反义词。(您无法“反转换”某些内容,因为“非转换”本身就是转换的一种类型)。

以这种方式思考,最好的解决方案(对我而言)是拥有两个接收不同参数的“解析”方法。示例(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生态系统中的一个术语。-对我而言,解析的反面正在产生。在解析中,我们有一个句子和一个语法作为输入,并且想知道句子的句法结构和/或语义表示是什么。在生成中,我们有一个语义表示和一个语法作为输入,并希望找到与该语义表示相对应的句子。
詹斯·科赫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.