AWK可以进行图形编程吗?

问题描述 投票:0回答:4

我想这是一个关于图灵完备意味着什么的问题。 awk 是一种编程语言,我听说你可以用它们做任何事情,但是不是也有物理限制吗?我的意思是,你可能无法使用我的世界红石计算机删除文件。同样,我想你不能用 AWK 做图形。

AWK 需要什么样的扩展才能处理图形?

awk turing-machines
4个回答
5
投票

图灵完备性的概念是指能够计算任何可计算函数(从自然数到自然数,或从{0,1}*到{0,1}*等)。这是一个有点抽象的概念,并不涉及图形等硬件的细节(或 USB 端口或无线连接或任何类似的东西)。它甚至没有讨论“始终运行”程序(例如(HTTP/FTP/ssh/等)服务器)的行为。它只讨论需要一些有限输入的计算,并且

  • 停止并产生有限的输出,或者
  • 永远奔跑。

因此将 Awk 的图灵完备性与其对图形库的支持联系起来并没有什么意义。


1
投票

您可以使用“system()”命令从 awk 中调用任何程序。我已经多次将 awk 与 imagemagick 结合使用,因此,原则上您可以使用 awk 进行图形编程。但很可能您更喜欢使用 Tcl 和 Tk 来完成这些任务。 Awk 早在图形显示之前就用于文本处理,Tcl 和 Tk 是为了快速原型设计(带有图形和 GUI)。

HTH克里斯


1
投票

我在 StackOverflow 上的许多答案中都使用了 awk 来进行图形/图像处理。无需全部重复,但这里有一些......


1
投票

您可以使用 awk 写入 ASCII 格式,例如:

  • 便携式(黑白)位图(PBM)
  • 便携式灰度图(PGM)
  • 便携式像素图 (PPM)

然后,您可以使用 netPBM 或 ImageMagick、Gimp 或数十种其他工具中的任何一种轻松将其转换为所需的任何其他格式。

awk 可以直接将图形写入屏幕。

  • awk-raycaster 是一款使用 awk 在终端中使用 ANSI 图形编写的 3D Doom 风格游戏。 (确保你的终端放大得足够大,否则它会显得混乱。)https://github.com/TheMozg/awk-raycaster

  • awk-glib 是一个图形库,使用 ANSI 图形直接在终端上显示出奇好的(尽管有些块状)动画图像。 https://github.com/patsie75/awk-glib

  • awkGL 是 awk 的扩展,可让 awk 直接生成高分辨率 2D 和 3D 图形。不幸的是我无法说服它在我的计算机上编译。 https://github.com/takubo/awkGL

© www.soinside.com 2019 - 2024. All rights reserved.