小编HAT*_*ZAB的帖子

为什么静态变量不允许递归?

如Sebesta的"编程语言概念"一书所述:

  • 静态变量提供全局访问,可以在子程序调用(历史敏感)之间保留值,并且是高效的.
  • 静态变量不支持递归

为什么静态变量不支持递归?这是因为如果发生递归会浪费大量内存,因为它就是static并且这意味着在整个程序终止之前它不会从内存中释放出来吗?

c c# recursion

7
推荐指数
3
解决办法
9699
查看次数

什么是GPU上下文,NVIDIA架构中的GPU硬件通道

在阅读一些与GPU计算相关的论文时,我坚持理解这两个术语GPU上下文,而GPU硬件频道下面简要提到他们,但我无法理解他们的意思,

命令:GPU使用体系结构特定命令进行操作.每个GPU上下文都分配有一个FIFO队列,CPU上运行的程序将提交命令.只有当GPU本身调度相应的命令时,才会触发GPU上的计算和数据传输.

通道:为每个GPU上下文分配一个GPU硬件通道,在其中管理命令调度.Fermi不允许多个通道同时访问同一GPU功能单元,但允许它们共存,在硬件中自动切换.

对此有一个明确而简单的解释.

cuda gpu gpgpu nvidia

2
推荐指数
1
解决办法
3039
查看次数

正则表达式的语法

我正在从Aho的编译器构造中读取有限自动机和语法,并且我长期坚持使用这种语法.我对如何描述它没有明确的认识:

考虑以下语法:

S - >(L)| a L - > L,S | 小号

请注意,括号和逗号实际上是该语言的终端,并出现在此语法接受的句子中.尝试描述该语法生成​​的语言.这个语法是不明确的?

我关注的是:这种语法生成的语言能否被描述为正则表达式?我对如何做到这一点很困惑.有帮助吗?

regex grammar finite-automata context-free-grammar

1
推荐指数
1
解决办法
785
查看次数

至少内部名称的前31或63个字符是重要的?

以下是本书的直接引用(K&R,第2版,第35页):

"至少内部名称的前31个字符是重要的.对于函数名称和外部变量,数字可能小于31,因为外部名称可能被汇编程序和加载程序使用,语言无法控制.对于外部名称,该标准仅保证6个字符和一个案例."

在C99中,其内部名称没有长度限制,但只有前63个保证是重要的(§5.2.4.1翻译限制).

我的问题是为什么这些限制特别是3163?为什么这个号码具体?为什么不是19,24或任何其他数字?如果这是一个实施问题,是否可以从3163获益?

c c++ variables kr-c names

0
推荐指数
1
解决办法
579
查看次数