【问题标题】:Is awk a programming language or just a tool? [closed]awk 是一种编程语言还是一种工具? [关闭]
【发布时间】:2013-05-25 15:51:30
【问题描述】:

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

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

【问题讨论】:

  • 如何“定义”一种编程语言? python是一种编程语言吗?
  • 当然Pythonawk 一样是编程语言。
  • 他们称它为编程语言,因为它是一种编程语言。许多常用的工具包括编程语言,特别是 Perl、Python、Ruby、Awk、Tcl/Tk、...
  • 你可以说,因为编写庞大的 AWK 脚本不是很合理,所以它更像是一种工具而不是一种编程语言,但这只是一种观点,而不是一个定义..(有些人这样做了代码 50KLOC awk 脚本)。从某种意义上说,Python 与其说是工具,不如说是一种编程语言……
  • awk 是一个使用 awk 语言的工具。

标签: shell awk


【解决方案1】:

awk 是一种编程语言并且它是为特定类型的任务而设计的,这两件事并不相互排斥。很像 phpjavascript 也是编程语言。

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

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

【讨论】:

    【解决方案2】:

    尽管 AWK 用于非常受限的领域,但它是图灵完备,因此通过了测试,有资格成为一种编程语言。

    维基百科对AWK 的定义如下。 AWK 实用程序是一种解释性编程语言,通常用作数据提取和报告工具。但仍然取决于个人用户是否调用AWK 只是一个实用程序或编程语言。但是,如果您认为AWK 只是一个工具,那么可以就许多所谓的语言的状态提出严肃的问题,例如HTMLXML 等。还要记住Perl 语言深受@ 的影响987654328@。

    【讨论】:

    • XML 和 HTML 是语言;虽然它们不是正常意义上的完整编程语言(但它们也不是任何有意义使用该术语的“工具”)。
    猜你喜欢
    • 2018-02-22
    • 2012-12-29
    • 2011-03-18
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多