首页 文章资讯内容详情

编译器设计中的过程语言和非过程语言有什么区别?

2026-06-03 1 花语

程序语言

过程语言是命令驱动或面向语句的语言。一个程序包括一系列语句,每条语句的执行都会生成解释器来修改其内存中一个或多个进入新状态的区域的值。

过程语言的格式是

声明1;

陈述2;

C、Pascal、FORTRAN和等效语言是过程语言。该语言中的每个语句都与计算机进行通信以执行某些操作。过程语言中的程序是一个指令列表。对于非常小的程序,不需要其他的编排原则。这种语言包括一系列在被调用时执行的过程。每个过程都包含一系列语句,其中每个语句处理的数据可以是过程的本地数据、来自调用过程的参数,也可以是全局定义的数据。

非程序语言

在非过程语言中,所有指令都不是按照确定的顺序编写的。它被称为声明性和函数式语言。非过程语言不需要编写传统的程序逻辑。用户更加注重描述输入和输出,而不是程序的步骤。非过程语言的示例,例如Java、C++、SQL、RGP等。

程序语言非程序语言Theprocedurallanguagesarecommand-drivenorstatement-oriented.

非过程语言是面向事实的。

Theprogramsinprocedurallanguagespecifywhatistobeaccomplishedbyaprogramandinstructthecomputeronaccuratelyhowtheevaluationiscompleted.

非过程语言的程序指定要做什么,但没有确切说明如何评估结果。

Procedurallanguagesareusedforapplicationandsystemprogramming.

非过程语言用于RDBMS、专家系统、自然语言处理和教育。

Itiscomplex.

它比程序简单。

Theseareimperativeprogramminglanguages.

这些是声明式编程语言。

Thetextualcontextorexecutionsequenceisconsidered.

无需考虑文本上下文或执行顺序。

Asanexampleofaprogram,thesortingiscompletedbydefininginaC++programalloftheelementsofsomesortingalgorithmtoacomputerhavingaC++compiler.ThecomputeraftertranslatingtheC++programintomachinecodeorsomeinterpretiveintermediatecodefollowstheinstructionsandproducesthesortedlist.

在非过程语言中,只需要定义排序列表的特征。根据这个描述,非过程语言系统可以产生排序列表。

Machineefficiencyisgood.

使用唯一分辨率的逻辑程序面临着机器效率的严重问题。

Theproceduralparadigmleadstoalargenumberoftheprobablenetworkbetweenfunctionsanddataiftherearemanyfunctionsandmanyglobaldataitems.

在非程序范式中不存在这样的联系。

AnexampleofprocedurallanguagesisC,ADA,Pascal,C++,etc.

非过程语言的一个例子是Prolog、USP、SQLScheme等。