软件之魂:程序设计语言——胡振江老师研究方向介绍
Date:July 27, 2020 Source:Author:
导师:胡振江 讲席教授
研究方向:程序设计语言,函数式程序设计,双向变换,程序演算与综合
联系方式:huzj@pku.edu.cn;
网页:http://sei.pku.edu.cn/~hu/
世界离不开软件,而软件的开发离不开程序设计语言。“软件定义一切”本质上是可编程思想扩张到整个社会和物理世界,是一种以软件实现分层抽象的方式来驾驭复杂性的方法论。随着人机物融合的发展,计算的泛在化成为必然,程序设计语言向下需要对物理世界进行抽象并提供处理物理世界的接口,向上需要能够处理不同场景的多范式的应用编程。泛在计算中不断涌现出的新的计算模式、新的计算平台和新的应用问题给程序设计语言的定义和实现带来了新的挑战。
程序设计语言实验室注重基础研究,研究程序设计语言的设计,实现,验证,及其支撑环境,在自由的氛围中挑战世界难题,创造“北大”理论,构建“北大”工具。程序语言实验室欢迎不怕失败,敢于创新,苦中作乐,永不言败的学生。下面仅列出几个方向作为参考,欢迎同学们提出自己的想法,我们一起研究。
(1) 双向变换的原理与应用(基础研究):双向变换包含两个变换:一个是顺向变换,从源数据生成目标数据;另一个是反方向变换,将目标数据上的变化反映到源数据上的变化。双向变换在不同数据的同步和互操作中有着广泛的应用,如不同系统的日程表的同步,模型和编码的共进化等。本研究的目的在于设计和实现一个双向语言用于开发高效而正确的双向变换,并通过解决实际同步问题进行评价。
(2) 函数式程序设计及基于程序代数的程序演算(理论研究):给定一个问题,为了实现一个正确而高效的程序,我们可以分两步走:先设计一个非常易懂,显然正确的程序,但这个程序可能非常低效;然后根据正确的程序演算规则,将低效的程序一步一步地变换成高效的程序。这是一种新型的程序设计方法。本研究的目的在于构造程序演算的理论基础,并解决一个实际问题(如程序的微积分,并行化,双向化)。
(3) 领域特定语言设计环境的实现(工具开发):特定领域语言一般是轻量的,我们可以用通用语言的方式来定义和实现领域特定语言,然而,这种方式很不经济。我们可以设计并实现一种通用语言及其工具作为特定语言定义和实现的基础,但是什么样的通用语言适合于定义和实现各类特定领域语言是一个必须解决的问题。本研究旨在探索快速开发领域特定语言的新方法,并实现一个开发环境。