21CTO导读:Val 是一种运行接近Rust的高级编程语言,该语言的创建者 Dimi Racordon 表示。
发明人 Racordon 近日表示,称自己研发的 VAL语言目标用于系统编程,通常用于在机器边缘运行的任何应用程序,并且能够充分利用机器的大部分性能。
VAL是美国东北大学Dimi Racordon开发的一种新型高级编程语言,这位女士专门研究和设计基于类型内存安全的计算机编程语言。
VAL作者 Dimi Racordon女士
这个语言源于她与 Google 和 Adobe 合作对 Swift 编程语言和可变值语义领域的研究,包括该领域支持值的独立性以促进本地化计算与推理技术。
在这里我们举粟说明,比如 Haskell、Rust 和 R 都是使用可变值语义的语言例子。
“这个项目,大约开始于两年前。我写了一篇论文,我与 Google 和 Adobe 的优秀专家人士合作。写完这篇论文后,我脑子里便有了一个小想法,我想,哦,我们会尝试实施一些东西,这将是一个两三周就能搞定的项目。但实际,这个项目到现在已经两年了。”
由于 Swift 语言支持可变值语义,Racordon 决定使用它而不再用其他编程语言。其主要原因是,Swift 对于系统编程有意义,并且它可以编译为机器代码。Racordon 想知道如果她设计一种纯粹关于可变值语义的语言会发生什么,因为它也会发生破坏。
“可变值语义是一门真正关注概念值的编程学科。例如,如果我有一个数组,这个数组的值就是我想要操作的最重要概念,这给了我本地推理的思考。常发生的情况是,如果你将一个数组传递给Python
中的函数,然后这个函数继续改变数组的值,可能添加一个元素,或者从这个数组中删除一些元素,然后可以从函数外部观察到这种效果”。
“该函数的调用者将可以更改其自己的数组。你无法对值进行本地推理,因为每次调用函数时,程序中看似不相关的部分都可能会出现副作用。” Dimi Racordon 补充道。
这使人类很难应用本地推理,从而更难以确保程序的正确性,但也让编译器变得困难,现在的优化需要保守的执行。
考虑到可能存在其它引用,并且程序中一些看似不相关的部分可能需要此值,最好避免做任何事情,否则会损害该语言的体系结构。
为什么选择 Val?
根据 Racordon 的说法,该语言目标就是用于系统编程,因此它通常用于在机器边缘计算/运行并且必须充分利用其性能的任何应用程序。
有些应用程序无法负担虚拟机或垃圾收集器的费用,例如操作系统、视频游戏和图像处理。她说,嵌入式应用程序也将是“一个非常有趣的目标”。
“嵌入式系统的一个问题是,它是一个非常支离破碎的生态系统。它几乎是一个系统、一个 CPU、单一一种架构,”Racordon 说。“为所有人提供一种通用语言确实很困难。当然,它可能会起作用。但如果我们真的想获得最大可能的性能,我们可能必须专门针对特定目标开发。”
目前,该开源语言可在GitHub上获取,但仍在创建与开发中。Racordon 也正在寻找那些想要通过改进语言来“亲自动手”的开源贡献者。
“他们采取了错误的方法来解决问题。他们正在采取尝试监管引用的方法,并拥有一个类型系统,使用它们是安全的,”她说。
“而对于 Val,我们说,让我们摆脱引用,因为引用是问题所在,所以我们拥有一个更简单的模型。”
编辑注:文章中提及语言作者为『她』,我们在其它资料上找到其照片,但不确定是否是本人。但一位女士能有此理想,也是我们开发者应该学习效仿的,对吗?
编译:大雄
来源:
https://thenewstack.io/meet-val-a-new-language-alternative-to-c-rust/