19得票9回答
instanceof/is的优先级原因

在C#和Java中,is和instanceof的运算符优先级会导致一些必要但繁琐的括号。例如,你需要写成if (!(bar instanceof Foo))而不是if (!bar instanceof Foo)。 那么为什么语言团队决定把!的优先级放在is/instanceof之上呢?尽管在...

18得票4回答
可变和不可变类型背后的理论是什么?

我钦佩 Python 的一点是它区分可变和不可变类型。在使用 Python 之前,我曾花了一些时间在 C 语言编程,惊讶于 Python 很容易地消除了在 C 语言中令我疯狂的指针解引用的复杂性。在 Python 中,一切都按照我期望的方式工作,我很快意识到可变/不可变的区别在其中发挥了重要作...

17得票2回答
SLR(1)解析器和epsilon的涉及

假设我有以下语法:S → X X → a | ϵ 如果语法中没有涉及ϵ,我会像这样构建第一个状态:S' → .S S → .X X → .a 但是关于符号 ϵ 呢?我应该包含它吗:X → .ϵ 也就是说...在创建下一个状态时,我应该执行GOTO(Io,ϵ),其中Io是第一个状态吗?

16得票6回答
除了Logo和Emacs Lisp之外,还有哪些纯粹的动态作用域语言?

有哪些动态作用域语言的例子?为什么选择这种设计?是因为它易于实现吗?

14得票5回答
计算机科学课程适合老年人吗?

我学习C++时它还是带类的C语言。我越来越不喜欢像XML和垃圾收集器这样的新技术。另一方面,我发现脚本语言如Lua和Python。我更喜欢C++与确定性内存控制、嵌入式脚本语言、垃圾收集等混合环境。 问题在于,当我试图学习这些语言时,我会遇到一些我不理解的术语:lambda、closure等...

14得票6回答
一门编程语言被静态类型化是什么意思?

我的理解是,这意味着可以编写一个程序来正式证明在静态类型语言中编写的程序不会存在某些(小)缺陷。 我对此的问题如下: 假设我们有两种图灵完备语言 A 和 B,A 被认为是“类型安全”的,“B”被认为不是。假设我有一个程序L来检查在A中编写的任何程序的正确性。那么,有什么阻止我将在B中编写的...

13得票12回答
为什么在大括号后面不需要分号?

我知道在语句结束处需要加分号(我指的是Java、C++和类似的语言),但是在花括号结束后不需要。为什么呢?if (a > b) printf("hello!"); // semicolon is mandatory if (a > b) { printf("hello!...

11得票4回答
“真正的”多维数组的定义是什么,哪些编程语言支持它们?

我读过的大部分编程书籍都有以下这句话: "X 语言不支持真正的多维数组,但是您可以使用数组的数组来模拟(近似)它们。" 由于我大部分的经验都是用基于 C 的语言编写的,例如 C++、Java、JavaScript、php 等,我不确定什么是“真正”的多维数组。 什么是“真正”的多维数组,...

10得票10回答
9得票1回答
无上下文语言问题(泵引理)

我知道这与编程无直接关系,但我想知道有没有人知道如何将泵引理应用于以下证明: 展示L={(a^n)(b^n)(c^m) : n!=m}不是上下文无关语言 我对应用泵引理相当自信,但这个让我真的很恼火。你觉得呢?