什么编程语言最好地弥合了伪代码和代码之间的差距?

时间:2009-06-05 00:04:53

标签: pseudocode

当我从现在开始编写代码时,我计划首先将所有内容布置在漂亮,可读的伪代码中,然后围绕该结构实现该程序。

如果我将我目前所知的语言从最简单到最难翻译的语言排名,我会说:

Lisp,Python,Lua,C ++,Java,C

我知道每种语言都有其优点和缺点,但我专注于伪代码。您使用哪种语言最适合伪代码?我总是喜欢学习新语言。此外,如果您目前使用此技术,我很乐意听到您有关构建实用伪代码的任何提示。

注意:我觉得这是主观的,但每个人的偏好都有明确的答案。我在这里问这个问题是因为SO社区拥有非常广泛的受众,并且很可能建议我不会遇到的语言和技术。

13 个答案:

答案 0 :(得分:15)

我会首先评价Python,而不是Lisp,只是因为大多数人不使用前缀paren语法编写伪代码:)

答案 1 :(得分:7)

你可能对Literate Programming感兴趣,你写的“源代码”更像是写一本书,但它的书可以“纠结”成真正的代码或“编织”成格式化的文档。

请参阅http://www.literateprogramming.com/cweb_download.html提供的示例。

您可能还会发现Eiffel有趣:

“... Eiffel避免编码技巧或编码技术作为编译器的优化提示。目的不仅是使代码更具可读性,而且还允许程序员专注于程序的重要方面而不会得到陷入了实施细节......“

答案 2 :(得分:6)

Pascal在这种伪代码描述中非常流行。

答案 3 :(得分:4)

我认为这完全取决于伪代码的味道。我在Algorithms教科书中看到的很多伪代码看起来像Pascal一样具有讽刺意味。帕斯卡尔一直被认为是一个很好的教学语言。

答案 4 :(得分:2)

Here是我认为第一次引用python为“可执行伪代码”的链接。本文转载于2001年8月的PC Update,即澳大利亚墨尔本PC用户组的杂志。

答案 5 :(得分:1)

我发现在为.NET编写少量代码时,Boo已成为我的“伪代码”语言。与Python类型语法非常相似。

答案 6 :(得分:1)

你已经提到了但是......

Python语法非常清晰。它与伪代码非常接近,易于阅读。

答案 7 :(得分:1)

我认为你已经倒退了,有点儿。这个问题的问题在于,您倾向于使用您计划用于实际代码的语言的近似值来编写伪代码。提出任何想要创建伪代码语言的人(像世界语?)是常用编程语言的混合体。

答案 8 :(得分:1)

TCL语法很容易就像伪代码一样。命令trump函数用于可读性和表示更典型的汇编代码的低级操作。同时,高级算法也非常容易阅读。语法的一致性允许用户专注于步骤而不是语言工件。我甚至会说数学运算的“expr”关键字是一个优点,因为它清楚地描述了算法部分中程序的数学部分。较少的符号被重载,并且在其位置使用诸如“set”的单词。这是伪代码的另一个胜利。 TCL比任何其他语法都更能跨越功能和命令式风格之间的界限。

答案 9 :(得分:0)

您可以尝试Flash的动作脚本。

答案 10 :(得分:0)

我会说lua是从伪代码翻译的最佳选择(在大多数情况下)。只要变量名称很好,大多数程序员都可以轻松读取lua,而且它也非常快!

答案 11 :(得分:0)

我同意Nosredna的评论,即Ada看起来非常像伪代码。

如果您不介意Ada所需的所有额外输入,我认为这是一种很棒的语言,因为代码确实意味着它所说的内容。

答案 12 :(得分:0)

Prolog是你可能不会遇到的。它一起回避了伪代码的问题。从某种意义上说,没有代码。只有事实和规则。

例如,追加谓词就是我们对列表所知的事情,如下所示:
将列表Y附加到空列表会产生Y.

append([], Y, Y).

如果将Xs附加到Ys会产生Zs,那么我们可以在Xs和Zs之前添加相同的值,并且该关系仍将保持不变。

append([X|Xs], Ys, [X|Zs]) :- append(Xs, Ys, Zs). 

我们实际上并没有编写能够完成任务的代码。我们刚刚说出了我们对附加列表的了解。但现在我们可以要求Prolog追加2个名单:

?- append([1,2],[3,4],Z).
Z = [1, 2, 3, 4].

或者给Prolog一个列表,并要求它向我们展示我们可以添加哪些列表来获取目标列表:

?- append(X,Y,[1,2]).
X = [],
Y = [1, 2] ;
X = [1],
Y = [2] ;
X = [1, 2],
Y = [] ;