写点什么

Microsoft 推出 Bosque,一种编写易推理代码的编程语言

作者:Abhishek Kaushik

  • 2019-06-21
  • 本文字数:1210 字

    阅读完需:约 4 分钟

Microsoft 推出 Bosque,一种编写易推理代码的编程语言

微软最近推出了Bosque编程语言,这是一个探究性的语言设计研究项目,“用于编写对人和机器来说都简单、浅显、易推理的代码”。微软表示,“我们的目标是提高开发人员的工作效率,提高软件质量,并提供一系列新的编译器和工具体验。”该语言由受TypeScript启发的语法和类型,以及受MLNode/JavaScript启发的语义组合而成。它是微软开发的编程语言列表上的最新成员,其中包括TypeScriptC#F#等广受欢迎的语言。


Bosque 是一个被称为“正则化编程”的编程范例的实例,它是由微软首席研究软件开发工程师Mark Marron推出的。正则化编程以结构化编程模型的成功为基础,而后者在 20 世纪 70 年代就逐渐开始流行。结构化编程模型旨在提高计算机程序的清晰度和质量,同时通过使用选择、重复、块结构和子程序减少开发时间。


在介绍正则化编程的论文中,Marron 指出,结构化编程和抽象数据类型的兴起“表明编程模型从反映底层硬件体系结构附带特性的编程模型向更直接地强调程序员意图的模型的转变”。这种转变使开发人员可以更轻松地将系统的心智模型转换为代码,而且不易出错,使我们进入了编译器和 IDE 工具开发的黄金时代。”按照他的说法,“这些编程方法通过消除非本质复杂性的根本来源,简化了程序的推理。”在他的论文中,他列出了一些结构化编程模型没有处理的额外的复杂性来源,并通过 Bosque 演示了如何通过正则化编程设法消除这些复杂性,改善软件质量、程序员生产力和编译器/工具。


这篇论文根据对开发人员的访谈、分析/运行时/编译器开发的个人经验和实证研究,列出了复杂性的五个主要来源。这些来源包括可变状态和帧、循环、递归和不变量、不确定行为(排序稳定性、Map/字典枚举顺序等)、违反数据不变量、等式和别名。根据 Marron 的说法,这些产生各种 Bug 家族的原因,增加了在程序中实现功能所需的工作量,并且极大地复杂化了关于程序的自动推理。Bosque 通过使用不可变数据、消除循环和限制递归、完全确定语言语义、引入代数批量数据运算符等多种语言特性来处理这些问题。


这种语言引起了社区的注意,人们在 Reddit、HackerNews 和 Twitter 等论坛上讨论这种语言的特性、语法及其用途。用户 arrow7000 在HackerNews上询问 Marron 关于该语言的用途,以及与现有语言相比,它是如何变得更好的。按照 Marron 的说法,Bosque 计划作为概念验证来探索语言的设计选择,其目标是实现自动化开发工具,如编译器和验证器。


Bosque 的GitHub页面提到,该项目尚处于早期阶段,欢迎学术合作和社区参与。该页面指出,Bosque 的功能有限,并且承认其存在 Bug,因此建议将其试验性地用于次要项目,而不是用于任何生产工作。此外,由于项目的主要焦点是核心语言设计,所以只提供有限的编译/开发支持,而且不支持打包、部署、生命周期管理等。


要了解更多信息,请查看 Bosque 的GitHub页面


查看英文原文:Microsoft Introduces Bosque, a Programming Language for Writing Easy to Reason About Code


2019-06-21 08:001178
用户头像

发布了 929 篇内容, 共 652.3 次阅读, 收获喜欢 1631 次。

关注

评论

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

Amazon Q Developer CLI + 飞书——打造对话式的 AI Agent 智能运维平台

亚马逊云科技 (Amazon Web Services)

RL 和 Memory 驱动的 Personal Agent,实测 Macaron AI

阿里巴巴云原生

阿里云 AI 云原生

【客户喜报】消费者追捧,勃肯鞋亚洲收入激增24%

第七在线

在AI技术快速实现功能的时代,挖掘新需求成为关键——某知名隐私保护代理系统需求洞察

qife122

AI技术 代理系统

Earth Preta混合合法与恶意组件规避检测技术分析

qife122

网络安全 APT攻击 恶意软件分析 代码注入

密码学原语混合执行分析:Sandshrew工具的技术探索

qife122

符号执行 Manticore

让好知识轻松可及!百度百科19周年升级繁星计划、智能体等多项产品能力

极客天地

配电 低压电工经验总结(13)

万里无云万里天

工业 工厂运维

Dify 性能瓶颈?Higress AI 网关为它注入「高可用之魂」!

阿里巴巴云原生

阿里云 云原生 dify

大数据-78 Kafka应用场景全解析:从消息中间件到流处理,附实战集群部署

武子康

Java 大数据 kafka 分布式 消息队列

黑龙江等保测评公司选择关键维度:服务能力与适配性

等保测评

智绘蓝图,共赢未来|Honeywell品牌发布会暨首场招商财富会圆满收官!

新消费日报

智能马桶产业进入洗牌期,谁能拿下“第一话语权”?

Alter

mockrs: 重新定义 Rust 测试——业界首个线程安全的自由函数模拟库

SkyFire

rust test Mock mockrs

ADManager Plus:突破 ADUC 与 PowerShell 局限的 AD域管理工具

运维有小邓

AD域 AD域管理 AD域组管理

Truffle Security 重磅升级 XSS Hunter 工具,新增 CORS 误配检测与密钥扫描功能

qife122

XSS 漏洞检测

火车站LED信息屏的重要性

Dylan

信息 LED LED display LED显示屏 LED屏幕

通义 Fun-ASR 更新:上亿小时数据训练,精确识别行业术语;钉钉发布语音转写硬件DingTalk A1丨日报

RTE开发者社区

告别低效!元图 CAD 图像识别功能,让图纸转换快人一步

元图CAD

AI 图像识别 OCR识别 元图cad

高并发系统下,如何用限流算法优雅地保护你的服务?

左诗右码

Lazada 如何用实时计算 Flink + Hologres 构建实时商品选品平台

Apache Flink

大数据 flink 实时计算

向量数据库在 UGC 社区个性化推荐的落地指南

老纪的技术唠嗑局

oceanbase AI' 向量化

狼人杀法官版,EdgeOne带你轻松上手狼人杀

六月的雨在InfoQ

EdgeOne免费套餐

有一款Agent,悄悄让你变成个人导演

脑极体

AI

传帮带 人才梯队建设经验总结(5)

万里无云万里天

人才培养 工厂运维

mockrs — 超越 Trait 的自由函数模拟与线程安全

SkyFire

rust test Mock mockrs

DNS劫持成因和应对策略探讨

防火墙后吃泡面

震坤行商品详情API秘籍!轻松获取商品详情数据

tbapi

震坤行API 震坤行商品详情API 震坤行数据采集

在AI技术快速实现想法的时代,挖掘新需求成为核心竞争力——某知名实时数据处理框架需求洞察

qife122

需求分析 AI技术

非凸科技联合举办“星耀领航计划”财富管理发展论坛

非凸科技

Microsoft 推出 Bosque,一种编写易推理代码的编程语言_语言 & 开发_InfoQ精选文章