编程语言
计算机学科发展到现在,已经有上百种编程语言,其中比较常用的语言,比如Java、C、Python等属于高级编程语言。也有汇编语言这种直接与硬件交互的编程语言。
计算机是以0和1的组合来表示各种状态,包括数值和操作。计算机可识别的指令也是通过0和1进行组合来表示。这些指令组成了计算机硬件的指令集,通过指令集中各种指令的组合来完成复杂计算。
高级编程语言的作用
高级编程语言是以一种更可读的方式向机器发送大量指令,来完成一个较为复杂的计算过程。它们存在的意义是为了提高人机交互的效率,从而扩大人机交互的使用场景。计算机的指令是很机械的,而人的思维是高度抽象且跳跃的,所以需要有工具来填补两者之间的鸿沟,高级编程语言就是这样的角色。比如完成从1到100累加的计算过程,如果直接用计算机的指令表示,可能需要用到上百条指令。而且用指令来表达这个计算过程,可读性非常差。高级编程语言就可以用一个循环语句来表达,更简洁,更符合人的表达习惯。另外,各个硬件平台的指令集又不尽相同,指令程序不可移植复用。所有就需要更加友好的编程语言来代替计算机指令,同时做好抽象层,使代码尽可能的跨平台。
高级编程语言所处的位置
在计算机运行过程中,我们比较常见的结构使这样的。
应用软件一般就是我们用高级编程语言开发打包的程序,通过接收不同方式的输入,然后经过复杂计算,最后输出工程师预期的结果或者指令。应用软件一般运行在操作系统之上。
操作系统为应用软件屏蔽了硬件的复杂性,对应用软件而言,只需要关系操作系统的特性即可。这也是计算机领域中常见的“分层”和“封装”思想带来的好处。
与高级编程语言相对的就是底层编程语言,比如汇编,操作系统级的编程语言。
为什么“高级”
- 所处位置高级,往往是计算机系体系结构中最上面的一层。
- 应用场景高级,直接描述业务场景,完成业务功能。
- 表达方式高级,语言组织得更抽象,更加接近人的思维方式。
学习高级编程语言
语法
学习高级编程语言的时候,我们最先注意到的往往是它的语法。语法结构大同小异,一般都会包含:
- 关键字
- 变量
- 函数或者方法
- 类或者结构或者模块
- 循环子句
- 判断子句
- 集合
- 异常处理
- IO处理
语言特性
编程语言的不同主要体现在语言特性中,这其中往往体现了语言的作者创造这门语言的初衷和他对编程这件事的个人哲学。在语言特性中我们经常会看到一些概念:
- 面向过程、面向对象、函数式
- 跨平台,可移植性
- 进程、线程、协程
- 编译型、解释型
- 强类型、弱类型
运行环境
编程语言的运行环境是支持高级编程语言语法和语言特性的核心所在,正是因为语言的运行环境的存在,高级编程语言才能有效地与操作系统交互,使用操作系统的命令来完成高级编程语言想要完成程序逻辑。不同语言的运行环境各部相同,有的需要编译器,有的只需要解释器。运行环境要做的事情一般包括:
- 解析程序语法,翻译成操作系统可识别的指令
- 通过操作系统控制存储(内存、硬盘)
-
控制进程
框架&工具&社区
高级编程语言大多为工程类项目服务的,这类项目有一个非常重要的指标就是开发效率。成熟的框架、高效的工具和活跃的语言社区,是提高编程语言生产力的三大利器。
框架都是前人在经过无数次项目之后,总结出来的一些常用开发模式和功能模块的集合。学习某种语言中最常用的框架,也能从中了解到该语言的应用场景。
如果你从语法、语言特性、运行环境、以及框架&工具&社区这四个方面学习了编程语言,那么对这么语言基本上就算是掌握甚至精通了。
之后将陆续介绍几种常用编程语言。