萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

近日,华为要自主研发编程语言的消息忽然在网上火了。

据微博博主@IT工程师 称,华为正在研发新的自主编程语言仓颉,领头人是南京大学的计算机科学与技术系博士生导师,冯新宇。

图源微博@IT工程师,经授权

目前这件事尚未得到官方证实,但据知乎@匿名用户 透露,华为有意研究自己的程序语言,在行业内早已是公开的秘密

「华为自研编程语言并非秘密」

“编译器实验室早已有之”

事实上,华为在编译器与编程语言方面早有动向。

方舟编译器,就是华为在编译器方向的研究成果之一。

2019年8月31日,华为在开源平台上放出了方舟编译器的源代码,这是华为首个完全自主研发的编译器平台。

知乎@养猫的哈士奇表示,华为2012实验室的中央软件研究院下面有一个编译器与编程语言实验室,这个实验室已经存在很多年了。

从拉勾网上的招聘信息可以看见,华为2012实验室的中央软件院下面的确有一个编译器实验室&芯片软件协同设计部,「在编译器及芯片软件协同设计领域耕耘10余年」。

图源拉勾网

那么,为什么要进行这方面的研究?

知乎@养猫的哈士奇 表示,去年一次交流中,华为消费者BG软件部的总裁王成录博士,提到了华为为什么要搞这个实验室、做编译器这些东西。

简单来说,就是华为很早以前就发现,在核心网设备上自己编译,可以大大提高性能(通信设备也是有性能要求的),后来就开始有小规模的团队来做编译。也就是说,在做方舟编译器之前,华为已经做了很多年编译的相关工作了。

在做智能手机的过程中,华为想把手机做到像iPhone一样流畅,但遇到很多困难,其中很重要的一点就是Android的虚拟机机制。

所以他们做了一个很重要的决定——(研发)方舟编译器,事实上这不仅是针对手机平台、还包括通信设备等,将华为所有的编译工作都统一起来,全面提升效能。

然而,方舟编译器面临着Java的反射机制等问题,这些是需要解决的。

所以,对于这次消息称华为要自研编程语言的消息,知乎@养猫的哈士奇 推测,自研编程语言是迟早要迈出的一步。

“相关领域专家加入”

此外,有知乎网友爆料,华为近段时间在相关方向的招人也非常大手笔。

2014年的时候,华为在美国的研究实验室就聘用了Peng Wu,她此前曾经在IBM工作十几年,是并行计算语言和编译器领域的专家,曾经获得过2012年PACT的最佳论文奖。

据Peng Wu在领英上的资料,她于2014年12月加入华为编译器Programming Technologies Lab任资深总监,并于2019年5月加入华为的美国子公司Futurewei,担任技术总监,负责编程语言的设计、编译器框架的设计。

图源领英

而就在今年,华为在爱丁堡大学成立了编程语言实验室(Programming Languages Lab),又找了Dan R. Ghica做总监,目前,这个实验室已经在招聘编程语言工程师的博士实习生。

图源爱丁堡大学官网

从谷歌学术来看,Dan R. Ghica的主要研究方向就是编程语言,h-index达22,论文一共被引用一千余次。

图源谷歌学术

而这次传言中负责「仓颉」的教授冯新宇,究竟是什么人呢?

冯新宇为何人?

根据南京大学的官网介绍,冯新宇教授本硕毕业于南京大学计算机科学专业,此后于耶鲁大学就读计算机科学博士,期间曾经在AT&T实验室实习。

图源南京大学官网

冯新宇教授主要从事程序验证、并发理论、程序设计语言理论方面的研究,是我国高校编程语言方向的专家。

2010-2017年期间,冯新宇教授曾经在中科大就任教授,并于18年以后来到南京大学,目前在南京大学就任教授,并于2019年带领团队获得PLDI杰出论文奖。

知乎@匿名用户 表示,冯新宇教授可能是在大陆高校就职发POPL和PL顶会最多的人(之一)。

此外,冯新宇的导师、中科大少年班的校友邵中教授,硕博毕业于普林斯顿大学,对编程语言及编译系统了解非常深入。

图源中国科学技术大学官网

邵中教授曾为SML语言研发编译器SML/NJ,对“带证明可信软件”领域有深入研究,在POPL上发表过5篇论文,也是国内首个在POPL上发论文的学者。

谷歌、苹果已有自研编程语言

事实上,谷歌与苹果都已经推出了自己的编程语言。

谷歌于2009年就推出了Go语言,这门语言设计的目的,是为了在运行速度快的同时,编译速度也不错,同时也更容易上手编写。

这也使得Go语言的语法限制较多,但它的确找到了“运行速度”、“编译速度”和“上手容易”三者的平衡点,成为目前较受欢迎的编程语言之一。

而苹果也于2014年在WWDC上推出了自己的Swift语言,并凭借着类似于Python的易用性、和较强的运行效率,一度在当年跻身成为最受欢迎TOP 15的编程语言之一。

对于尚未面世的「仓颉」

对于华为这次的自研编程语言「仓颉」,许多网友表达了自己的看法。

1、走稳些,开源几乎是必须的

事实上,我国此前并非没有“自研编程语言”。

今年1月份,中科院计算技术研究所推出了“木兰”(μlang),这是一门基于Python实现的编程语言。

然而“木兰”项目负责人刘雷,却用了“完全自主设计、开发和实现”来形容这门编程语言。

中科院官方随后回应,刘雷“夸大宣传”,这样的说法属于“虚假陈述”,这门语言也逐渐消失在大众视野中。

“木兰”猜数字例程,图源知乎@吴烜

有了“木兰”的先例,针对这次华为的「仓颉」,知乎@吴烜 认为,国产编程语言应该走稳些,而且开源几乎是必须的

吸取木兰的一些教训吧,趁早开源,尽量避免以讹传讹。如果目标是通用编程语言,就要和现在市场上的英文编程语言在开放性上对齐。开源几乎是必须的。在此特殊时期,必然被放到显微镜下看,不如早作准备。

2、不应仅仅为了解决“自研”

针对这次的新闻爆料,知乎@DBinary 则认为,“自研”不应是重点,「仓颉」应该拿出更有说服力的价值体现。

一门语言要发展,先不说生态,好歹说说这门语言诞生出来为了解决什么问题。而这个叫仓颉的语言,难道就仅仅是为了解决“自研”?

如果只是拿自研编程语言这件事来说,真的不是很高大上的事情,你看我自己就写了一个叫StoryScript的语言,从词法分析器开始写,编译器、虚拟机、调试器、一应俱全。这个语言,除了我之外应该没有第二个人会用了,不是因为语言高大上,而是因为没人看得上。

3、不要用“Char”当英文名

当然,如果仅仅就事论事,知乎@苏远 表示,从爆料的「仓颉」英文名Char来说,其实不是一个好选择,希望正式发布时,选个更好的名字。

Char在计算机里是字符的意思,几乎所有编程语言里都有Char的概念。 如果一个新语言名字和一个计算机通用术语重名,在内容搜索方面已经先天处于不利地位。 开发者想查找仓颉的资料,一定会充斥着大量的无关信息。按照权重排名,很可能前五页都没有仓颉语言的结果。

那么,对于华为自研编程语言「仓颉」一事,你怎么看?

@IT工程师 的微博:https://weibo.com/1749224837/JiAFh0oFM?type=repost#_rnd1599465214374
知乎@吴烜 的回答:https://www.zhihu.com/question/418762759/answer/1452144290
知乎@苏远 的回答:https://www.zhihu.com/question/418762759/answer/1458729514
知乎@养猫的哈士奇 的回答:https://www.zhihu.com/question/418762759/answer/1459388553
知乎@DBinary 的回答:https://www.zhihu.com/question/418762759/answer/1458923757
知乎@匿名用户 的回答:https://www.zhihu.com/question/418762759/answer/1454618474

参考链接:
https://cs.nju.edu.cn/xyfeng/research/feng-cv.pdf
https://www.lagou.com/jobs/6842654.html?show=
https://blogs.ed.ac.uk/he-lab/2020/08/26/phd-internship-programming-language-engineer/
https://www.cs.bham.ac.uk/~drg/pubs.html

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

好课推荐 | 0基础学Python

《动手学Python》课程由上海交大博士教研团队研发,在线学习平台由上海交大AI实验室技术支持,旷视、文远知行、图森未来、来也科技等知名AI企业CEO/CTO力荐

0基础可入门,限时开放体验课!扫码即刻开启Python学习之旅:

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见~

华为被曝自研编程语言“仓颉”,南大教授冯新宇领衔相关推荐

  1. 打破国外垄断!华为被曝自研编程语言“仓颉”,南大教授冯新宇领衔

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Life is like a mirror. Smile at it, an ...

  2. 设计sample语言的词法分析器_华为被曝自研编程语言“仓颉”,南大教授冯新宇领衔...

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 近日,华为要自主研发编程语言的消息忽然在网上火了. 据微博博主@IT工程师 称,华为正在研发新的自主编程语言仓颉,领头人是南京大学的计算机科 ...

  3. 南京大学计算机学院冯新宇导师,又一“利器”?华为被曝自研编程语言“仓颉” 传南大教授冯新宇是领头人...

    最近几天,华为开发者大会2020刷爆了朋友圈.余承东宣布鸿蒙系统升级到2.0版本,并于12月发布手机版本,更是一下子点燃了网友们对鸿蒙系统的期待! 除了鸿蒙OS"万物互联"造势十足 ...

  4. 华为手机python编辑器_华为被曝自研编程语言“仓颉”,真相如何?

    来源:量子位(ID:QbitAI),内容有删减 作者:萧箫,发自 凹非寺 近日,华为要自主研发编程语言的消息忽然在网上火了. 据微博博主@IT工程师 称,华为正在研发新的自主编程语言仓颉,领头人是南京 ...

  5. 华为将推出自研编程语言仓颉,为什么很多人不看好?

    9月25日,在中国深圳华为坂田基地,备受瞩目的开源操作系统欧拉(openEuler)全新发布.华为的两个操作系统鸿蒙和欧拉都将开源,鸿蒙操作系统的应用场景,是智能终端.物联网终端和工业终端:欧拉操作系 ...

  6. 南大计算机学院李宇峰,【FCS优秀青年计算机科学家论坛】李宇峰:安全半监督学习综述...

    论坛嘉宾:沈华伟 中国科学院计算技术研究所 研究员 报告主题:图卷积神经网络及其应用 报告摘要:卷积神经网络在处理图像.语音.文本等具有较好空间结构的数据时展现出了很好的优势.然而,卷积神经网络不能直 ...

  7. 华为自研编程语言「仓颉」火上热搜,已正式开启内测,成员辟谣:不是中文编程...

    萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 备受关注的华为自研编程语言「仓颉」,又火上热搜了. 这次是因为「仓颉」正式开启了内测,目前已经有部分开发者拿到源代码. 前不久,华为编程语言实验室 ...

  8. 厉害了!华为自研编程语言火上热搜,已开启内测!

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  9. 复旦大学计算机学院 预推免,学霸的开挂保研经历:专业第一,六级595,三作SCI,斩获同济、南大、西交直博OFFER,最终圆梦复旦!——以梦为马,不负韶华...

    原标题:学霸的开挂保研经历:专业第一,六级595,三作SCI,斩获同济.南大.西交直博OFFER,最终圆梦复旦!--以梦为马,不负韶华 以梦为马不负韶华 漫长的保研之旅终于结束了,回望这半年的时光,有 ...

最新文章

  1. java配置pom安装依赖包,Maven pom.xml 添加本地jar包依赖以及打包方法
  2. HTML转义字符 Unicode和CSS伪类介绍
  3. wxWidgets:编写一个应用程序- 使用 WxTextCtrl
  4. powershell
  5. 图论--欧拉回路(模板)
  6. 自定义EventSource(一)EventCounter
  7. C++中智能指针的原理、使用、实现
  8. JAVA单例模式 关于延迟加载问题
  9. react ---IOS AND ADROID
  10. Codeforces1005E1 - Median on Segments (Permutations Edition)(中位数计数)
  11. java编译软件 Eclipse 的安装与使用
  12. WORD VBA 每一页第一段文字
  13. 41局域网交换机及其基本原理
  14. 中学-综合素质【3】
  15. 固实压缩文件容易损坏_请慎重使用固实压缩文件
  16. PS CS6视频剪辑基本技巧(三)添加声音和字幕
  17. 这几款浏览器插件提升科研效率,2023年你安装上了吗
  18. 文本diff算法Patience Diff
  19. 人品比能力更重要---个人收藏
  20. 第5次作业+037+吴烨倩

热门文章

  1. 浅析如何把逻辑地址转换为物理地址
  2. oracle静默安装 详细流程
  3. web前端大一实训 HTML+CSS+JavaScript王者荣耀(60页) web课程设计网页规划与设计 HTML期末大作业 HTML网页设计结课作业
  4. 河北专升本——C语言基础练习题
  5. bzoj4316: 小C的独立集(仙人掌+树形dp)
  6. UE4使用蓝图实现角色冲刺
  7. SAP交货单增强MV50AFZ1
  8. 个人在使用vue中引入jquery和bootst整理的笔记,开始看了网上很多实例方法,都基本没成功
  9. 让HR既理解又反感的跳槽原因
  10. Java简单实现滑动窗口