想改进这个问题吗?通过编辑这篇文章添加细节并澄清问题。
如果我保存相同的代码,编译器会再次编译程序,还是会保留旧的编译代码。如果它不再编译,意味着它如何识别它是同一个代码。
在基于c的编程语言中我相信编译器保存编译格式(python是基于c的编程语言,虽然它确实使用解释器,而不是编译器)
编译器不会检查代码是否与以前相同。如果您正在执行命令行编译,如javac-Prog。java总是会重新编译程序。您可以通过查看程序的创建日期轻松检查这一点。类文件。
另一方面,IDE更智能。他们的集成编辑器可以检测当前文件是否已更改。大多数编辑器,只要你在开始的地方结束(通过撤消编辑命令以恢复到开始编辑之前的开始位置),就足够聪明,不会重新保存文件。在这种情况下,源代码的创建日期不会更改,编译器也不会被调用。否则,将重新编译源代码。
如果我保存相同的代码,编译器会再次编译程序还是会留下旧的编译代码。如果它不会再次编译,意味着它如何识别它是相同的代码。
我通过网络回答了一些关于这个主题的问题,但我没有找到任何答案,或者是另一种语言的问题,或者它没有完全回答(死代码不是无用代码),所以我的问题是: 编译器是否忽略了(显式或非显式)无用的代码? 例如,在此代码中: for 循环会被删除吗? 我使用.net4.5和vs2013 背景是我维护了很多代码(我没有写),我想知道无用的代码是否应该成为目标,或者我是否可以让编译器来处理这个问题。
我经常遇到这种情况。乍一看,我认为,“这是糟糕的编码;我正在执行一个方法两次,必然会得到相同的结果。”但想到这里,我不得不怀疑编译器是否像我一样聪明,并能得出相同的结论。 编译器的行为是否取决于 方法的内容?假设它看起来像这样(有点类似于我现在的真实代码): 除非对这些对象来自的任何存储进行处理不当的异步更改,否则如果连续运行两次,肯定会返回相同的内容。但是,如果它看起来像这样(为了论证而无意义的
问题内容: 无论如何,是否可以在保存时轻松编译CoffeeScript?我正在使用TextMate或Sublime Text 2。 问题答案: Coffeescript具有“监视”功能。您可以将其设置为半永久性流程: 对于每个扩展名为“ .coffee”的文件,每次保存时,相应的已编译“ .js”文件都会放入目标目录中。 就是说,我使用一个makefile和fabfile,因为我的HTML是HAM
关于目标旗。与使用Java6编译器编译代码相比,使用针对Java6的Java8编译器编译Java6代码(当代码仍然在JVM6上运行时)有什么好处吗?