第7集:准备工作——我们的学习环境

学习目标

通过本集的学习,你将能够:

  • 选择合适的开发工具
  • 理解为什么选择 Python 作为实现语言
  • 搭建完整的学习环境
  • 写出第一个程序:Hello, Compiler!
  • 掌握课程学习方法

7.1 开发工具选择

工欲善其事,必先利其器。让我们选择合适的开发工具。

文本编辑器 / IDE

推荐选择:

  • VS Code(首选)

    • 免费、开源
    • 插件丰富
    • Python 支持很好
    • 轻量但强大
  • PyCharm

    • Python 专业 IDE
    • 功能强大
    • 社区版免费
  • Vim / Emacs

    • 如果你已经习惯用它们
    • 高效(但有学习曲线)

为什么推荐 VS Code?

┌─────────────────────────────────────────┐
│  VS Code                              │
│  ┌─────────────────────────────────┐   │
│  │  代码编辑区               │   │
│  │  # Hello, Compiler!        │   │
│  │  print("Hello, Compiler!")  │   │
│  └─────────────────────────────────┘   │
│  ┌─────────┐  ┌─────────────────┐  │
│  │ 文件树  │  │  终端/输出      │  │
│  └─────────┘  └─────────────────┘  │
└─────────────────────────────────────────┘

VS Code 的优势:

  1. Python 扩展:智能提示、调试、linting
  2. 集成终端:不用切换窗口就能运行命令
  3. Git 集成:版本控制方便
  4. 主题丰富:选一个你喜欢的配色!

必装的 VS Code 扩展

  • Python(微软官方)
  • Pylance(智能提示)
  • Code Runner(快速运行代码)
  • One Dark Pro(推荐主题)
  • Material Icon Theme(好看的文件图标)

7.2 为什么选择 Python?

本课程将用 Python 来实现编译器。为什么?

Python 的优势

  1. 语法简洁

    # Python
    def add(a, b):
        return a + b
    
    # 对比 C++
    int add(int a, int b) {
        return a + b;
    }

    更少的代码,更多的精力放在算法上!

  2. 强大的数据结构

    • 列表、字典、集合
    • 可以快速实现复杂数据结构
    • 不需要手动管理内存
  3. 丰富的库

    • 正则表达式:re
    • 解析:pyparsinglark
    • 可以快速原型验证
  4. 跨平台

    • Windows、macOS、Linux 都能用
    • 代码到处运行
  5. 学习资源多

    • 很多人学 Python
    • 遇到问题容易找到答案

但是... Python 不是很慢吗?

好问题!

  • 是的,Python 比 C/C++ 慢
  • 但是:
    • 我们的目标是学习,不是做工业级编译器
    • 清晰比速度更重要
    • 理解算法后,你可以用其他语言重写

类比

  • Python 像手绘图纸:容易修改、容易理解
  • C++ 像工业生产:效率高,但修改成本大

学习阶段,我们选手绘图纸!

7.3 安装 Python

让我们安装 Python 环境。

检查是否已安装

打开终端(Windows 用 PowerShell 或 CMD,macOS/Linux 用 Terminal),输入:

python --version
# 或者
python3 --version

如果显示类似 Python 3.8+,恭喜,你已经有了!

如果没有安装

去 Python 官网下载:
https://www.python.org/downloads/

选择最新的稳定版本(3.8 或更高)。

Windows 用户注意
安装时勾选 "Add Python to PATH"!

验证安装

重新打开终端,再次输入:

python --version

应该能看到版本号了。

包管理器 pip

Python 有个强大的包管理器叫 pip。

检查 pip:

pip --version

7.4 第一个程序:Hello, Compiler!

让我们写第一个程序!

创建项目文件夹

找一个你喜欢的地方,创建文件夹:

compiler-tutorial/
└── hello.py

编写代码

用 VS Code 打开这个文件夹,创建 hello.py

# hello.py
print("Hello, Compiler!")

运行程序

在 VS Code 的集成终端中,输入:

python hello.py

你应该看到:

Hello, Compiler!

🎉 恭喜!你的第一个 Python 程序运行成功了!

稍微复杂一点的版本

让我们加一点料:

# hello.py
def greet(name):
    """问候函数"""
    return f"Hello, {name}!"

message = greet("Compiler")
print(message)
print("Let's start our journey!")

运行:

python hello.py

输出:

Hello, Compiler!
Let's start our journey!

7.5 课程学习方法

学习编译原理有一些好方法,分享给大家。

1. 循序渐进

  • 不要跳集
  • 每集的内容建立在前一集基础上
  • 确保理解了再继续

2. 动手实践

  • 光看不练假把式
  • 跟着敲代码
  • 修改代码,看看会发生什么
  • 自己做实验

3. 画出来

  • 算法太抽象?画个图!
  • 用 ASCII 图或纸笔
  • 可视化帮助理解
例子:画一个状态机
      ┌───┐
   a  │   │  b
┌───► │ S ├───►
│     └───┘
│       │
└───────┘

4. 教别人

  • 最好的学习方式是教别人
  • 把你学到的讲给朋友听
  • 或者写博客记录
  • 费曼学习法!

5. 别怕犯错

  • 出错是正常的
  • 错误是最好的学习机会
  • 读错误信息,理解它
  • 修复它,你就成长了

6. 保持耐心

  • 编译原理不简单
  • 有些概念需要时间消化
  • 今天不懂,明天再看
  • 坚持就是胜利!

7.6 学习路径建议

阶段1:跟着课程走
├─ 每集认真看
├─ 跟着敲代码
└─ 完成练习

阶段2:自己动手
├─ 尝试不看答案自己写
├─ 修改代码试试
└─ 加一些新功能

阶段3:深入探索
├─ 读相关书籍
├─ 看开源代码(LLVM、GCC等)
└─ 参加社区讨论

阶段4:创造
├─ 做自己的项目
├─ 创造自己的语言
└─ 分享给世界!

7.7 自测一下

问题 1

本课程推荐用什么编辑器/IDE?
A) 记事本
B) VS Code
C) Word
D) Photoshop

问题 2

为什么本课程选择 Python?
A) Python 最快
B) Python 语法简洁,容易专注于算法
C) 因为 Python 是最好的语言
D) 随机选的

问题 3

学习编程最重要的是什么?
A) 看很多视频
B) 动手实践
C) 背很多知识点
D) 只用最聪明的大脑

问题 4

请写出 Python 程序,输出 "I'm ready to learn!"


答案

  1. B
  2. B
  3. B
  4. print("I'm ready to learn!")

7.8 下集预告

下一集,我们将训练:抽象思维——程序员的基本功

我们会学习:

  • 什么是抽象
  • 如何从具体到抽象
  • 生活中的抽象例子
  • 编程中的抽象思维

准备好了吗?我们下集见!


参考资料

« 上一篇 为什么要学习编译原理? 下一篇 » 抽象思维训练——程序员的基本功