1
orzfly 2013-09-07 15:50:24 +08:00
|
3
luikore 2013-09-07 16:21:58 +08:00 2
@breeswish 不是, linguist 综合了各种分析方法, 扩展名和首行等特征猜不出来的话, 就用贝叶斯网络做分类的.
|
4
GordianZ MOD 直接编译说不定还快点……
|
7
Perry 2013-09-07 16:50:26 +08:00 1
我觉得简化流程的想法很好,但是在前端做识别语言的处理话会很难(目前也没有最简便的方法,或者说要做的通吃很多语言会很有压力,也做不到很精准);这个时候我觉得应该让用户自己去选择,作为用户的角度来说也不是什么特别麻烦的事情。
|
8
clippit 2013-09-07 17:25:42 +08:00
记得以前看到过有人写了一段代码,可以同时当成好几种语言成功编译或执行
|
9
Kabie 2013-09-07 17:50:03 +08:00 1
|
10
rwx 2013-09-07 19:19:39 +08:00
pretty是直接把pre标签里的代码按探测的语言进行着色,但是没研究过代码,不知道是不是真的有语言探测,还是其它的什么机制
|
12
breeswish OP @GordianZ 嗯。。我就是来寻求不做语法分析的方案的。。
比如对于人来说,人辨认一个代码其实也不是按照语法分析的,不是拿所有已知的语言进行一遍语法分析,而是根据一些特征来判断,比如见到了#include,并且到处都是花括号什么的,直接就会觉得这是个C/C++,而如果见到满屏幕的begin end和prodecure,以及:=之类的,就会觉得是个pascal;而看到def \n xxx \n end等等可能就会觉得是个ruby。我希望能编程来实现这个~ |
13
alexapollo 2013-09-08 00:19:19 +08:00 1
为啥不是语法分析。其实你想做的就是简版的NLP。
NLP分两种: 1、基于规则 2、基于统计 现在的NLP领域仍然是基于规则的胜率更高,统计还有很长的路要走。 更何况programming language有非常明确的规则,可以很简单的识别出来。 统计当然也可以做,但现在都是非工程化的。 |
14
kfll 2013-09-08 00:25:32 +08:00 1
我觉得在这方面,不选择语言是吃力不讨好的...
|
15
miaoever 2013-09-08 00:40:10 +08:00 1
stackoverflow 上的那个答案其实就挺好的,LZ 不妨试试。贝叶斯分类器实现很简单,但是效果往往会非常好。
|
16
hooluupog 2013-09-08 08:51:39 +08:00
google内部倒是有可以分析和编译多种语言的工具(c/c++/python/java),我觉得lz可以去知乎上提问,邀请王垠来解答下,他应该对这方面比较了解。
|
18
yangff 2013-09-08 20:05:08 +08:00
|
19
Mutoo 2013-09-08 22:02:51 +08:00 2
呵呵,你让那些有多个版本的语言怎么办,比较 python2.x python3.x actionsctip1.0/2.0/3.0
这种事让用户去做最好了,错了责任是他们的。 |