https://www.cis.upenn.edu/~bcpierce/tapl/taplcover.jpg
在当今的编程世界中,JavaScript 和 TypeScript 已经成为 Web 开发中不可或缺的语言。尽管你不需要精通这些语言,但掌握它们是非常必要的。本文将探讨高级语言中的 token 概念,并尝试将其与我们学习英语的过程进行类比。
学习编程语言的过程
正如一位作者所言,“学习高级编程语言的过程,类似于我们学习英语的过程”。在学习过程中,我们逐步掌握语言的语法,抽象出表达语义的特性。尽管某些特性可能是某些语言特有的,但大多数高级语言的特性是共通的。
是否需要掌握多门编程语言?
这个问题一直在我心中浮现。我的体会是,掌握多种编程语言有其必要性,但更重要的是要精通一门语言。精通的语言应该是你赖以生存的技能,而其他语言则可以作为兴趣的补充。学习之前,明确自己的目的至关重要,这样才能有效避免无目的的学习。
高级语言中的 token
在编译原理中,我们将高级语言中的单词称为 token。token 是构成源程序的基本不可再分割的单元。它们可以理解为英语中的单词,具有不同的类别和功能。
高级语言的五大 token 类型
高级语言的 token 分类可以类比为英语中的词性,主要包括以下几类:
- 分隔符
分隔符用于分隔代码的基本元素。在英语中,我们使用句号、问号等标点符号来区分句子;在高级语言中,空格、换行符、分号和大括号等则起着类似的作用。
- 关键字和保留字
编程语言中的关键字和保留字是设计者有意为之的。例如,在 Python 中,import
用于导入模块,这种用法在各个语言中可能都有相似之处。
- 标识符
标识符用于标识变量、自定义类型和函数等实体的名称。不同类型的标识符具有不同的作用,标识符作为变量和函数时,实际上是内存地址的代表;而作为自定义数据类型时,它提供了组织内存的元数据信息。
- 操作符
操作符用于构造表达式、完成计算任务以及改变优先级等。在实际编程中,不建议过分依赖语言的运算符优先级规则,最好使用括号主动控制计算顺序。
- 字面值
字面值是程序中数据输入的最终来源。它们表示着程序中的静态数据,不需要计算或处理。字面值可以是整数字面值、浮点数字面值、字符串字面值、字符字面值、布尔字面值等。
字面值的理解
字面值在编程中用于初始化变量、定义常量以及传递参数。它们是程序中最基本的数据,通常是数据的最终来源。例如,int x = 42;
中的 42
是一个整数字面值,直接赋值给变量 x
。字面值的语法和格式通常表示数据的类型,从而帮助编译器或解释器理解数据的具体含义。
字面值的直观性也增强了代码的可读性,其他程序员或自己再次阅读代码时,可以清晰地看到数据的值,而无需查找其他地方来获取数据。
结论
高级语言中的 token 概念不仅对理解编程语言至关重要,还能帮助我们更有效地学习和使用编程语言。通过明确学习目标、掌握多种语言的基础以及精通一门语言,我们可以更好地在编程的世界中立足。希望这篇文章能对你的编程学习有所启发!
参考资源
- http://laomst.site/article/3 《高级语言中的单词——5种类型的token》
更新于:2023年10月27日