什么是相对的'分析'?[关闭]
-
02-07-2019 - |
题
我有一个功能,parseQuery,分析SQL query入一个抽象的表示,查询。
我要写功能,需要一个抽象表示的查询和返回SQL query string.
我应该怎么称呼的第二种功能?
解决方案
我认为你想要的动词是'撰写'。
其他提示
解析的反面是序列化
在编译器术语中,相反的是“unsarse”。具体来说,解析将令牌流转换为抽象语法树,而解析将抽象语法树转换为令牌流。
撰写?在解析查询时,将其分解为组成部分(标记等),反之则是将这些部分组合成字符串查询。
为了补充您现有的命名, composeQuery 看起来效果最佳。
但在一般情况下,与解析相反的是ǝ sɹɐ d
我会用这个:
- ToString()
- ToSQL()
- 渲染()
我认为“序列化”可能是你想要的词。它意味着生成可以从程序中导出(和导入)的数据的文本表示。
'analyze'的反义词是'合成'。
ToQueryString()
绝对渲染。
我称之为constructQuery。
生成或发射,可能。
只是添加一些东西。
当然,解析是双向的。
您可以将摘要解析为查询。
您可以将查询解析为摘要。
问题应该是,你怎么命名方法的后半部分,因为在这个实例中你要解析一个抽象来做一个你称之为 parseAbstract
的查询。
要回答这个问题,解析没有反面意义。
generateQuery,可能吗?的createQuery?
把你的选择
- 产生
- Dump
- Serialize
- 这些的
他们每个人都有稍微不同的内涵。
也许 prettyPrintQuery ?
传统的编译器有两部分:解析器和代码生成器。
所以你可以称之为“生成”。当然,这里有点不同,因为编译器没有编写源代码。 (除非它是预编译器)。
可能格式化()。你实例中的ToSQL()?
unParse()?开个玩笑,我会选择toQueryString()
弄平?
解析后的查询对象可能代表一个条件层次结构,您可以将其“展平”。回到一维字符串。
但是考虑到你从一个对象到另一个字符串,实际上只是使用toString或toSQL()或类似的东西。此外,如果您设计得很好并使用了正确的应用程序,您可以稍后重命名,只需在评论中添加内容即可。
我会说序列化和反序列化,而不是解析和...
我会选择ToString(),因为你通常可以对它们进行链式嵌套(相反的函数,让你从Class1传递给Class2,反之亦然)
DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );
Serialize()看起来是一个不错的选择,但它在Deserialize()中已经相反。
在您的特定场景中,正如其他人指出的那样,ToSql()是另一个不错的选择。
我会使用渲染
> 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>
哪个是恕我直言,与解析()相反
> c = parse(b)
{ 'html': {
'head': {
'title': 'My Page'
}
'body': {
'h1': 'Hello World',
'p': 'This is a Paragraph'
}
}
+1代表生成,但是你要生成什么,即GenerateSQL()
我投票赞成'撰写',但如果你不喜欢,我也建议'建立'
asSQL()甚至更多asQuery()怎么样?
INHO序列化,合成是很好的选择。此外,正如您已命名parseQuery,我将使用codeQuery
我通常使用“解析”作为转换方法,因此,我找不到“转换”的相反字。 (你不能“取消转换”某些东西,因为“非转换”是一种转换本身。)
以这种方式思考,最好的解决方案(对我来说)是两个“解析”的解决方案。接收不同参数的方法。示例(Java):public class FooBarParser{
public Foo parse(Bar bar);
public Bar parse(Foo foo);
}
deparse
Deparse是解析,因为:
- 编译是汇编
- 分解的是撰写
- deserialize是serialize
- degroovy是时髦:);)
析/deparsing是不变的结构,但转换。精确之间的转换等效文本的和抽象的语法树格式,维护所有关系结构。
"组成"意味着改变结构,所以是不完全正确的。它建议相结合,从独立独立的部分(通常为第一次)。只是作为"分解"的建议分割成独立的部分。他们改变形式,不仅仅是格式。
快速搜寻显示术语的使用:
- Perl: http://perldoc.perl.org/B/Deparse.html
- R: http://www.hep.by/gnu/r-patched/r-lang/R-lang_98.html
- 共同List: http://www.clisp.org/impnotes/dffi.html#c-type-parse
- PostgreSQL: http://doxygen.postgresql.org/deparse_8c.html
- 日食: http://www.eclipse.org/forums/index.php/t/201883/
- Unix Korn Shell: http://www.sourcecodebrowser.com/ksh/93tplus-p/deparse_8c.html