Pseudocode是否有正式的高级表示法?

时间:2016-11-22 18:44:28

标签: pseudocode language-design apl

我希望能够在纸上推理代码而不仅仅是写盒子或伪代码。

这里的关键是纸张。在一台机器上,我很可能非常快速地使用带有linter /编译器的高级语言,并且键盘限制了可以做的事情。

案例研究是APL,我们半开玩笑地描述为"只写"的语言。这是一个example

m ← +/3+⍳4

(解释:⍳4创建一个数组[1,2,3,4],然后将3添加到每个组件,然后将它们相加在一起,结果存储在变量m中。)

看看它是多么简洁!想象一下,你必须在日常工作中输入这些符号!但是,在白板上写iota和箭头很好,可以节省时间和墨水。

这是它的等效物:

m = foldl (+) 0 (map (+3) [1..4])

和Python:

reduce(add, map(lambda x: x+3, range(4)))

但这些简洁编程语言背后的原理是不同的:它们使用单​​词和标点符号来描述高级操作(例如fold),而我想为这些常见操作编写符号。

这样的形式化伪代码是否存在?

1 个答案:

答案 0 :(得分:2)

不要太苛刻,但你可以使用APL。毕竟它最初是作为数学符号发明的,然后才变成编程语言。我似乎记得在Backus'中有类似于我认为你在谈论的东西。图灵奖演讲。最后,也许Z符号是你想要的:https://en.m.wikipedia.org/wiki/Z_notation