阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

受够了结构化编程的复杂,微软发布全新编程语言 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:408227
用户头像

发布了 497 篇内容, 共 308.6 次阅读, 收获喜欢 1907 次。

关注

评论

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

使用WebMaker快速预览Ionic页面效果

davidce

Ionic WebMaker 混合应用开发

看清远处模糊的事,不如做好身边清楚的事

Neco.W

创业心态 未知

20年行业变革与技术演进,当下CDN如何为政企数字化转型加速?

阿里云Edge Plus

CDN 边缘计算 移动视频

【大厂面试06期】谈一谈你对Redis持久化的理解?

NotFound9

数据库 redis 后端

第二周作业

晨光

依赖倒置架构

GAC·DU

面向开发者的 WSL2 安装指南

simpleapples

Python Windows 10 wsl Go 语言

从字符串到常量池,一文看懂String类设计

程序员DMZ

JVM 常量池 intern

【架构】—回归本质(面向对象)

不二架构

面向对象 架构师 极客大学架构师训练营

第二周作业

Aldaron

28岁程序员期权过亿,彪悍从字节退休,网友:酸了酸了!

程序员生活志

程序员 字节跳动 开发 退休

免费下载 | 阿里云实时计算整体解决方案白皮书重磅发布!

Apache Flink

大数据 flink 流计算 实时计算

架构训练营第二章作业

mh

小师妹学JVM之:JDK14中JVM的性能优化

程序那些事

JVM 小师妹 JIT JDK14 签约计划第二季

课程总结

GAC·DU

如何构建低延时的直播体验,让互动更实时?

阿里云Edge Plus

CDN 短视频 直播 视频

数仓系列 | 深入解读 Flink 资源管理机制

Apache Flink

大数据 flink 流计算 实时计算

编程这件事

dapaul

第二周 作业

尔东雨田

设计模式的主要原则

架构师训练营第二章 总结

尔东雨田

架构师训练营 0 期第二周

Blink

【Week02】框架设计

Aldaron

第二周总结

qqq

极客大学架构师训练营

设计原则之依赖倒置和接口隔离

dapaul

Mybatis-plus 之 DIP

无心水

极客大学架构师训练营

红警1游戏开源,代码非常规范。网友:秀色可餐

程序员生活志

开源 红警1

当你启动Redis的时候,Redis做了什么

老胡爱分享

redis 源码分析 面试

第二周总结

晨光

依赖倒置及 Cache 重构设计

秤须苑

极客大学架构师训练营

极客大学架构师训练营 框架设计、设计原则、设计模式 第四课 听课总结

John(易筋)

极客时间 极客大学 极客大学架构师训练营 设计原则 框架设计

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