【扯谈消析】短评木兰语言
2020-01-20 本文已影响0人
吾系庄庄
今天看到很多关于木兰语言的报道,网上吐槽很多,但有价值的技术分析却很少。我对Python不是太熟,也没有完全看过木兰相关的资料,所以我只想提出几个技术观点供大家参考。
技术分析
很多网友吐槽,说木兰抄袭Python甚至直接套用Python是基于以下两个原因:
原因1:木兰直接将源代码“翻译”成Python。
原因2:木兰运行于Python之上,甚至还能调用Python的库。
以上两点,我认为都不能成为“木兰抄袭/套用Python”这个结论的充分理由,因为这些情况,业界都有不少的例子:
- 早期的C++语言,编译器是先将源代码转化成C语言,然后再对C语言进行编译。
- 像Kotlin、Scala这些语言,都是运行在JVM上,也能和Java进行互相调用。
我要评判“木兰”是否是一个真正的语言,我会从以下角度衡量出发:
- 木兰是否有它自己特定的语法和语言特性。从一些专业的吃瓜群众提供的信息来看,木兰的语法还真的和Python有明显不同,尤其没有Python槽点挺多的代码缩进
木兰语言代码节选- 木兰的编译过程。对于非解释性语言来说,编译过程一般有词法分析、语法分析、中间代码、目标代码几个步骤。看了一些网友反编译木兰语言的结果来看,木兰语言还真的有自己完整的语法树定义(虽然说和Python是一一对应)。
疑似木兰语法树定义逆向工程结果显示,木兰有完整的语法树,使用Python的ast库解析,但不能单凭这点定义成抄袭,类似于C++基于C语言的扩展、C++编译器是C语言编写的道理。
结论
从目前的信息来看,所谓的木兰语言,从技术价值上来看,充其量只能算是一个计算机本科学生《编译原理》的大作业,科研成果毫无疑问存在很严重的夸大宣传。