我经常看到人们将“awk”称为编程语言。根据我的直觉,我对awk的理解是,它是用于某些特定任务的工具。
那么为什么有人会把它称为编程语言呢?
答案 0 :(得分:6)
你的直觉是完全错误的!当然awk
是一种编程语言和它是针对特定任务的设计,这两件事并不相互排斥。您的直觉是否php
和javascript
也不是编程语言?
使用工具可以执行单个任务或一组密切相关的任务,与编程语言一样,您可以创建任何计算工具。
Awk
是一种Turing Complete语言,将其与工具 grep
进行比较,您有变量,条件(if,else,.. 。),重复(for,while,..),函数等。您可以创建一个awk
脚本来执行您可能需要的任何操作,但使用grep
,您只能从文件中提取文本。 Awk
是专为基于文本的处理而设计的,并且仍然是最好的编程语言之一,但是你可以在awk
编写编译器,解释器,websever,你想要的任何东西,但这并不意味着你应该。
答案 1 :(得分:4)
即使AWK在非常有限的区域使用,它也是图灵完成,因此通过测试才有资格作为编程语言。
维基百科定义AWK
如下。 AWK
实用程序是一种解释性编程语言,通常用作数据提取和报告工具。但是,仍然依赖于个人用户是仅仅调用AWK
实用程序或编程语言。但如果您认为AWK
只是一种工具,那么可以询问有关许多所谓语言(如HTML
,XML
等)的状态的严肃问题。还要记住语言{{ 1}}受Perl
的影响很大。