在计算机编程中,数据驱动编程,是一种编程范型,在其中程序语句描述要匹配的数据,和对它需要做的处理,程序本身不定义选取数据的一序列文件操作步骤[1]。数据驱动语言的标准例子是文本处理语言sed和AWK[1],在其中数据是输入流中的一序列的行,因而它们也叫面向行的语言,而模式匹配主要通过正则表达式或行号来完成。
数据驱动编程类似于事件驱动编程,尽管它们典型的应用于不同领域,二者都被结构化为模式匹配和结果处理,并通常由主循环来实现。条件/动作模式还类似于面向方面编程的点切入机制,这里当匹配了一个接合点(条件)时,执行一个通告(动作)。类似的范型也用于某些跟踪框架比如DTrace,在这里人们列出探测(probe)即指示(instrumentation)点,和在条件满足时执行的相关的动作。
适配抽象数据类型设计方法到面向对象编程,导致数据驱动设计[2]。在面向对象编程中,这种类型的设计有时被用于在构思一段软件期间定义类。
[AWK is] often called a data-driven language -- the program statements describe the input data to match and process rather than a sequence of program steps
https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch09s01.html (页面存档备份,存于互联网档案馆) "The important part is moving program logic away from hardwired control structures and into data."