[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:05.30,Default,,0000,0000,0000,,你们已经接触了一些JavaScript, 在这一部分 Dialogue: 0,0:00:05.30,0:00:10.47,Default,,0000,0000,0000,,我想谈谈是什么将源代码和CPU中的机器代码联系起来。 Dialogue: 0,0:00:10.47,0:00:15.70,Default,,0000,0000,0000,,这一般超过了计算机语言这个话题 Dialogue: 0,0:00:15.70,0:00:20.65,Default,,0000,0000,0000,,程序员用某种编程语言编程\N编程语言一般来说具有有高级特性 Dialogue: 0,0:00:20.65,0:00:25.72,Default,,0000,0000,0000,,比如循环,if语句和字符串 Dialogue: 0,0:00:25.72,0:00:30.54,Default,,0000,0000,0000,,这些都是更高级的特性,也是CPU中机器代码中最为常见的 Dialogue: 0,0:00:30.54,0:00:35.31,Default,,0000,0000,0000,,所以程序员用他们使用的特定程序语言编写源代码 Dialogue: 0,0:00:35.31,0:00:39.62,Default,,0000,0000,0000,,这是一个C++程序代码示例 Dialogue: 0,0:00:39.62,0:00:43.99,Default,,0000,0000,0000,,这个语句将一个字符串的值赋值给一个变量\N接着输出这个字符串和一个叹号 Dialogue: 0,0:00:43.99,0:00:48.14,Default,,0000,0000,0000,,你猜怎么着?\N这有点像JavaScript代码 Dialogue: 0,0:00:48.14,0:00:52.62,Default,,0000,0000,0000,,我们已经在语法层次上接触了许多语言 Dialogue: 0,0:00:52.62,0:00:57.93,Default,,0000,0000,0000,,和他们对引号和分号的使用 Dialogue: 0,0:00:57.93,0:01:04.23,Default,,0000,0000,0000,,那么你是怎么使C++源代码在CPU上运行起来的呢?\N一种方案是使用编译器 Dialogue: 0,0:01:04.23,0:01:10.16,Default,,0000,0000,0000,,编译器是一个单独的程序 Dialogue: 0,0:01:10.16,0:01:15.19,Default,,0000,0000,0000,,编译器读入源代码并对代码进行翻译 Dialogue: 0,0:01:15.19,0:01:20.22,Default,,0000,0000,0000,,比如 Dialogue: 0,0:01:20.22,0:01:24.64,Default,,0000,0000,0000,,源代码中可能用一个if语句 Dialogue: 0,0:01:24.64,0:01:29.56,Default,,0000,0000,0000,,而机器代码中没有与之对应的某一指令 Dialogue: 0,0:01:29.56,0:01:34.40,Default,,0000,0000,0000,,但是可能用5个指令的作用和if语句功能相同 Dialogue: 0,0:01:34.40,0:01:40.99,Default,,0000,0000,0000,,于是编译器将if语句展开(即替换成等价的5的机器指令)\N再如Firefox是用C++编写的