程序代码是对现实事物处理逻辑的抽象,而正则表达式,是对复杂的字符匹配程序代码的进一步抽象。高度简洁的正则表达式,可以认为其背后所对应的,是字符匹配程序代码,而字符匹配程序代码,背后对应的是字符匹配处理逻辑。可以理解为,字符匹配处理逻辑,可以抽象为字符匹配程序代码;字符匹配程序代码,可以再进一步,抽象为高度简洁的正则表达式。

Untitled

从编程语言发展史角度来理解

编程语言的发展历程,大致上分为了 5 代。

Untitled

显然,正则表达式也是一种编程语言,而且是属于第 4 代语言——面向问题语言中的一种。

第 4 代语言相对于第 3 代语言,更专注于某个特定、专门的业务逻辑和问题领域。程序员主要负责分析问题,以及使用第 4 代语言来描述问题,而无需花费大量时间,去考虑具体的处理逻辑和算法实现,处理逻辑和算法实现是由编译器(Compiler)或解释器(Interpreter)这样的语言解析引擎来负责的。

从编程范式角度来理解

编程范式(Programming Paradigm),指的是计算机编程中的基本风格和典范模式,是程序员在其所创造的程序虚拟世界中自觉不自觉地所采用的世界观和方法论。

常见的编程范式大致上有:命令式、声明式(包括了函数式、逻辑式等)、面向对象式、泛型式、并发式、切面式等。每种编程范式都引导着程序员,根据其特有的倾向(即世界观)和思路(即方法论)去分析和解决编程问题。

命令式编程范式

命令式编程范式,主要就是模拟电脑运算的过程。更进一步地来说,是直接模拟目前主流的冯·诺依曼机(Von Neumann Machine)的运算过程,是对冯·诺伊曼机运行机制的抽象。

冯·诺伊曼机的基本特点是:在程序计数器的集中控制下,按顺序依次从内存中获取指令和数据,然后进行执行,因此它是以控制驱动的控制流方式工作的。与冯·诺依曼机相对应的还有以数据驱动的数据流方式工作的数据流机,以及以需求驱动的数据流方式工作的归约机等。

采用命令式编程范式的程序,是由若干行动指令所组成的有序指令列表,也就是由一系列指明执行顺序的祈使句——“先做这,再做那”所组成,属于行动导向,强调的是定义问题的解法——即“怎么做”,因而算法是显性的而目标是隐性的。

因此,从编程范式的角度来看:

如果追根溯源的话,几乎所有基于冯·诺伊曼机的编程语言,其实都可看作汇编语言的升级,而作为与机器语言一一对应的汇编语言来说,它自然是命令式的,因而命令式编程范式最为基础和普及。不过,从纯粹性的角度来说,命令式编程范式的代表语言为 Fortran、Pascal、C 等。