学习《TAPL》的笔记2:对编程语言与英语学习的思考


Lambert 发布于 2024-12-13 / 4 阅读 / 0 评论 /
https://www.cis.upenn.edu/~bcpierce/tapl/taplcover.jpg 在当今的编程世界中,JavaScript 和 TypeScript 已经成为 Web 开发中不可或缺的语言。尽&

Types and Programming Languages

https://www.cis.upenn.edu/~bcpierce/tapl/taplcover.jpg

在当今的编程世界中,JavaScript 和 TypeScript 已经成为 Web 开发中不可或缺的语言。尽管你不需要精通这些语言,但掌握它们是非常必要的。本文将探讨高级语言中的 token 概念,并尝试将其与我们学习英语的过程进行类比。

学习编程语言的过程

正如一位作者所言,“学习高级编程语言的过程,类似于我们学习英语的过程”。在学习过程中,我们逐步掌握语言的语法,抽象出表达语义的特性。尽管某些特性可能是某些语言特有的,但大多数高级语言的特性是共通的。

是否需要掌握多门编程语言?

这个问题一直在我心中浮现。我的体会是,掌握多种编程语言有其必要性,但更重要的是要精通一门语言。精通的语言应该是你赖以生存的技能,而其他语言则可以作为兴趣的补充。学习之前,明确自己的目的至关重要,这样才能有效避免无目的的学习。

高级语言中的 token

在编译原理中,我们将高级语言中的单词称为 token。token 是构成源程序的基本不可再分割的单元。它们可以理解为英语中的单词,具有不同的类别和功能。

高级语言的五大 token 类型

高级语言的 token 分类可以类比为英语中的词性,主要包括以下几类:

  1. 分隔符

分隔符用于分隔代码的基本元素。在英语中,我们使用句号、问号等标点符号来区分句子;在高级语言中,空格、换行符、分号和大括号等则起着类似的作用。

  1. 关键字和保留字

编程语言中的关键字和保留字是设计者有意为之的。例如,在 Python 中,import 用于导入模块,这种用法在各个语言中可能都有相似之处。

  1. 标识符

标识符用于标识变量、自定义类型和函数等实体的名称。不同类型的标识符具有不同的作用,标识符作为变量和函数时,实际上是内存地址的代表;而作为自定义数据类型时,它提供了组织内存的元数据信息。

  1. 操作符

操作符用于构造表达式、完成计算任务以及改变优先级等。在实际编程中,不建议过分依赖语言的运算符优先级规则,最好使用括号主动控制计算顺序。

  1. 字面值

字面值是程序中数据输入的最终来源。它们表示着程序中的静态数据,不需要计算或处理。字面值可以是整数字面值、浮点数字面值、字符串字面值、字符字面值、布尔字面值等。

字面值的理解

字面值在编程中用于初始化变量、定义常量以及传递参数。它们是程序中最基本的数据,通常是数据的最终来源。例如,int x = 42; 中的 42 是一个整数字面值,直接赋值给变量 x。字面值的语法和格式通常表示数据的类型,从而帮助编译器或解释器理解数据的具体含义。

字面值的直观性也增强了代码的可读性,其他程序员或自己再次阅读代码时,可以清晰地看到数据的值,而无需查找其他地方来获取数据。

结论

高级语言中的 token 概念不仅对理解编程语言至关重要,还能帮助我们更有效地学习和使用编程语言。通过明确学习目标、掌握多种语言的基础以及精通一门语言,我们可以更好地在编程的世界中立足。希望这篇文章能对你的编程学习有所启发!

参考资源


更新于:2023年10月27日



是否对你有帮助?

评论