awk是一种编程语言还是一种工具?

时间:2013-05-25 15:51:31

标签: linux shell awk gawk

我经常看到人们将“awk”称为编程语言。根据我的直觉,我对awk的理解是,它是用于某些特定任务的工具。

那么为什么有人会把它称为编程语言呢?

2 个答案:

答案 0 :(得分:6)

你的直觉是完全错误的!当然awk是一种编程语言它是针对特定任务的设计,这两件事并不相互排斥。您的直觉是否phpjavascript也不是编程语言?

使用工具可以执行单个任务或一组密切相关的任务,与编程语言一样,您可以创建任何计算工具。

Awk是一种Turing Complete语言,将其与工具 grep进行比较,您有变量,条件(if,else,.. 。),重复(for,while,..),函数等。您可以创建一个awk脚本来执行您可能需要的任何操作,但使用grep,您只能从文件中提取文本。 Awk是专为基于文本的处理而设计的,并且仍然是最好的编程语言之一,但是你可以在awk编写编译器,解释器,websever,你想要的任何东西,但这并不意味着你应该。

答案 1 :(得分:4)

即使AWK在非常有限的区域使用,它也是图灵完成,因此通过测试才有资格作为编程语言。

维基百科定义AWK如下。 AWK实用程序是一种解释性编程语言,通常用作数据提取和报告工具。但是,仍然依赖于个人用户是仅仅调用AWK实用程序或编程语言。但如果您认为AWK只是一种工具,那么可以询问有关许多所谓语言(如HTMLXML等)的状态的严肃问题。还要记住语言{{ 1}}受Perl的影响很大。