gpt4 book ai didi

c++ - 与 C++ 相比,Vala 是一种理智的解析语言吗?

转载 作者:可可西里 更新时间:2023-11-01 18:22:01 26 4
gpt4 key购买 nike

解析 C++ 的问题众所周知。它不能纯粹基于语法进行解析,不能像 LALR 那样完成(不管这个术语是什么,我不是语言理论家),语言规范是无数页等等。出于这个和其他原因,我' 为我的个人项目决定另一种语言。

Vala 看起来是一门不错的语言。尽管比 C++ 提供了许多改进,但解析起来同样麻烦吗?或者它是否有一个整洁的、长度合理的形式语法,或者一些逻辑描述,适合为编译器、源代码分析器和其他工具构建解析器?

无论答案是什么,它是否适用于 Genie 替代语法?

(我也想知道 D 和其他后 C++ 非 VM 语言,尽管不那么强烈。)

最佳答案

C++ 是最复杂的(如果不是最复杂的)编程语言之一,可以解析常用的语言。特别困难的是它的名称查找规则和模板实例化规则。使用 LALR(1) 解析器(例如 Bison 和 Yacc 生成的解析器)无法解析 C++,但它无论如何是可解析的(毕竟,人们每天都使用解析器解析 C++ 没有问题)。 (事实上,G++ 的早期版本是建立在 Bison 的通用 LR 解析器框架之上实际上不是,请参阅评论)在最近被手写的递归下降解析器取代之前)

另一方面,我不确定我看到 Vala 相对于 C++ 提供了哪些“改进”。这些语言试图实现相同的目标。另一方面,您可能不会在使用 Vala 接口(interface)编写的 GTK+ 之外找到很多东西。您将对其他一切使用 C 接口(interface),这确实违背了使用这种语言的意义。

如果您因为 C++ 的复杂性而不喜欢它,那么考虑使用 Objective-C 可能是个好主意,因为它是 C 的简单扩展(如 Vala),但拥有更大的程序员社区鉴于它是 Mac 领域一切事物的基础,供您借鉴。

最后,我不明白为什么解析语言本身的困难与程序员为了使用该语言应该关心的内容有关。只是我的 2 美分。

关于c++ - 与 C++ 相比,Vala 是一种理智的解析语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4290173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com