Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

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

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

关注

评论

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

mac上最好用的视频下载工具Downie

晨光熹微

为未来企业实现数据驱动的决策积累专业财务技能

智达方通

数据分析 全面预算管理 财务管理

鸿蒙5开发宝藏案例分享---性能优化案例解析

莓创技术

3分钟搞懂 Apache SeaTunnel CDC 数据同步

白鲸开源

开源 数据集成 CDC Seatunnel

全球 DaaS 市场研究报告上线,聚焦数据服务化趋势与行业演进路径

tapdata

DaaS市场研究报告 数据即服务报告 数据服务行业解决方案 什么是数据即服务 数据服务化趋势

Yate for mac 音乐标签管理工具

晨光熹微

Mac上好用的文件提取工具File Juicer

晨光熹微

玩转 MCP 第二弹|一文教你用 Trae 实现网页自动化测试

火山引擎开发者社区

MCP Trae

Mac超强全能视频播放器Infuse Pro中文版

晨光熹微

最好用的办公套件Microsoft Office 2024 for mac中文版

晨光熹微

YashanDB数据库分布式事务设计与应用实践

数据库砖家

(网页CAD插件)WEB CAD二开焊接符号

WEB CAD SDK

菜单栏上面的文件管理器File Cabinet Pro for mac

晨光熹微

应用深度清理卸载工具App Cleaner & Uninstaller Pro中文版

晨光熹微

YashanDB数据库分布式事务实现与挑战解析

数据库砖家

实测提速 60%!Maven Daemon 全面加速 SeaTunnel 编译打包效率

白鲸开源

maven 编译 打包 Seatunnel Maven Daemon

zFuse Pro For Mac 轻量级视频播放器软件

晨光熹微

鸿蒙5开发宝藏案例分享---性能体验设计

莓创技术

Mac上软件闪退(意外退出)的解决方法

柠檬与橘子

Mac电子邮件客户端Mimestream

晨光熹微

将两台 Mac 显示器设置为单个屏幕

柠檬与橘子

SQL Server CDC 机制全解:如何用 SeaTunnel 构建高效实时数据同步方案

白鲸开源

sql 数据集成 CDC Seatunnel

鸿蒙5开发宝藏案例分享---埋点开发实战指南

莓创技术

DSIP-91提案解读:简化工作流调试和发布的方案,等你来探讨!

白鲸开源

GitHub 开源 工作流调度 Apache DolphinScheduler

Trae - 非科班在建模比赛中的 AI 编程手|AI编程社知识库精选

火山引擎开发者社区

Trae AI 编程

Pandabuy崛起,系统搭建秘诀在这!

tbapi

淘宝代购系统 Pandabuy 反向海淘系统 pandabuy系统

YashanDB数据库分布式架构设计实战指南

数据库砖家

高考报志愿别只看一个AI,多AI比较+大数据才更稳

脑极体

AI

强大的文件查找器Find Any File for mac

晨光熹微

打破交互困局:科大讯飞这样出手

脑极体

AI

Mac上好用的视频音频格式转换工具Permute

晨光熹微

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