阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

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

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

关注

评论

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

Hoo研究院|区块链简报 20220523期

区块链前沿News

#区块链# Hoo 热点

成本节省 50%,10 人团队使用函数计算开发 wolai 在线文档应用

阿里巴巴中间件

阿里云 中间件 函数计算

直播预告丨Hello HarmonyOS进阶课程第四课——ArkUI动画开发

HarmonyOS开发者

HarmonyOS arkui

在星云科技,我们使用 Zadig 实现多环境并行发布,上千次周部署

Zadig

DevOps 云原生 CI/CD 软件交付

微擎同步粉丝不显示头像和昵称?

智伍应用

微擎 php开源

混合办公首选轻薄本,华为MateBook的“三重变身”改变了什么?

脑极体

干货复盘 | 易观分析“出海非洲战略”专题分享

易观分析

非洲战略

Apache SeaTunnel(Incubating)与计算引擎的解耦之道,重构API我们做了些什么

Apache SeaTunnel

Apache 大数据 开源 DolphinScheduler workflow

企业引流和留存,“App+小程序”是较优技术策略

Speedoooo

微信小程序 APP开发 小程序容器 小程序转app

十、云原生网络架构

穿过生命散发芬芳

网络架构 5月月更

谈谈技术能力

阿里巴巴中间件

阿里云 程序员 中间件 技术思考

满满干货!手把手教你实现基于eTS的HarmonyOS分布式计算器

HarmonyOS开发者

HarmonyOS ETS

为什么校招面试中“线程与进程的区别”老是被问到?我该如何回答?

宇宙之一粟

线程 进程 5月月更

使用postMessage对iframe进行跨域数据传输

空城机

iframe postMessage 5月月更

热烈庆祝“海泰密码技术融合创新中心&数据中心重启安全工程”双中心智能重启用

电子信息发烧客

网络安全 科技 科技企业

做了5年开源项目,我总结了以下提PR经验!

OpenHarmony开发者

OpenHarmony 开源生态

Markdown语法简介

工程师日月

markdown语法 5月月更

前端食堂技术周刊第 38 期:Remix v1.5.0、Babel v7.18.0、前端部署十五章、Tree Shaking 问题排查指南、一文搞懂前端技术发展

童欧巴

前端 Remix 前端部署

SaaS应用:企业数字化转型性价比最高的方式

小炮

英伟达周锡健:设计到数字营销的最后一公里

阿里云弹性计算

vr XR 视觉计算

“双碳”大局中再看业务合同电子化

鲸品堂

节能 提效降本 双碳

使用 Provider 实现 Flutter 不相关页面状态数据共享

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

Apache ShenYu 网关正式支持 Dubbo3 服务代理

阿里巴巴中间件

阿里云 开源 微服务 云原生 dubbo

IET 试水SiFL中文项目 为中国工程师“走出去”创造宝贵机遇

E科讯

人人皆为开发者?不可错过的低代码发展新趋势

云智慧AIOps社区

大前端 低代码 数据可视化

10分钟,将微信小程序转换成App

Speedoooo

微信小程序 移动开发 小程序容器 小程序转app

我们为什么选择使用分布式持续交付新星 Zadig ?

Zadig

DevOps 云原生 CI/CD 软件交付

【刷题第16天】数组中出现次数超过一半的数字

白日梦

5月月更

创业、女性、数字化:后COVID-19世界的复苏“铁三角”

脑极体

多款顶级好用的 Vue 表单设计器测评推荐,可拖拽生成表单

蒋川

Vue Element 组件 表单设计 Ant Design

小程序和App同时拥有?两者兼得的一种技术方案

Speedoooo

微信小程序 APP开发 小程序容器 小程序转app

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