首页 > 教育学习 > 为什么 > 现在很流行语法糖加上手动编译的方式来编程吗?

现在很流行语法糖加上手动编译的方式来编程吗?
2012-01-19 20:16:40   来源:   点击:

    现在很流行语法糖加上手动编译的方式来编程吗?好吧,我是作为初学者来问吧,我接触编程更多还是新闻和各种入门语法。特别是 Coffeescript 热门的时候对于这种方式让我很感到特别。然后我发现了 HTML/CSS/Jacasvript 有相当多的 Git 项目也是用编译的。https://plus.google.com/10016872...还有那么多别的语言都编译到 Javascript 去zhihu.com/question...还有看到从 MoonScript 编译到 Lua 的,如出一辙http://moonscript.org/这是最近开发人员的习惯吗?

    2 个答案

    • 答案 1:

      超过简单替换方式的语法转换,不能称为语法糖。你提到的几种语言都经过自己的 parser 和 semantic 处理,仅仅是把另一种高级语言作为目标代码而已。最早的 C++ 实现 C with class 就是以 C 为目标代码。以高级语言为目标代码,省去了后端优化的力气(如果目标语言的编译器本身优化良好)。这是语言早期发展的一种常用策略,但不是必须的策略。Python, Ruby 我不太清楚它们的具体历史。C with class 最早是用一些简单的预处理来完成的(类似简单的文本替换),所以最早的 C with class 可以被看作语法糖。后期的 C with class 和早期的 C++ 还是以 C 为目标代码,但是已经经过了完整的语法和语义分析,源文件和目标文件只是语义等价,没有直接的替换关系了。只要是图灵完备的语言都是可以互相翻译的。但是这里还涉及一个 runtime 的问题。就是翻译前的语言调用了外部的库,如何在翻译之后的目标语言里能继续工作。C with class 解决的方式是把翻译前后的函数名称用某种规则对应起来。现在的语言翻译也基本都是这个套路。
    • 答案 2:

      我所知道的还有GWT,http://sass-lang.com/, haml.感觉语法糖这个说法不太精准. 语法糖一般是指语言内部的不同的写法, 不是这种跨语言的编译转换.我觉得这个是个趋势, ThoughtWorks公司最新的一期Technical Radar中着重推荐了SASS, SCSS, HAML, Coffeescript这几个东西. 说在项目中用这几个东西获得了比较好的体验.

相关热词搜索:

上一篇:Evernote web 版新版无法添加编辑内容,怎么解决?
下一篇:在职业发展中,怎么理解、寻找、顺应“天赋(talent)”?