根据定义,算法独立于它们运行的介质。例如,在用编程语言实现算法之前,我使用Excel表格处理数据结构,并做一些移动/洗牌/标记实验。
你使用什么工具和技术来设计和模拟算法的功能?如何使用绘图程序?一种特殊的规范语言?
发布于 2008-11-28 13:06:02
算法独立于语言,这是真的。但是你使用的任何媒介都是一种语言,句号。使用Excel意味着您正在使用excel“语言”(行、列、单元格等)。来表达你的一些算法。也许不是完整的成品,但您已经在Excel中表达了它。
UML图是一种表达算法的语言。纸上的草图是一种表达的语言。很难将柏拉图式的理想算法从所有的具体表示中分离出来。无论你做什么,你都是在用某种语言表达它。
诀窍是将算法与特定的语言功能和限制分开。
任何“非正式”符号都会帮助你做到这一点。英语(或其他自然语言),数学,图表等,都是用一种没有实现怪癖和问题的语言来表达算法的候选语言。
我首先用英语概述一下。纯文本,甚至不是MS-Word或格式化会让人分心的东西。
对于真正复杂的事情,一些补充数学有助于在程序状态周围放置正式断言。
此外,UML图也有帮助。我使用Argo UML --既便宜又有效。
有关此主题的更多信息,请阅读有关formal verification系统的信息。
发布于 2008-11-28 12:28:51
我通常在纸上画出来,然后尝试用Common Lisp快速实现,并在REPL上测试它。
发布于 2008-11-28 12:23:34
我不使用这样的工具,但在用Java实现算法之前,我通常会用groovy这样的高级脚本语言粗略地编写算法。
我发现使用更高级的脚本语言,你不必太担心语言,你可以更专注于算法。然后,当您验证了算法后,您可以将其移植到一种更具限制性的语言。
https://stackoverflow.com/questions/325627
复制相似问题