首页 文章

在Maple中进行高效编程

提问于
浏览
1

我需要一些关于在Maple中有效编程的技巧(如在计算机代数软件中) . 通过高效,我并不是说我的程序/代码更高效(性能),而是有效地使用Maple代码 . 这是具有讽刺意味的,但是我为用C / C等语言编程开发的软件和工具而烦恼,例如: :IDE,debuging工具( Watch ,断点等),编译器和语言结构本身(面向对象,程序更灵活,重载,通过引用或值传递等) . 从这个意义上来说,我觉得在C / C(我使用visual studio)编程更方便,甚至在python这样的脚本语言中也是如此(没有真正的调试,但我觉得更多的是控制和纪律工作) .

另一方面,Maple是少数语言之一(不知何故,我确实与其他CAS有类似的问题,但可能程度较小),我觉得我没有纪律 . 我只是尝试使用一些文本文件(大多数人称之为.mpl文件)并只读取枫树中的文本文件,只需从枫树加载此文本文件,例如 read("some.mpl") ,这允许我在使用像svn或git这样的版本控制时区分我的更改(.mws或其他枫文件格式不是那么版本控制友好) . 动态编程可能非常麻烦,IDE通常需要很长时间的加载并且感觉非常沉重 . 因此,我只需在记事本中编写代码(在Windows中工作),并在记事本菜单中对"Run"进行成本调用,以调用cmaple(枫木的控制台版本)并即时读取我的.mpl文件 . 这是我为帮助我提高工作效率而采取的几个步骤 . 但我想我可以做得更多,我会很感激任何提示 . 现在,例如,我觉得枫树(不像C,python,java等编程语言)当一个人有很多程序时效果不好 . 在C / C或任何类C语言中,我几乎可以将我的所有代码作为过程内联并单独调用它们,如果你在Maple中执行此操作,有时会出现奇怪的行为 . 有时甚至,函数和maple命令在一个过程中表现得非常不同(我有经验这样的事情,比如想要在一个过程中进行SVD或LU分解) . 在使用嵌套循环时也要小心(例如,如果在程序中达到嵌套循环的某个级别并且我确定我仍然不知道的其他内容,则打印命令具有不显示的级别)从长远来看,许多其他令人恼火的事情 .

所以我想我知道在枫木工作时使用什么工具/软件来简化编程 . 但我仍然不知道如何在枫树中正确编程和更有效 . 对于发起过程序的C程序员来说,许多事情都非常不直观,甚至令人讨厌 . 在使用maple进行编程时是否还有其他一些我应该谨慎的事情(例如,在另一个.mpl文件中读取多个.mpl文件时的异常行为,不同类型的全局/局部变量,保存工作表中的所有变量,向后兼容枫之间的版本等) . 最好还要求提供这些建议的参考/书籍 . 仅仅是为了记录:我已经用枫树(严肃地)编程超过2年了,我仍然感觉不像在我第一次学习用C编程的前6个月那样舒服 .

2 回答

  • 1

    如果你已经在Maple中编程了几年,那么你可能已经超越了它 . 它由Maplesoft分发,并在其文档中心available . 我've also heard good things about '了解Maple' .

    也就是说,您可以从StackExchange上标记Maple的任何东西中学到更多东西,或者更重要的是可以从mapleprimes.com的Maple用户社区中学习 . 您可以在帖子中介绍各种主题,因此您可以尝试在MaplePrimes中添加一个简短的代码示例,以便在那里与Maple专家一起进一步探讨该主题 .

  • 1

    根据我的经验,最有效的流程是解决Maple中数学上较重的部分,然后使用这些结果生成可以嵌入到任何地方的C代码,从科学项目的C数值模拟器到JavaScript计算机游戏中的代码片段 .

    Maple最强大的一面是符号数学和代码生成,它很好地补充了你在C语言方面的专业知识,或者说甚至没有野心来替换这些语言更好的Java .

相关问题