QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

OmniGraffle Pro 图表绘制工具 附 注册机 支持M1

繁星

OmniGraffle Pro 图表绘制

第二届OpenHarmony技术大会隆重揭幕年度课题,为OpenHarmony技术发展指明方向

科技热闻

免费算力部署ChatGLM3-6B大语言模型

打工人!

大模型

Python 包管理器入门指南

小万哥

Python 程序员 软件 后端 开发

什么是Vim,Vim安装

芯动大师

mac文件夹数据同步工具推荐 Sync Folders Pro中文最新版

胖墩儿不胖y

Mac软件 文件同步工具 文件备份同步

VM虚拟机安装Win11系统图文教程(附VMware13永久密钥)

Rose

Win11镜像下载 VM虚拟机破解版 VMware13永久密钥

「支持M1/M2」Topaz Video AI for mac 4.0.3

加油,小妞!

Topaz Video AI 视频增强修复工具

音频修复增强工具:iZotope RX 10 for mac 支持M1

加油,小妞!

音频修复 iZotope RX 10

免费算力部署stable-diffusion

打工人!

Stable Diffustion

mac音频传输工具Loopback激活版 完美兼容macOS14系统和M芯片

Rose

mac音频编辑器 Loopback下载 Loopback激活版 Loopback Mac版

Vector Magic for mac(矢量图片转换工具)

展初云

Mac 矢量图 Mac软件

支持M1、Capture One Pro 23 Mac 「raw图像处理工具」

繁星

图像处理工具 Capture One Pro 23

CodeWhisperer 的使用心得

亚马逊云科技 (Amazon Web Services)

【强推】苹果Mac电脑后期处理软件,打造极致的

Rose

Mac破解软件 后期特效软件有哪些 Mac特效制作工具 视频剪辑Mac版

Golang微服务框架居然可以开发单体应用?—— Kratos单体架构实践

golang 微服务架构 单体架构 Kratos #微服务

专业高效的视频编辑软件Premiere Pro 2023补丁激活版

胖墩儿不胖y

Mac软件 视频处理工具 视频编辑软件

Python 异常处理:try、except、else 和 finally 的使用指南

小万哥

Python 程序员 软件 后端 开发

OpenHarmony技术俱乐部亮相第二届OpenHarmony技术大会, 揭榜课题科研共建OpenHarmony

科技热闻

苹果mac电脑GoLand 2023 注册码最新 GoLand 2023 中文下载「支持m1 m2」

Rose

Go 语言 GoLand 2023破解版 GoLand 2023注册码

支持m1、IntelliJ IDEA 2023.2.4 Mac中文版 附 注册码

彩云

IntelliJ IDEA 2023最新 IntelliJ IDEA 2023

Maya 2024 for Mac(3D图形软件)

展初云

maya Mac软件 玛雅 3D图形

提升团队合作效率,这10款可视化协作软件值得拥有!

彭宏豪95

团队协作 软件推荐 科技 在线白板 协同办公软件

【最新破解秘钥】Vectorworks 2023 Mac必备3D建筑设计软件

Rose

3D建筑设计软件 Mac破解软件 Vectorworks 2023下载 Vectorworks 2023密钥

Amadine for Mac 矢量图设计工具 完美兼容M1

彩云

矢量图设计 Amadine下载

EndNote 21 for Mac(文献管理软件)

展初云

Mac 文献管理 endnote

创享蜀都 创力澎湃|2023鲲鹏开发者创享日·成都站成功举办

科技热闻

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