关于语言设计:是否有形式化的Pseudocode高级表示法?

Is there a formalised high-level notation for Pseudocode?

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

这里的关键是纸张。在机器上,我很可能会非常快速地在linter / compiler中使用高级语言,而键盘在某种程度上限制了可以完成的工作。

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

m ← +/3+?4

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

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

这是等效的haskell:

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

和Python:

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

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

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


别太刻薄,但是您可以使用APL。 毕竟,它最初是作为一种数学符号发明的,后来才变成一种编程语言。 我似乎记得在Backus的Turing Award演讲中有类似的话题。 最后,也许Z Notation是您想要的:https://en.m.wikipedia.org/wiki/Z_notation