编译原理_CS143_Standford

Posted by Mars . Modified at

CS143_Standford 编译原理

导论

编译器和解释器 Compiler & Interpreter

解释器: 程序(program)数据(data)输入,立即输出一个结果(output),过程是在线(online)的。

编译器:程序(program)编译成一个可执行文件(exec file),数据传入可执行文件可以产生输出结果,但是这一过程与原程序无关。编译过程是离线offline的。

编译器的组成

  1. 词法分析(Lexical Analysis): 将程序文本分割成词汇words或令牌tokens;
  2. 解析(Parsing): ;
  3. 语义分析(Semantic Analysis);
  4. 优化(Optimization);
  5. 代码生成(Code Generation);

编程语言的经济学

为什么有如此多的编程语言?

因为不同领域的需求有时候是相互矛盾的,一个语言往往为解决一个领域的问题而研发,将所有需求汇总到一个语言系统是不现实的。

对编程者的训练,是编程语言的主要成本。

这解释了为什么总要设计新语言。因为旧的语言使用者太多,想要快速添加新特性,并让这些旧程序员学会,成本是很高的。一个语言使用者越少,修改越灵活。因此在面临一个新的问题领域时,设计一个新语言并让这个领域的人学习,可能成本会更低。

Keywords: Compiler
previousPost nextPost
已经有 1000000 个小伙伴看完了这篇推文。