CNCC2020_胡振江_从芯片定制到语言定制:程序设计语言的系统化定制及其支撑环境

胡振江:北京大学程序设计实验室,研究方向是函数式语言;

  1. 如何让程序语言的运行速度提升一倍,睡18个月就可以,摩尔定律;
  2. 摩尔定律的终结,导致从通用计算到专用计算,碎片化计算;
  3. 专用计算正如人脑分区处理一样;
  4. 计算的改变,必然带来程序设计语言的变化,语言是对底层的抽象;(要求:人方便地写,计算机容易懂)
  5. 我们需要面向泛在的安全的编程语言及环境,泛在是指无处不在的;
  6. 应用领域DSL和计算领域DSL,考虑如何由前向后转换;
  7. 双向变换,应用DSL与计算DSL通过通用核心语言可以双向变换;
  8. 碎片化计算的解决办法:通用核心语言+语言定制+双向变换;
  9. 领域特定语言DSL,需要做的工作:计算规则、类型推理与检查、程序分析与测试、程序优化、代码生成;
  10. 每定义一种DSL,都需要重复上述工作,非常难做;可以通过通用核心语言的语法糖定义和解糖,自动生成上述工作;
  11. EDSL和自动生成的区别;
  12. 核心问题是选择通用核心语言,选择什么样的语言?函数式语言;
  13. 困难点,基于语法糖来定义语言;
  14. 困难点,如何自动生成?结构化的描述,图自动机;

提问:
国防科大,研究量子计算程序语言和编译器设计:该方法对量子计算的支持程度?
回:DSL一般针对简单的,量子计算恐怕做不了;

中科院计算所:怎么说明你定义语言的优越性?
回:DSL用户用得容易,能写出想做的事情;实现起来更高效;语言的好坏是很难评价的;

问:两种技术路线,定义语言和定义库,如何评价这两种路线?
回:语言应当相对独立,而定义库很容易使得host language杂糅;host language是基于该语言的,开发针对另一语言的库;

上一篇:[题解]剑指 Offer 13. 机器人的运动范围(C++)


下一篇:groovy-搭建环境