在 8 位块中处理变量的好方法是什么?
我正在尝试我的玩具语言设计,但遇到了一些问题。我希望它具有以位长度指定的变量。因此,例如,可以这样声明变量: byte value; two_bytes value; 现…
为什么是“超级”? Ruby 中的关键字而不是方法?
在 Ruby 中, super 是一个 关键字而不是方法。 为什么要这样设计呢? Ruby 的设计倾向于实现尽可能多的方法;关键字通常是为有自己的语法规则的语言…
“let表达式”的目的是(LetExpr)在Java编译器中?
Java 编译器似乎支持 com.sun.tools.javac.tree.* 中的 let 表达式(查找 LetExpr)。 JCTree 中的一条评论甚至提到了一些语法, (let int x = 3; in …
C++ 中的 POD 和 VPtr 设计编译器
这个问题更多的是关于语言设计,而不是关于改变 C++ 约定。 在思考 Go 编程语言(它如何清理将数据与接口分离,有效地将所有对象转换为结构)和 C++ …
使用相同的参考变量与单独的变量。 .Net 中引用变量的消耗
我不确定这个问题是否愚蠢,但我真的很想得到一些意见。我将直接提供一个我目前正在做的事情的例子。 我正在使用 HtmlAgilityPack 来解析一些 HTML 页…
PHP 字符串类型提示
为什么 PHP 只支持数组和对象的类型提示?我想使用如下所示的类型提示: protected function addServiceToken(string $token) { if(!array_key_exists…
为什么 C++11 constexpr 如此严格?
您可能知道,C++11 引入了 constexpr 关键字。 C++11引入了关键字constexpr,它允许用户 保证函数或对象构造函数是编译时的 持续的。 [...] 这使得编…
为什么增强型 for 循环的局部变量必须是局部的?
根据 Java 语言规范,§ 14.14.2,增强型 for 循环的变量必须是循环的局部变量。换句话说,这可以编译: for (State state : State.values()) { // do …
有没有关于 DSL 设计的书籍/论文? (不是 DSL 实现)
我必须为非程序员(我们公司的客户)创建一个 DSL,它需要提供一些高级语言功能(循环、条件表达式、变量...... - 所以它不仅仅是一个“简单”DSL)。…
NilClass、TrueClass 和 FalseClass 的目的是什么
NilClass、TrueClass 和 FalseClass 各有一个实例,即 nil、true 和false,这些都是常量,拥有这些类的目的是什么?为什么它们不能是 Object 类的实例…
运营商'??'不能应用于子类类型的操作数
以下代码给出了 Main 函数第二行标题中的错误。 public class P {} public class B : P {} public class A : P {} void Main() { P p = GetA()??GetB(…