问题标签 [compiler-construction]

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 投票
6 回答
1976 浏览

c# - .Net 2+:为什么 if( 1 == null ) 不再抛出编译器异常?

int以示例为例,但这适用于 .Net 中的任何值类型

在 .Net 1 中,以下内容会引发编译器异常:

现在(在 .Net 2 或 3.5 中)该异常已经消失。

我知道这是为什么:

问题是因为int?是可以为空的,int现在有一个隐式转换为int?. 上面的语法是编译器的魔法。我们真的在做:

所以现在,当我们这样做时,i == null我们得到:

鉴于 C# 正在执行编译器逻辑来计算这个,为什么在处理绝对值时不能足够聪明地不这样做null

0 投票
8 回答
4106 浏览

.net - 为 .NET Framework 3.5 而不是 2.0 编译有什么优势吗?

为 .NET Framework 3.5 而不是 2.0 编译有什么优势吗?

例如更少的内存消耗,更快的启动,更好的性能......

我个人不这么认为,但我可能错过了一些东西。

编辑

  1. 当然3.5框架还有更多的特性,但这些都不是本题的重点。

  2. 好像没什么优势。

  3. 是的,我的意思是针对框架。我已经安装了最新的 3.5 SP1 和 VS 2008,那么编译和定位框架有什么区别?我可以在项目选项中定位框架,但如何“编译”特定的框架版本?我不知道有什么不同。

  4. 所以现在我们同意没有优势。

0 投票
12 回答
2000 浏览

python - 什么是开始编写编程语言的好资源,不是上下文无关的?

我正在寻找一种有趣的编程语言,但是我所看到的大部分资源都是用于编写无上下文语言的,但是我希望编写一种像 python 一样使用缩进的语言,据我所知,这意味着它可以不要与上下文无关。

0 投票
7 回答
962 浏览

c - 为什么即使我们在 C 程序中不包含 stdio.h 也不会出现编译时错误?

当我一开始没有包含任何头文件时,编译器如何知道 sleep 函数甚至 printf 函数的原型?

此外,如果我指定sleep(1,1,"xyz")或任意数量的参数,编译器仍会编译它。但奇怪的是 gcc 能够在链接时找到这个函数的定义,我不明白这怎么可能,因为实际sleep()的函数只接受一个参数,但我们的程序提到了三个参数。

0 投票
6 回答
4272 浏览

c++ - 为什么 C/C++ 程序在调试模式下经常会关闭优化?

在大多数 C 或 C++ 环境中,都有“调试”模式和“发布”模式编译。
查看两者之间的区别,您会发现调试模式添加了调试符号(通常是许多编译器上的 -g 选项),但它也禁用了大多数优化。
在“发布”模式下,您通常会开启各种优化。
为什么有区别?

0 投票
3 回答
385 浏览

compiler-construction - 如何推断强制?

我想知道如何在类型推断期间推断强制(又名隐式转换)。我正在使用 Bastiaan Heeren 在Top Quality Type Error Messages中描述的类型推断方案,但我认为在所有 Hindley-Milner-esque 方法中的总体思路可能都是相同的。

似乎强制可以被视为一种重载形式,但本文中描述的重载方法没有考虑(至少不是以我可以遵循的方式)基于上下文对返回类型的要求的重载,即胁迫的必要条件。我还担心这种方法可能难以优先考虑身份强制,也难以尊重强制的传递闭包。我可以看到将每个可强制表达式(例如e )添加到 coerce( e ),但是将其添加到 coerce(coerce(coerce(... coerce( e) ...))) 对于等于强制嵌套的最大嵌套的某些深度似乎很愚蠢,并且还将强制关系限制为具有有限传递闭包的东西,其深度与上下文无关,这似乎(不必要?)限制。

0 投票
1 回答
2723 浏览

java - 如何在没有 ant 的情况下从命令行编译使用 Google webdriver 的 java 应用程序

我想编译一个使用 google 的 webdriver 的示例代码。

我将 webdriver 保存到 /home/iyo/webdriver。我的代码是:

但我与

我收到这样的错误:

FirstTest.java:7:找不到符号

符号:类 WebDriver

位置:包 com.googlecode.webdriver

导入 com.googlecode.webdriver.WebDriver;

FirstTest.java:9:找不到符号

符号:类 WebElement

位置:包 com.googlecode.webdriver

导入 com.googlecode.webdriver.WebElement;

FirstTest.java:11:com.googlecode.webdriver.htmlunit 包不存在

导入 com.googlecode.webdriver.htmlunit.HtmlUnitDriver;

FirstTest.java:19:找不到符号

符号:类 WebDriver

位置:com.googlecode.webdriver.example.FirstTest 类

FirstTest.java:19:找不到符号

符号:类 HtmlUnitDriver

位置:com.googlecode.webdriver.example.FirstTest 类

FirstTest.java:27:找不到符号

符号:类 WebElement

位置:com.googlecode.webdriver.example.FirstTest 类

FirstTest.java:29:找不到符号

符号:变量

位置:com.googlecode.webdriver.example.FirstTest 类

8 个错误

s possible to use it whitouht Ant?(The code in NetBeans or Eclipse work well, but I don不想使用它们。)仅使用 javac?

谢谢。

0 投票
11 回答
106364 浏览

c++ - “文件末尾没有换行符”编译器警告

在某些 C++ 编译器中出现以下警告的原因是什么?

文件末尾没有换行符

为什么我应该在源/头文件的末尾有一个空行?

0 投票
14 回答
1418 浏览

c++ - 学习 C++ 时可以使用哪些好的编译器?

对于初学者来说易于使用的 C++ 编译器有哪些建议?免费或开源的将是首选。

0 投票
5 回答
1951 浏览

windows - 最好的win32编译脚本语言?

Win32 最好的可编译脚本语言是什么?我更喜欢 .EXE,因为我不想先在服务器上安装运行时(我的公司通过远程管理许多),但我需要能够通过网络执行 NTFS 权限和(如果可能的话)API 之类的事情。

有一个小的 Perl 似乎能够完成大部分工作,但它似乎在很长一段时间内都没有更新/开发。我想知道 Lua,但我不知道它是否具备我需要的一切(并且不想通过 50 个图书馆网站寻找答案)。有什么想法吗?