第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 的优势:
- Python 扩展:智能提示、调试、linting
- 集成终端:不用切换窗口就能运行命令
- Git 集成:版本控制方便
- 主题丰富:选一个你喜欢的配色!
必装的 VS Code 扩展
- Python(微软官方)
- Pylance(智能提示)
- Code Runner(快速运行代码)
- One Dark Pro(推荐主题)
- Material Icon Theme(好看的文件图标)
7.2 为什么选择 Python?
本课程将用 Python 来实现编译器。为什么?
Python 的优势
语法简洁
# Python def add(a, b): return a + b # 对比 C++ int add(int a, int b) { return a + b; }更少的代码,更多的精力放在算法上!
强大的数据结构
- 列表、字典、集合
- 可以快速实现复杂数据结构
- 不需要手动管理内存
丰富的库
- 正则表达式:
re - 解析:
pyparsing、lark - 可以快速原型验证
- 正则表达式:
跨平台
- Windows、macOS、Linux 都能用
- 代码到处运行
学习资源多
- 很多人学 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 --version7.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!"
答案:
- B
- B
- B
print("I'm ready to learn!")
7.8 下集预告
下一集,我们将训练:抽象思维——程序员的基本功!
我们会学习:
- 什么是抽象
- 如何从具体到抽象
- 生活中的抽象例子
- 编程中的抽象思维
准备好了吗?我们下集见!
参考资料
- Python 官方教程:https://docs.python.org/3/tutorial/
- VS Code 官方文档:https://code.visualstudio.com/
- 《Learn Python the Hard Way》