点击上方“码农突围”,马上关注

这里是码农充电第一站,回复“666”,获取一份专属大礼包

真爱,请设置“星标”或点个“在看”

2020年1月15日,中国科学院计算技术研究所(以下简称中科院计算所)计算机体系结构国家重点实验室,由该实验室编译组主导研发的国产编程语言“木兰(Mulan)”正式发布。

此消息一经发出,引发不少开发者质疑。对于完全自主设计的“国产编程语言”,大家的期待都非常大,网友@沉迷单车的追风少年 就在第一时间前往官网下载。

下载完成后却发现图标有点不太对劲。纳尼?和python几乎一毛一样

这不明显是pyinstall打包的吗?该网友吐槽到:我发布pyqt的软件都知道换个图标,这么大的项目连图标都不换?

打开之后就是类似python一样的对话框

提供了这么多函数,和python几乎一毛一样啊

试一下反向破译一下,以为会加密,毕竟是一个商用软件,我们自己写pyqt有时候都加密

但是,结果一点加密都没有,直接破解了:

就是python写的啊。

同样在在知乎上也有很多开发者对此进行讨论。

很多开发者发现解包后的木兰语言其实就是建立在 Python 之上,将 Python 构建的环境、包和项目都编译成一个可执行文件。所以似乎木兰只是在顶层做了一个接口,将底层编译、优化等众多工作都交给了原版 Python?

如下所示为 EXE 文件的解包结果(采用 PyInstaller Extractor):

从解包结果可知,「木兰」语言是通过 Pyinstaller 将 Python 文件打包成 EXE 可执行文件。

根目录下有个driver,添加pyc文件头即可用uncompyle6来反编译:

只有两行,调用了runtime.main里的main函数。

这个文件被放在了pyz_extracted里

main里本身实现了不少东西

但你这个执行是不是有点……?

直接调exec,唯一的区别就是加了一个globals。

命令行版本里的repl里是做了一些处理的……虽然也没发现有什么改进的特性。

关于关键词看到不少同学都是试出来的func2333,这里有一个list:

不忍看下去了。。。

所以它到底跟python有多大区别嘞(⊙o⊙)?

还有说好的面向智能物联应用呢?这通篇也没瞅着哪里跟智能物联有半毛钱关系啊,你好歹封个蓝牙或者zigbee的模块进去嘛233

网友@龙文,直接表示就是Python3.7.4换了皮肤。

作为对比,截了几张图,上面是木兰,下面是Python3.7.2。

以sys库为例

木兰导入包的方式为:

sys = __import__('sys')

Python导入包的方式为:

sys = import sys

报错信息木兰:

版本信息格式也是一样,从左边可以看出木兰是基于Python3.7.4换皮肤的:

当然,你可以死皮赖脸地说是参考了Python。

但是。。。。重点来了,copyright居然有Python字样,哈哈哈哈,这太尴尬了,这下没法抵赖了吧:

Python的如下:

还有一个sys.prefix属性引起了我的注意,我倒要看看这个C:\Users\huawei\AppData\Local\Temp\_MEI143282路径下有什么东西,

打开一看尼玛我傻眼了都,全是Python的文件,结果不言而喻:

其实之前我们比较熟悉的文言编程语言,它就非常明确只关注语法和前端,把所有底层操作都留给了 Java 或 Python。双兔傍地走,安能辨我是Python。

一位开发者从以下三个角度评价了木兰语言:

把 Python 环境打包到一个可运行的文件,那么这可能是没问题的。但将其号称为拥有自主产权的编程语言就太言过其实了。对此,你怎么看呢?

最新情况:1.18晚上,研发木兰编程语言的团队负责人刘雷(已打码),做出回应。

本人系中科院计算所编译实验室员工。基于我在编译技术上的科研积累创办了中科智芯(北京)科技有限公司,该公司围绕青少年编程教育,设计开发编程语言、编译器和集成开发环境等产品。

为了更好地在中小学中普及计算思维,本人带领团队开发了一种称为“木兰“的编程语言。它包含三个组成部分:一、在语言规范上借鉴了 Lua 语言的特性并进行了扩展,增加数据表达方法等新的特性;二、开发了支持少儿编程教育的可视化编程环境;三、针对 8 位 AVR 单片机,实现了相应的编译器和运行时系统,开发了能模拟多任务执行的虚拟机。以上产品已经在数百所中小学中,开展了 10 万人次的编程科普活动。

针对 STM32 单片机,我们是基于 Python 开源编译器进行的二次开发,也就是先将木兰语言的源程序转换为 Python 的中间表示(AST),再在Python虚拟机上运行。这就是在开发和运行环境中会包含 Python 系统的原因。

在 1 月 15 日接受媒体采访时,本人在对木兰编程语言的介绍中,犯了以下错误:

1. 木兰编程语言主要是用于中小学教育,在介绍中将它扩大到智能物联领域。

2. 木兰语言在 8 位单片机上的编译器是本团队开发的,在 32 位单片机上的编译器是基于 Python 开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。

对于此次在网络上造成的不良影响,本人郑重道歉,对给中科院、中科院计算所带来的不良后果表示诚挚的歉意。本人感谢大家的监督与批评,并深刻反省,保证不再出现类似问题。

刘雷
2020年1月18日

网友评论

来源:程序员前线,程序员的那些事

重磅!码农突围-技术交流群已成立

扫码可添加码农突围助手,可申请加入码农突围大群和细分方向群,细分方向已涵盖:Java、Python、机器学习、大数据、人工智能等群。

一定要备注:开发方向+地点+学校/公司+昵称(如Java开发+上海+拼夕夕+猴子),根据格式备注,可更快被通过且邀请进群

▲长按加群

有热门推荐????

1、刚刚!国产统一操作系统 UOS 正式对外公开,太牛逼了!

2、地震了!这一次苹果太强硬,如果你的 App 拒绝抛弃这些技术,将在2020年3月全面下架!

3、聊一聊字节跳动的面试

4、Python用不好?终于有官方中文文档啦

刚刚!中科院主导的国产编程语言木兰负责人回应了!承认32位机器上,是基于Python二次开发!...相关推荐

  1. 计算机语言处理器,中科院计算所发布国产编程语言“木兰” 支持龙芯处理器...

    原标题:中科院计算所发布国产编程语言"木兰" 支持龙芯处理器 日前中科院计算所宣布计算机体系结构国家重点实验室编译组成功研发国产编程语言--木兰Mulan,主要面向物联网应用,可以 ...

  2. 尴尬!中科院国产编程语言“木兰”引争议:声称完全自主,实则换皮Python?...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | Demi Xia 来源 | https://u ...

  3. “完全自主”的木兰编程语言回应:承认基于Python二次开发,向中科院致歉

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 国产编程语言"木兰"面对换皮质疑,现在公开回应.并道歉了. 就在近期,一家国内公司中科智芯声称开发了首个跨平台.兼容多种 ...

  4. python中科院_“完全自主”的木兰编程语言回应:承认基于Python二次开发,向中科院致歉...

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 国产编程语言"木兰"面对换皮质疑,现在公开回应.并道歉了. 就在近期,一家国内公司中科智芯声称开发了首个跨平台.兼容多种 ...

  5. 木兰编程语言python_“完全自主”的木兰编程语言回应:承认基于Python二次开发...

    晓查 发自 凹非寺量子位 报道 | 公众号 QbitAI 国产编程语言"木兰"面对换皮质疑,现在公开回应.并道歉了. 就在近期,一家国内公司中科智芯声称开发了首个跨平台.兼容多种硬 ...

  6. 木兰编程语言python_国产编程语言木兰换皮Python 中科院重罚当事人

    最近打着中科院计算所出品.完全自主开发旗号的国产编程语言"木兰"引发广泛关注,但很快被发现是基于Python语言套壳.换皮而来的产物.面对质疑,中科院计算所编译实验室员工.&quo ...

  7. python语言的实验心得体会_国产编程语言木兰被质疑换皮Python:当事人承认夸大、道歉...

    近日有报道称,中科院计算所的计算机体系结构国家重点实验室编译组成功研发了国产编程语言"木兰"(Mulan),主要面向物联网应用,可以成倍地提高应用执行效率,并且全面支持国产龙芯处理 ...

  8. 腾讯 QQ 产品已经实现全量上云;中科院计算所发明新编程语言“木兰”;Electron 7.1.9 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  9. 腾讯 QQ 产品已经实现全量上云;中科院计算所发明新编程语言“木兰”;Electron 7.1.9 发布 | 极客头条

    一分钟速览新闻点! 贵州今年建成华为数据中心.iCloud 数据中心等项目 美团打车:"出租车感谢费"模块已下线,将进一步评估方案 腾讯 QQ 产品已经实现全量上云 华为面向全球发 ...

  10. python、语言的主网站网址是-国产编程语言木兰被网友扒皮:原来是Python语言打包...

    日前中科院计算所下属单位发布了编程语言木兰,号称计算所编译实验室完全自主设计.开发和实现的编程语言,与之配套的编译器与集成开发工具也完全由团队自主实现.不过该语言发布之后,网友发现它其实是Python ...

最新文章

  1. 安装linux系统报softlock,soft lockup 解决思路
  2. win10系统运行python虚拟环境执行ll_env\Scripts\activate : 无法加载文件的解决方法(亲测有效)
  3. linux如何时间更新最新版本,桌面应用|Linux有问必答:如何更新过期版本的Ubuntu...
  4. Vue+Video.js播放m3u8视频流(海康威视摄像头+RTMP服务+FFmpeg)
  5. MySQL 错误 #1055
  6. java collator_Java Collator compare(String, String)用法及代码示例
  7. 案例八:shell自动化管理账本脚本
  8. 模型审查的4个核心要点
  9. 分布式架构的核心要素和设计方法
  10. 程序安全性之配置文件安全
  11. 使用Titan Framework搭建一个集群Demo
  12. 音视频即时通讯 功能需求汇总
  13. C++ Primer 第5版--练习10.35
  14. 现代C++新特性 强枚举类型(PC浏览效果更佳)
  15. PZT-JH20/8高压电极化装置(20KV以下压电陶瓷同时极化1-8片)
  16. nginxgrafana监控面板显示nodatatoshow
  17. 【洛谷P1462】通往奥格瑞玛的道路
  18. iomanip头文件
  19. java lock park_java并发编程-LockSupport中park与unpark基本使用与原理简单分析
  20. Arcpy的制图模块

热门文章

  1. 实战Swiper:利用Swiper制作手机新闻界面
  2. JavaScript:面向对象简单实例——图书馆
  3. Javascript特效:动态获取鼠标位置
  4. 算法笔记_面试题_15.回溯算法模板及示例
  5. 数学_一文搞懂极大似然估计
  6. 关于RUP的一点见解,针对于近期的面向对象方法课程
  7. 砍掉中国90%的科研人员,对科技发展的影响微乎其微,某教授酒后真言!
  8. ROS1 robot path tracking
  9. FreeMarker(七)Html转义
  10. 关于div+css布局值得注意的地方