问题标签 [language-specifications]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5063 浏览

c++ - 在 while 循环中,最后一个逗号分隔的语句是否保证最后运行?

考虑以下(平凡的)代码段:

在一般情况下,C++ 允许以任何顺序评估逗号分隔的语句。在 while 循环的情况下,我们是否至少保证(通过规范)最后一个语句(用作循环的条件)最后被评估?

0 投票
5 回答
166 浏览

compiler-construction - 编译器和语言规范/语法是否相同?

可以编写一个编译器,您不能从中对输入语言的语法和含义进行逆向工程。

即你能总是从编译器那里得到语言的规范吗?

假设我想从 ?? 对于某些语言,但我不希望阅读编译器的人能够阅读和理解?

我个人觉得编译器和语言规范是同构的,但从学术的角度来看,我对这是否错误很感兴趣。

0 投票
5 回答
11952 浏览

html - HTML5到底是什么标签和浏览器支持是什么

我已经阅读了HTML5 规范<command>,发现关于这个元素的信息非常模糊。

我已经尝试过了,发现它在 Chrome(最新版本)不起作用,并且在 Safari(甚至更旧的版本)上起作用,抱歉没有 FF(请不要开枪)-仅 Mac 测试。

我无法理解这个元素的用途,或者即使我正确使用它。

我提前感谢您对此的任何澄清!

0 投票
5 回答
15608 浏览

php - 在 PHP 中导入类和命名空间:前导反斜杠有什么区别?

这两者有什么区别:

或者那些:

手册说:

请注意,对于命名空间名称(包含命名空间分隔符的完全限定的命名空间名称,例如 Foo\Bar,而不是不包含命名空间分隔符的全局名称,例如 FooBar),前导反斜杠是不必要且不允许的,因为导入名称必须是完全限定的,并且不相对于当前命名空间进行处理。

但我不太明白这一点,因为上述所有变体都有效,即它绝对不是“不允许的”。

研究zend_do_use表明,is_global(设置,当有前导反斜杠时)仅在以下情况下用于警告:

这告诉我:“使用非复合名称‘异常’的语句无效”。(虽然做同样的事情use \Exception会产生同样的影响,但不会发出警告。)

所以:我错过了什么吗?真的有什么区别吗?

0 投票
2 回答
3513 浏览

blogger - Blogger 模板语言规范

google 是否在某处发布了官方博客模板语言规范?我阅读了这个问题,它提供了很多有用的信息,但它没有为我提供关于我正在寻找的特定标签(variable标签)的帮助。

0 投票
4 回答
546 浏览

language-agnostic - C语言语义规范

Wikipidea 说 Perl 有一个占主导地位的实现,用作其规范的参考,而 C 语言由标准 ANSI ISO 指定。

没读过一行标准就学了C语言,这正常吗……?

我想知道标准(即自然语言文档)如何能够在不参考任何主要实现的情况下描述编程语言。

0 投票
3 回答
910 浏览

c# - 为什么 C# 为 `using` 定义了两种不同的用法?

更多的是出于好奇而提出的问题,但为什么 C# 为关键字定义了两个不同的“目的” using?一方面,这是一个指令......

用于为命名空间创建别名或导入在其他命名空间中定义的类型。

另一方面,这是一个声明...

定义一个范围,一个或多个对象将在该范围之外被释放。

对我来说,同一个关键字似乎有不同的用途,但也许我遗漏了一些东西。这个关键字有两种不同的用途是有原因的吗?或者,这两个目的,在编译器的深处,真的是一回事吗?

0 投票
1 回答
1039 浏览

haskell - 在哪里指定了在 Haskell 实现中是否应该允许使用 Unicode 标识符?

我想用标识符中的 Unicode 字符(非拉丁语)在 Haskell 中编写一些教育代码。(这样对于说英语以外的自然语言的人来说,标识符看起来既漂亮又自然,在其写作中没有使用拉丁字符。)因此,我开始寻找一个合适的 Haskell 实现来实现这一点。

但是语言规范中在哪里指定了此功能?在寻找符合要求的实现时,我将如何引用此功能?(已知哪些 Haskell 实现实际上支持 Unicode 标识符?)

事实证明,一个 Haskell 实现确实接受了我的带有 Unicode 标识符的代码,而另一个没有接受它。如果有一种方法可以形式化我的代码的这种要求,我希望它可能以语言功能切换的形式,这样如果我或其他人尝试运行我的代码,就会立即清楚他的实现是否丢失所需的功能,因此他应该寻找另一个。(这个特性也可能有一个 wiki 页面——“Unicode 标识符”,它会列出哪些现有实现支持它,这样如果需要它,人们就会知道去哪里。)

(顺便说一句,我在这个问题上加了一个“语法”标签,但我实际上认为这是词法水平的问题,比语言的语法低。这里有一个标签来表示词法的特征一种语言的水平,而不是一种语言的语法规范的特征?)

0 投票
3 回答
168 浏览

c# - C# 语言规范“程序实例化”似乎被错误识别

在 C# 语言规范中,程序被定义为

对编译器的输入进行编程。

虽然应用程序被定义为

应用具有入口点的程序集

但是,他们定义

程序实例化——应用程序的执行。

鉴于“程序”的定义,这不应该是......

应用程序实例化——应用程序的执行。

反而?

0 投票
6 回答
876 浏览

c# - C# 规范(团队?委员会?)是否考虑过这种对象创建语法?

我以前从未发布过这种性质的问题,所以如果它不适合 SO,请不要伤害我的感情,我会删除它。

为了让我关心的所有内容尽可能靠近左边距,我一直希望我能写出类似的东西:

我认为另一个原因是我喜欢当类型已经存在于作业右侧时使用 var 获得的额外屏幕空间,但是我的大脑已经花费了太多年时间来寻找左侧的类型。再说一次,被困在我的方式并不是希望获得规范的好理由......