写点什么

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

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

关注

评论

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

基于开放式架构的全球舆情监控系统选型指南

沃观Wovision

全球化 舆情监测 全球舆情监控 全球舆情

APP专项测试公开课分享

测试人

软件测试 测试开发

YashanDB数据库支持的复杂查询优化策略分析

数据库砖家

YashanDB数据库支持的高效数据压缩技术详解

数据库砖家

年末总结!2026最值得一看的全球舆情监测工具 Top 10

沃观Wovision

舆情监测 海外舆情监测 全球舆情监测 全球舆情

售后群炸了?AI客服如何让我们的团队重获新生

百川云开发者

开源 售后

老板必看/为什么你的机械厂订单多却不赚钱?

万界星空科技

mes 机械加工mes 制造业转型 机械组装mes 设备组装MES

YashanDB数据库支持大数据预处理的创新技术详述

数据库砖家

YashanDB数据库支持的复杂查询优化实战指南

数据库砖家

YashanDB数据库支持的机器学习数据挖掘功能介绍.

数据库砖家

全球舆情监控工具数据的多语言可视化呈现方案

沃观Wovision

全球化 海外舆情监控 舆情监控软件 全球舆情监控

YashanDB数据库支持的多种数据结构解析与应用

数据库砖家

YashanDB数据库支持的多维数据分析功能解析

数据库砖家

YashanDB数据库支持的多种数据模型解析

数据库砖家

YashanDB数据库支持的复杂查询优化技术.

数据库砖家

Gemini 3 横空出世,GUI 项目何去何从?

鼎道智联

AIGC

YashanDB数据库支持的常用数据类型及扩展能力

数据库砖家

YashanDB数据库支持的多模型数据结构详解

数据库砖家

YashanDB数据库支持的多语言数据处理优势详解.

数据库砖家

YashanDB数据库支持的高可用架构设计与实战指南

数据库砖家

数据机房建设方案,机房信息化方案,机房运维方案

金陵老街

数据中心 数据机房

YashanDB数据库支持的大规模并发数据处理技巧

数据库砖家

可灵团队提出OmniSync:无限时长、强id保持、遮挡情况下强鲁棒性,视频口型编辑新突破!

快手技术

视频 可灵AI 口型

YashanDB数据库支持弹性伸缩的创新技术研究与应用

数据库砖家

YashanDB数据库支持的SQL扩展功能详尽解析

数据库砖家

YashanDB数据库支持的大规模数据分析架构设计

数据库砖家

区块链 Web3 系统核心开发技术

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

低代码平台赋能高校学生,构建职业能力与企业需求的动态适配

中烟创新

YashanDB数据库支持的多模数据管理技术详解

数据库砖家

多模态 AI 学生心理测评系统:用技术读懂成长的“情绪密码”

上海拔俗

YashanDB数据库支持的多活集群技术剖析

数据库砖家

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