建设工程专注在哪个网站,生产建设网站基坑开挖深度,手机百度关键词优化,雄安网站设计制作编译技术是一门庞大的学科#xff0c;我们无法对其做完善的讲解。但不同用途的编译器或编译技术的难度可能相差很大#xff0c;对知识的掌握要求也会相差很多。如果你要实现诸如 C、JavaScript 这类通用用途语言#xff08;general purpose language#xff09;#xff0c…编译技术是一门庞大的学科我们无法对其做完善的讲解。但不同用途的编译器或编译技术的难度可能相差很大对知识的掌握要求也会相差很多。如果你要实现诸如 C、JavaScript 这类通用用途语言general purpose language那么就需要掌握较多编译技术知识。例如理解上下文无关文法使用巴科斯范式BNF扩展巴科斯范式EBNF书写语法规则完成语法推导理解和消除左递归递归下降算法甚至类型系统方面的知识等。但作为前端工程师我们应用编译技术的场景通常是表格、报表中的自定义公式计算器设计一种领域特定语言DSL等。其中实现公式计算器甚至只涉及编译前端技术而领域特定语言根据其具体使用场景和目标平台的不同难度会有所不同。Vue.js 的模板和 JSX 都属于领域特定语言它们的实现难度属于中、低级别只要掌握基本的编译技术理论即可实现这些功能。
1、模板 DSL 的编译器
编译器其实只是一段程序它用来将“一种语言 A”翻译成“另外一种语言 B”。其中语言 A 通常叫作源代码source code语言 B 通常叫作目标代码object code 或 target code。编译器将源代码翻译为目标代码的过程叫作编译compile。完整的编译过程通常包含词法分析、语法分析、语义分析、中间代码生成、优化、目标代码生成等步骤如下图所示 可以看到整个编译过程分为编译前端和编译后端。编译前端包含词法分析、语法分析和语义分析它通常与目标平台无关仅负责分析源代码。编译后端则通常与目标平台有关编译后端涉及中间代码生成和优化以及目标代码生成。但是编译后端并不一定会包含中间代码生成和优化这两个环节这取决于具体的场景和实现。中间代码生成和优化这两个环节有时也叫“中端”。