来自 Web前端 2020-01-25 12:06 的文章
当前位置: 网上澳门金莎娱乐 > Web前端 > 正文

微软正开发全新编程语言 Bosque,开发者正式告别for循环

时间: 2019-05-06阅读: 292标签: 语言

微软研究院正在开发全新编程语言Bosque,以简单易懂为诉求,降低编程开发过程的意外复杂度(Accidental Complexity),还支持一系列新的编译器与开发工具,最终目的是要在提高开发人员生产力的同时,又能让程序拥有良好的品质。Bosque作者为微软首席研究软件设计工程师Mark Marron,其最近主要的工作还有开发时间旅行除错工具。

微软近期推出了一款全新的编程语言 Bosque,Bosque 参考了 TypeScript 的语法与类型,还有 ML 和 Node/JavaScript 的语义。作者微软计算机科学家 Mark Marron 致力于消除编程过程中出现的各种复杂情况,创造出了他认为超越主流结构化程序设计的 Bosque 这一语言。

网上澳门金莎娱乐 1

结构化程序设计现在随处可见,不管你用的是 C/C++,还是 Java、Python 与 Golang 等编程语言,在开发过程中使用的基本都是这一程序设计思想,它最初是为了替换掉程序中弊大于利的 goto 语法而产生的。研究者使用结构化程序设计思想中的循环、顺序与选择等设计,最终完全替换掉了 goto 指令,并且这样的编程思想也一直流行至今。

Mark Marron发表的论文提到,1970年代结构化编程语言和抽象资料类别,为编程语言开发模型带来了一波改变,让开发者不需要这么在意底层基础结构,把心力放在功能的实现上,因此开发人员的想法更容易实现,程序也更不容易出错,而现在Mark Marron顺着这个开发模型的想法,进一步提升开发体验,发表了使用规范化编程开发方法的编程语言Bosque。

Bosque 是随着Mark 发表的论文《Regularized Programming with the BOSQUE Language》提出的,论文中,作者指出上世纪 70 年代兴起的结构化程序设计和抽象数据类型使得开发者可以屏蔽掉底层硬件架构的特征,专注于编写功能代码,同时开发也变得更加不易出错。而作者在此基础上,提出了一种新的程序设计思想——Regularized Programming(规范化/正则程序设计),通过避免低级循环动作的迭代处理、用代数数据转换操作符丰富语言等设计,超越结构化程序设计。

Bosque参考了TypeScript的语法,并综合了语意机器学习和Node/JavaScript,Mark Marron提到,由于在过去结构化编程开发模型中,流程控制是由循环、条件和子程序所组成,而Mark Marron列出了循环、参照相等和可变状态等五个造成源代码意外复杂度的来源,开发人员可能为了解决问题,而又为自己创造了更复杂的问题。

网上澳门金莎娱乐,作者同时为此思想设计了全新的编程语言 Bosque。具体来讲,现有的程序设计得到简化,成为规范化形式,消除了主要的不确定复杂性来源。论文基于一系列分析、运行时与编程器开发的经验与验证,以及针对开发人员的采访,确定了开发过程中会出现的 5 个主要不确定复杂性来源:

Bosque去除了这些可能产生意外复杂度的概念,以循环来说,Bosque不再使用for、while和do while等循环,使用称为Functors的概念,可以完成相同的工作,但是却能有效降低编程复杂度。Functors是一系列高阶迭代处理结构,Mark Marron表示,开发人员不需要重复撰写相同循环的样板,能够消除一系列像是边界算数类的错误,并让开发者使用描述性命名Functors,而非一组共用循环模式。

可变状态和逻辑帧:将可变性引入编程语言破坏了以单调方式推理程序的能力,这迫使程序员(和任何分析工具)需要去确定在操作之后哪些东西还是有效的,而哪些又已经失效。同时可变代码返回值和对参数(或其它全局状态)产生副作用影响程序状态,也使得需要推理每个操作的逻辑帧。

网上澳门金莎娱乐 2

循环、递归和不变量:循环和递归是推理的最基本挑战,因为代码描述了单个步骤的效果,但理解完整构造需要对一组值的量化属性进行泛化,不变量提供了所需的连接,但是一般来说这样的计算通用技术是无法实现的。

Mark Marron提到,Bosque消除现有结构化程序开发模型中的主要错误来源,让源代码更加容易理解与修改,发展出规范化程序开发方法(Regularized Programming),而论文证明了规范化程序开发方法可以直接提升软件品质以及开发人员生产力。

不确定的行为:不确定的行为包括未定义的、在指定的或非确定的环境行为,这需要程序员或分析工具来推理和解释所有可能的结果。例如:排序稳定性、地图/字典枚举顺序等。这些不确定的行为增加了开发过程的复杂性,并且随着时间的推移,慢慢地被视为应该被删除的技术债。

目前Mark Marron将Bosque相关源代码开源于GitHub,以利学术界与开发社群合作,但这个专案目前仍在早期阶段,不只存在错误且功能有限,开发者不应该用于正式的生产环境。

本文由网上澳门金莎娱乐发布于Web前端,转载请注明出处:微软正开发全新编程语言 Bosque,开发者正式告别for循环

关键词: