更深入地介绍Unix DC

2020-06-08 19:41:24

UNIX DC是最古老的解释器程序之一,在大多数Linux发行版上仍然可以使用,无需安装。该计划可以追溯到PDP-11时代。它的编程肯定比任何严肃的汇编器或其他类型的解释器(如BASIC)更容易,因为它有时是较早提供的[1,2]。它将编码的难度转移到程序员身上。

DC代表台式计算器,可以用反向抛光记法编程。它是面向堆栈的,支持任意精度。它支持寄存器、条件语句和循环。这些都是通过寄存器中保存的宏来实现的。寄存器只能是单个字符。给它编程真的很奇怪。

可以在您的终端上使用命令DC启动DC。不会有欢迎文本,只有一个简单的命令行让您立即完成任务!您可以使用belard.org上的JS Linux在线尝试这些代码片段。您可以复制和粘贴文本,也可以使用dc-f file.dc从文件中执行文本。#这是一条注释。#l表示为SAVE1 SA2 SB3 scla lb+lc*p sd加载s。

将打印9并将其保留在堆栈上,直到将其保存到寄存器d。#函数f,打印字符并删除堆栈[[a大于10]p c]sf#如果a大于10#则执行函数f#不发生任何事情8sa[la 10<;f]x#函数被调用11 sa[la 10<;f]x。

#打印数字0到10#d重复,x执行0 sa[la p 1+d sa 10!<;f]sflf x#无需变量[p 1+d 10!<;f]sf0 lf x。

#xq将宏保留到第x级。#它是递归函数的终止条件。#永远不会执行[A]p。#st只从堆栈中删除最后一个变量。[P 1+d 3!<;f st 4Q[A]p]SF[1+d d Sa 0 lf x 3!<;g]sg0lg x。

现在轮到你了,你只需修改上面的代码!这段代码远远谈不上是好的。我很高兴它最终成功了。我在写这个的时候真的牺牲了一些大脑部分。

无论如何,它创建了一个可以保存为可移植位图(PPM)的ASCII模式。在600x400(第6,7行)、精度为20(第2行)和迭代量为25(第28行)的条件下,您将获得以下输出。

08.06.2020 GitHub:ben165