程序理论(theories of programs),理学-计算机科学技术-计算机软件-软件基础理论-程序理论,主要研究程序和编程语言的理论基础和理论模型,以支持编程语言的设计和实现,支持(使用编程语言进行的)程序的设计、开发、分析和检查验证等工作的理论。程序是用计算机能处理和执行的编程语言描述的计算过程(算法),是软件的主要组成部分;另一方面,现代硬件也是用类似高级语言的硬件描述语言开发的,从本质上说也是一类编程语言和一类“程序”。抽象地看,任何严格定义的计算系统都可以看成用某种形式化的语言写出的“程序”。因此,程序理论和算法理论并列,都是计算机科学理论最重要的组成部分。程序理论的研究和成果主要包括:①编程语言的形式理论(语法理论)。这方面的研究与一般语言的语法理论密切相关,其特殊之处在于与计算机和编程结合。编程语言需要有严格定义的语法,人们提出了巴克斯范式(BNF)等描述工具,用于描述程序的上下文无关结构。人们主要研究了怎样的(能用哪类语法描述的)编程语言能有效地进行语法分析,以及相应语法分析程序的自动生成等。