CN/EN

基础软件中心

基础软件中心立足于底层软件的研究与实现,专注于通用程序语言的设计、编译器、运行时、IDE 以及构建系统的研发,实现一整套领先世界、完全自主的程序开发环境。在此基础上,最终实现可持续的、健康的程序开发环境生态建设。

和传统学术研究机构追求理论上的单点创新不同,基础软件中心专注于系统层面,着眼于当下大规模基础软件研发工程上的协同创新和落地。现代软件的代码规模越来越大,复杂度也越来越高,越来越多的开发工具向云端迁移  。与此同时,下一代 web 标准指令集WebAssembly 也日渐成熟并被社区广泛接受,这对基础软件工具链的研发提出了新的需求。基础软件中心希望在这一大的趋势下,自底向上的构建一整套程序开发工具链,包括程序语言、编译器、运行时、IDE 以及构建系统的搭建,为下一代软件开发提供更好的生产力工具。

现由张宏波先生任基础软件中心讲席科学家,他是通用程序语言ReScript  的作者,程序语言OCaml  前核心开发人员。

ReScript语言  是第一个由华人主导的,也是目前唯一一个在国际范围内有一定影响力的通用程序语言。该语言诞生于其个人兴趣项目  ,后广泛被世界各地的程序员采用,除英语外,ReScript 官方文档也被翻译成韩语  葡萄牙语  等多国语言。因 ReScript 在Meta (Facebook)  Messenger  项目的使用,张宏波先生破例受聘于Meta , 成为其迄今为止唯一一个在中国大陆工作的软件工程师 (2017-2022)。

张宏波先生本科毕业于清华大学电子系,在美国宾夕法尼亚大学读博期间受Bloomberg 破例邀请,从事函数式语言编译器的开发工作,其早期的工作成果也曾被彭博社官方报道  

研究方向

方向一:基于 WebAssembly 的程序语言设计

虽然 WebAssembly 最初的设计目标是在浏览器(browser) 上以接近原生的性能运行程序,但随着技术的发展与社区的广泛接受,当前 WebAssembly 的应用场景已经拓展到云计算时代的无服务器架构(serverless)  、物联网(IoT) 设备以及移动端与桌面应用程序。

由于 WebAssembly 天生具备安全、可移植、高效率、轻量化等特点,所以非常适于应用安全沙箱场景。这使得 WebAssembly 和传统虚拟机的架构有着显著不同:比如出于安全因素考虑,其程序的执行栈不能自由访问;比如要满足轻量化的特性,WebAssembly 的代码尺寸有非常苛刻的要求。

上述这些因素使得开发者以低门槛生产出高质量的 WebAssembly 程序是非常有挑战性的事情。基础软件中心的研究方向之一是结合学术界在传统程序语言经验的沉淀和WebAssembly 最新的指令集标准,自底向上地设计新的通用程序语言。


方向二:基于WebAssembly 运行时的垃圾回收技术的研究

现代编程语言中大多都内置垃圾回收(Garbage Collection,缩写GC) 机制,垃圾回收机制是一种自动的内存管理机制,当计算机内存中的一个对象不再需要被使用时,就会自动地让出这块内存。在早期的C/C++编程语言中,程序员需要自己手动申请和释放内存,而实际的编程过程中会经常忘记释放那些不再使用的内存,造成内存泄漏。垃圾回收机制可以大大减轻程序员的负担,减少程序员犯错的机会。

WebAssembly 标准中,由于执行栈不能在运行时(Runtime) 中自由访问。基础软件中心的研究方向之一是研究出新的垃圾回收机制来适配到这一新的场景。与此同时,基础软件中心也会投入资源研究不同、应用场景不同的GC 适配。研究更灵活的、可配置的垃圾回收机制,将会提高开发者的高研发效率,以及降低 WebAssembly 程序的系统资源占用。


方向三:云原生IDE 的研发

Serverless 一词于2012年被提出,随着亚马逊在2014年推出的 AWS Lambda 无服务器计算服务的兴起,而被大家广泛认知。很多企业也开始尝试使用这项技术来快速搭建应用,从而减少开发成本和运维成本。

Serverless 应用开发区别于传统的应用开发模式,开发者在使用Serverless 架构进行本地开发、调试、测试时,必然会面对没有本地开发环境、持续集成、持续发布流程复杂等技术挑战。而传统集成开发环境(Integrated Development Environment,缩写IDE) 往往无法满足当下云原生服务的特殊需求。

基础软件中心的研究方向之一是基于结构化的编辑器技术,探索 WebIDE 与程序语言、构建系统的高效协同运作,让开发者可以在大规模软件开发模式下得到代码信息的实时反馈,进一步降低开发成本,提高开发人员的工作效率。

TOP