写点什么

受够了结构化编程的复杂,微软发布全新编程语言 Bosque

  • 2019-04-19
  • 本文字数:897 字

    阅读完需:约 3 分钟

受够了结构化编程的复杂,微软发布全新编程语言Bosque

微软发布了一种新的开源编程语言 Bosque,旨在通过代数运算来减少复杂性。


Bosque 编程语言的开发者是微软计算机科学家 Mark Marron,其灵感来自于 TypeScript 的语法和类型,ML 和 Node/JavaScript 的语义。Mark Marron 称该语言超越了结构化编程模型,采用了“正规化编程模型(Regularized Programming Model)”。


结构化编程模型主要是通过循环、顺序以及选择等设计来替换掉 goto 语法,但是当遇到复杂的情况时,结构化编程的代码会更加复杂。为了消除这种复杂性,Mark Marron 提出了正规化编程模型。


据 Mark Marron 论文描述:“该模型建立在结构化编程和抽象数据类型的基础上,它将现有的编程模型简化成一种正则化的形式。这种形式消除了主要的错误来源,简化了代码理解和修改,并将许多代码上的自动化推理任务转换为琐碎的命题。”


结构化编程模型的意外复杂性主要来源于 5 个方面:可变状态和框架,循环、递归和不变量,不确定的行为,“数据不变”违规,相等与别名。Mark Marron 认为循环、可变状态和引用相等(两个引用是否指向同一对象)是结构化编程模型复杂性的主要来源,所以在 Bosque 的代码中没有“for”、“while”、“do while”循环,而是选择引入了函子(Functors)。



(该 Functor 等同于 JavaScript 中的 for 循环)


另外,Mark Marron 还特别指出了引用相等的复杂性,两个变量指向内存中的同一个对象,看起来是很好解决,但一旦在语义上有了引用相等,那么就要不断考虑它和它引入的指针别名的关系。2001 年就有论文提出了引用相等这个问题,但是到了 2019 年还没有解决。


最初,Bosque 的目标是构建自动化的零工作量代码验证、自动化的 SemVer 检查和编译,但是现在 Mark Marron 认为 Bosque 是探索语言设计的新方式,并希望通过与学术界、在线开发人员社区的协作,开发出诸如验证器和编译器之类的自动化开发工具。


目前,Bosque 依赖于一个用 TypeScript 编写的解释器,运行在 Node 上。Mark Marron 计划为 WASM 和本地代码提前实现编译,在接下来的几个月,他将专注于填写各种待办事项、bug 修复以及开发支持用这种语言编写大型程序的功能。


Bosque 的 GitHub 地址:https://github.com/Microsoft/BosqueLanguage


2019-04-19 15:408574
用户头像

发布了 509 篇内容, 共 349.2 次阅读, 收获喜欢 1927 次。

关注

评论

发布
暂无评论
发现更多内容

Vue中的diff算法深度解析

yyds2026

Vue

融云全球社交泛娱乐洞察,「音频社交」如何出海破圈

融云 RongCloud

出海社交 通讯

大数据培训班学习方法有哪些

小谷哥

项目管理的精髓

PMO实践

项目管理 PMO 项目经理

GPU 和显卡是什么关系?

Finovy Cloud

人工智能 gpu 云渲染 GPU渲染

OceanBase CTO杨传辉:单机分布式一体化助力企业降本增效

OceanBase 数据库

售后技术支持管理指标实践

网易云信

技术支持 售后服务

零依赖监控解决方案:TDengine+Grafana落地实施

TDengine

数据库 tdengine 时序数据库

OceanBase 社区版4.0发版:一个全新的里程碑

OceanBase 数据库

一站式服务:深圳区块链交易所app系统开发解决方案

W13902449729

区块链 区块链交易所

Vue响应式系统原理并实现一个双向绑定

yyds2026

Vue

大数据培训机构哪些口碑好?

小谷哥

盘点16种常见的PCB可靠性测试,您的板经得起测试吗?

华秋PCB

测试 PCB PCB设计

甘特图是什么意思?甘特图制作步骤教程

优秀

甘特图

安全!稳定!可信!选OceanBase就对了

OceanBase 数据库

Vue响应式依赖收集原理分析-vue高级必备

yyds2026

Vue

上海大数据培训机构应该注意什么

小谷哥

西安Java线下机构学习费用

小谷哥

数字化转型中的数字智能

PMO实践

数字化 科技 数智化 数智未来

对话ACE第六期:数据库上云的趋势和挑战

OceanBase 数据库

易仓科技×OceanBase:打造跨境行业全生态链的新零售SaaS

OceanBase 数据库

客如云×OceanBase:分布式云升级助力客如云降本增效

OceanBase 数据库

全生命周期服务加持,鸿蒙世界构建按下加速键

叶落便知秋

《入侵生命周期细分实践指南系列》:异常凭证攻击

美创科技

前端培训有哪些比较好的学习方法

小谷哥

开发问题记录

青柚1943

Canvas 拖拉拽建模工具,支持排序导出 Notebook 内容|ModelWhale 版本更新

ModelWhale

人工智能 机器学习 数据分析 canvas 编程建模

从ZETA无线通信技术特点出发选择合适的物联网协议

ZETA开发者

物联网 通信 通信协议 无线通信 物联网技术

在线 Notebook 教学实训,支持分组评审作业|ModelWhale 版本更新

ModelWhale

人工智能 机器学习 数据分析 编程建模 教学实训

低代码选型应该注重哪些方面的能力?

优秀

低代码

受够了结构化编程的复杂,微软发布全新编程语言Bosque_编程语言_田晓旭_InfoQ精选文章