【发布时间】:2011-05-18 03:06:07
【问题描述】:
当我想到“编译”时,我想到将 C++ 代码转换为二进制文件。或者也许将 C# 转换为 CLR 字节码。但“解析”可能类似于解析 Python 或 Web 模板语言,它不需要生成任何二进制文件,但可以立即执行代码、逐条语句或直接输出 HTML。
在这两种情况下,你基本上都会做同样的任务吗?忽略语言语法,编译 C++ 是否与解析网站模板文件(Django、Smarty 等)或 Python 一样困难?
我想暗示的是,如果我学习“编译”或阅读一本关于“编译”的书,我是否一定会掌握解析非编译语言的技能? p>
【问题讨论】:
-
编译需要解析,但是解析不需要编译。存在关系,但没有 is-a 关系。
-
再添一块拼图,在asp.net中我们可以直接部署源代码文件,无需编译,因为Dynamic Compilation!
标签: parsing compiler-construction terminology