胡振江:北京大学程序设计实验室,研究方向是函数式语言;
- 如何让程序语言的运行速度提升一倍,睡18个月就可以,摩尔定律;
- 摩尔定律的终结,导致从通用计算到专用计算,碎片化计算;
- 专用计算正如人脑分区处理一样;
- 计算的改变,必然带来程序设计语言的变化,语言是对底层的抽象;(要求:人方便地写,计算机容易懂)
- 我们需要面向泛在的安全的编程语言及环境,泛在是指无处不在的;
- 应用领域DSL和计算领域DSL,考虑如何由前向后转换;
- 双向变换,应用DSL与计算DSL通过通用核心语言可以双向变换;
- 碎片化计算的解决办法:通用核心语言+语言定制+双向变换;
- 领域特定语言DSL,需要做的工作:计算规则、类型推理与检查、程序分析与测试、程序优化、代码生成;
- 每定义一种DSL,都需要重复上述工作,非常难做;可以通过通用核心语言的语法糖定义和解糖,自动生成上述工作;
- EDSL和自动生成的区别;
- 核心问题是选择通用核心语言,选择什么样的语言?函数式语言;
- 困难点,基于语法糖来定义语言;
- 困难点,如何自动生成?结构化的描述,图自动机;
提问:
国防科大,研究量子计算程序语言和编译器设计:该方法对量子计算的支持程度?
回:DSL一般针对简单的,量子计算恐怕做不了;
中科院计算所:怎么说明你定义语言的优越性?
回:DSL用户用得容易,能写出想做的事情;实现起来更高效;语言的好坏是很难评价的;
问:两种技术路线,定义语言和定义库,如何评价这两种路线?
回:语言应当相对独立,而定义库很容易使得host language杂糅;host language是基于该语言的,开发针对另一语言的库;