VAL是东北大学研究type-ba的Dimi Racordon开发的一种新的高级编程语言Sed内存安全和语言设计。
它来自于她的研究与Google和Adobe合作,对Swift编程语言和可变值语义领域进行了介绍,可变值语义支持值的独立性以促进局部推理。
Haskell、Rust和R是其他使用可变值语义的语言的例子。
“这是一个大约两年前开始的项目。我写了这篇论文,我与谷歌和Adobe的优秀人才合作,”Racordon告诉the New Stack。“写完这篇论文后,我脑子里有了一个小想法,我想,哦,我们会尝试实施一些东西,这将是一个两到三周的项目。已经两年了。”
由于Swift支持可变值语义,Racordon决定使用它而不是任何其他编程语言,因为它对系统编程更有意义,而且它可以编译为机器代码。Racordon我们她想知道如果她设计了一种纯粹的语言会发生什么关于可变值语义,因为它也破坏了它。
“可变值语义是一门真正关注概念的编程学科最终值。例如,如果我有一个数组,这个数组的值是最大的创造有限公司我想要操纵的概念,”她说。“这给了我当地的推理。”
她解释说:“如果你把一个数组传递给Python中的一个函数,然后这个函数继续改变数组,可能会增加一个元素,或者从这个数组中删除一些元素,那么这种效果可以从函数的外部观察到。”
函数的调用者将有自己的数组被更改。你不能推理局部的a关于值,因为每次调用函数时,可能会在程序中看似无关的部分出现一些副作用。她补充道。
她说,这使得很难运用当地的理性对于人类来说,这使得确保程序的正确性变得更加困难,但它也使编译器变得困难,因为现在的优化需要非常保守。
最好避免做任何事情,而不是损害参考体系结构考虑到可能存在其他引用,并且程序的某些看似无关的部分可能需要该值。
为什么瓦尔
根据Racordon的说法,这种语言是用于系统编程的,因此它通常用于任何在机器边缘操作的应用程序,并且必须从机器中榨取最后一滴性能。
有些应用程序负担不起虚拟机或垃圾收集器,例如操作系统、视频游戏和图像处理。她说,嵌入式应用程序也将是“一个非常有趣的目标”。
Racordon说:“嵌入式系统的一个问题是,它是一个非常断裂的生态系统,因为它几乎是一个系统,一个CPU,一个架构。”“很难为所有人提供一种通用语言。所以,是的,当然,它可能有效。但如果我们真的想要获得最大可能的性能,我们可能必须针对特定目标进行专门研究。”
开源语言在GitHub上可用,但仍在创建中。戈登在找co想要通过发展语言来“亲自动手”的贡献者。
“他们采取了错误的方法来解决问题。他们正在采取措施,试图监管参考资料,并有一套类型系统,使使用它们是安全的,”她说。
“在哪儿至于瓦尔,我们说,让我们摆脱参考,因为参考是一个问题,所以我们有一个简单得多的模型。”