写点什么

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

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

关注

评论

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

dubbo-go 白话文 | 从零搭建 dubbogo 和 dubbo 的简单用例

阿里巴巴云原生

Java 云原生 dubbo 中间件 dubbogo

限量!腾讯高工用4部分讲清楚了Spring全家桶+微服务

996小迁

Java 架构 面试 springboot SpringCloud

[如果公司要招一个高级版你]给资深/晋升后的岗位写一个理想岗位模型(Job Model)

Geek_lot02c

产品经理训练营

区块链农产品溯源--实现农产品全程溯源

CECBC

食品溯源

SpringCloud 从入门到精通 12---Nacos配置中心

Felix

新年Flag 中奖名单公布|如何科学的从55人中随机选出11个中奖名额

InfoQ写作社区官方

话题讨论 热门活动

基于gRPC的注册发现与负载均衡的原理和实战

万俊峰Kevin

微服务 go-zero Go 语言

限量!阿里甩出878页性能优化笔记阿里甩出878页性能优化笔记!

Java架构之路

Java 程序员 架构 面试 编程语言

数字人民币支付新选择 没有网络时也能使用

CECBC

数字红包

给跨专业程序员的一些建议

Ryan Zheng

架构师训练营第八周作业

zamkai

大厂必问Redis:肝完这份阿里出品“Redis神技”还说你不会Redis?

Java架构之路

Java 程序员 架构 面试 编程语言

「回血赠书」Python入门书单,新年全力扬帆

博文视点Broadview

中国工业的基础设施“重化工业”是怎么发展起来的

JiangX

供应链 工业 28天写作 制造

案例研究之聊聊 QLExpress 源码 (九)

小诚信驿站

聊聊架构 28天写作 QLExpress源码 聊聊源码

安装Android系统 missing operating system

mengxn

android

有内味了!阿里内部Tomcat高阶调优笔记成功刷新了我的认知

Java架构之路

Java 程序员 架构 面试 编程语言

云原生 DevOps 的 5 步升级路径

阿里巴巴云原生

Serverless 容器 DevOps 微服务 云原生

怎么提升写代码的能力

阿里巴巴云原生

程序员 个人成长 方法论 云原生 自我思考

Kubernetes安装篇(上):基于Minikube方式部署本地环境

xcbeyond

Kubernetes 安装 minikube 28天写作 Kubernetes从入门到精通

中国区块链行业人才缺口将达75万以上

CECBC

区块链人才

给现实深情拥抱,向产业洪流奔跑:华为云AI的2020

脑极体

案例集锦|科技赋能,华为云GaussDB助千行百业数字化转型

华为云开发者联盟

数据库 华为云 企业应用

没搞清楚网络I/O模型?那怎么入门Netty

Java 后端 io

基础篇-http协议《http 简介、url详解、request》

清菡软件测试

测试

【函数计算实践】阿里云函数计算初探

程序员架构进阶

阿里云 架构 函数计算 28天写作 弹性扩容

一文带你学会AQS和并发工具类的关系2

伯阳

Java AQS 多线程 lock

CopyOnWriteArrayList 读写分离,弱一致性

叫练

弱一致性 读写分离; Vector; fail-fast; fail-safe

量化交易自动炒币机器人系统开发搭建

薇電13242772558

策略模式 区块链+

运维数智化时代——京东数科AIOps落地实践(一)

京东科技开发者

运维自动化 AIOPS

现在就开始倒数2030了? 华为的这条线索不能错过

脑极体

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