写点什么

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

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

关注

评论

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

2021年来看看Android的发展,程序员如何应对中年危机

android 程序员 移动开发

2021最值得加入的互联网公司有哪些,阿里三面

android 程序员 移动开发

论文解读:ACL2021 NER | 基于模板的BART命名实体识别

华为云开发者联盟

nlp 模板 实体识别 BART命名 NER

android嵌入式开发板系统盘,看完就能找到工作

android 程序员 移动开发

android5.0下载,阿里Android研发岗二面

android 程序员 移动开发

2021最新Android常用开源库总结,retrofit源码

android 程序员 移动开发

2021最新中高级Android面试题目,2021必看

android 程序员 移动开发

Android-Camera内存问题剖析,通用流行框架大全

android 程序员 移动开发

androidframework开发教程,安卓面试题库

android 程序员 移动开发

Android屏幕适配很难嘛其实也就那么回事,含面试题+答案

android 程序员 移动开发

2021高级Android笔试总结,帮你解决95%以上的问题

android 程序员 移动开发

android学习心得,并发编程挑战

android 程序员 移动开发

android工程师面试题,大厂面试题汇总

android 程序员 移动开发

android开发入门与实战网盘,值得一读

android 程序员 移动开发

android开发入门与实战网盘,大佬分享开发经验

android 程序员 移动开发

2021年字节跳动+京东+美团面试总结,查漏补缺

android 程序员 移动开发

DeFi流动性挖矿系统开发资料(源码)

揭开MySQL Volcano模型迭代器性能提升千倍的秘密

华为云开发者联盟

MySQL 数据库 华为云数据库 MySQL Volcano 模型迭代器

云图说|Git云上仓库哪家好?一张图了解华为云代码托管服务

华为云开发者联盟

代码 华为云 codehub 上云 代码云托管

4面阿里拿到P7Offer,Android开发指南

android 程序员 移动开发

714页PDF的鸿蒙学习笔记,Android开发必须会的技能

android 程序员 移动开发

androidstudio连接手机,四面阿里Android开发岗

android 程序员 移动开发

DeFi质押挖矿系统DAPP开发内容(源码)

Android大厂高级面试题灵魂100问,金九银十

android 程序员 移动开发

android常用面试题,顺利通过阿里Android岗面试

android 程序员 移动开发

androidsdk下载安装,经验分享

android 程序员 移动开发

android实战的书籍,超通俗解析

android 程序员 移动开发

掘金万亿新IT服务大市场,联想智慧服务核心能力持续跃升

科技大数据

android基础知识总结,面试复盘

android 程序员 移动开发

这4个行业用进销存管理系统是肯定不会错的

低代码小观

企业 企业管理 系统 管理系统 进销存管理系统

android实战视频教程,高并发系统基础篇

android 程序员 移动开发

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