0:00:00.000,0:00:05.305 你们已经接触了一些JavaScript, 在这一部分 0:00:05.305,0:00:10.473 我想谈谈是什么将源代码和CPU中的机器代码联系起来。 0:00:10.473,0:00:15.705 这一般超过了计算机语言这个话题 0:00:15.705,0:00:20.652 程序员用某种编程语言编程[br]编程语言一般来说具有有高级特性 0:00:20.652,0:00:25.722 比如循环,if语句和字符串 0:00:25.722,0:00:30.545 这些都是更高级的特性,也是CPU中机器代码中最为常见的 0:00:30.545,0:00:35.307 所以程序员用他们使用的特定程序语言编写源代码 0:00:35.307,0:00:39.623 这是一个C++程序代码示例 0:00:39.623,0:00:43.993 这个语句将一个字符串的值赋值给一个变量[br]接着输出这个字符串和一个叹号 0:00:43.993,0:00:48.145 你猜怎么着?[br]这有点像JavaScript代码 0:00:48.145,0:00:52.624 我们已经在语法层次上接触了许多语言 0:00:52.624,0:00:57.927 和他们对引号和分号的使用 0:00:57.927,0:01:04.232 那么你是怎么使C++源代码在CPU上运行起来的呢?[br]一种方案是使用编译器 0:01:04.232,0:01:10.157 编译器是一个单独的程序 0:01:10.157,0:01:15.186 编译器读入源代码并对代码进行翻译 0:01:15.186,0:01:20.215 比如 0:01:20.215,0:01:24.645 源代码中可能用一个if语句 0:01:24.645,0:01:29.555 而机器代码中没有与之对应的某一指令 0:01:29.555,0:01:34.404 但是可能用5个指令的作用和if语句功能相同 0:01:34.404,0:01:40.991 于是编译器将if语句展开(即替换成等价的5的机器指令)[br]再如Firefox是用C++编写的