【问题标题】:Is Occam-pi a good language to learn to program LEGO MINDSTORMS & Surveyor Corporation SRV-1?Occam-pi 是学习 LEGO MINDSTORMS & Surveyor Corporation SRV-1 编程的好语言吗?
【发布时间】:2010-09-14 04:31:55
【问题描述】:

Occam-pi 是一种学习编程 LEGO MINDSTORMS & Surveyor Corporation SRV-1 机器人编程新手的好语言吗?是否有任何开源项目使用相同的 - 来阅读源代码。 occam-pi 的网址:- http://www.transterpreter.org/

【问题讨论】:

    标签: functional-programming lego nxt occam-pi


    【解决方案1】:

    可能不会。它是一种研究语言,因此不会对您想要的内容提供支持。对不起。

    LEGO MINDSTORMS Education NXT 软件可能是编程新手的更好选择。 SRV-1 很酷 - 但并没有真正为初学者提供支持资源。

    祝你好运!

    【讨论】:

      【解决方案2】:

      好吧,让我们这样说吧:你不需要一直与数据库交互。

      我认为您可能会发现学习一门研究语言以掌握其他语言的新功能是值得的。我应该写更多,但是没有时间。

      【讨论】:

        【解决方案3】:

        我在transterpreter 上使用了occam-pi,它似乎做得很好。你可能想看看这个blog。它是由其中一位开发人员编写的。如果你给马特一封电子邮件,他可能会为你指出正确的材料方向。

        【讨论】:

          【解决方案4】:

          当最初的头脑风暴问世时,我使用了“不完全 c” - 正确的编程语法但很容易使用。

          【讨论】:

            【解决方案5】:

            Occam绝对不是适合编程新手的语言。

            我建议新手尝试并获得可在多种情况下使用的技能,并在未来随着您的职业/爱好的发展而帮助您。我要给出的另一个建议是在一个充满活力的开发者社区可供学习的领域学习。如果您选择了正确的语言,您会发现友好的教程可以帮助您轻松完成该过程。

            话虽如此,我对奥卡姆的体验是近 10 年前的事了,我仍然有一部分想回到它,再玩一次。当它起作用时,这是一种非常有益的体验,尽管当您遇到一个随着您的进程被阻塞而缓慢降低性能的错误时,这会让人感到愤怒。

            我建议您在对 Lego Mindstorms 编程有经验后花时间学习 Occam,即使那样,也只有在您有大量时间和耐心的情况下。如果你有机会,它是一门很棒的语言,绝对是我遇到的最好的高度并行编程语言。不过,我怀疑它是否会成为主流。

            【讨论】:

              【解决方案6】:

              我会更早地呼应莫丹的 cmets。 Occam 在某种意义上是一种非常好的语言——它以一种很可能是首屈一指的可靠、健壮的方式进行显式并发。但不幸的是,它不是通用编程语言。如果你只学过 C 和 Java 这样的语言,学习起来也不是一件容易的事。

              它需要一种不同的思维方式,这也是它在并发方面如此出色的部分原因,尤其是在 NXT 等嵌入式系统中。与大多数程序员相比,必要的思维更类似于硬件设计人员使用的思维(特别是,OO 程序员可能会因拒绝引用别名而苦恼——这是允许 Occam 保证正确的并发行为的事情之一;more detail can be found here)。必要的思维方式更像是某种塑料积木玩具产品所需的思维方式。

              总而言之,这是一个不错的选择……但不幸的是,它会让大量没有经验的用户感到沮丧。如果您喜欢具有挑战性的冒险,就试试吧!

              【讨论】:

              • 我同意这一点。我在肯特大学完成了 Occam-Pi,它与 Java/C 的 OOP 完全不同。一旦你习惯了以“Occam-Pi 方式”思考,它确实是一门非常好的语言
              【解决方案7】:

              我发现 Occam-pi 是可以使用的机器人编程语言。在考虑同时感知和行动的主动机器人时,它是其他语言所不具备的直观方式。

              在 Occam-pi 中编程就像连接物理机器人。您知道哪些硬件组件在做什么,因此您可以将它们连接到正确的位置。在使用并发编程语言(如 Occam-pi)进行编程时,也会出现类似的思维方式。您弄清楚必须如何编写所需的特定流程才能运行,然后通过通道(很像电线)将其连接到其他流程。

              为了在 C、C++ 和 Java 等语言中做同样的事情,在微控制器上,必须与诸如定时器中断、易失变量和错综复杂的“for”循环等野兽作斗争。

              简单地说,Occam-pi 极大地简化了机器人编程。

              带火

              【讨论】:

              • 我不确定这是否完全正确。虽然 Occam-Pi 是一种创建机器人智能的优雅方法,但更强大、更强大的选项,例如 ROS(您可以与任意数量的语言一起使用,尤其是 C++ 和 Python)可能会更好。您不太可能为 Occam Pi 找到一个好的 SLAM 库,而为 ROS 提供了几个。假设您可以为 Occam Pi 编写 SLAM,但您很可能必须在 C 中使用包装器来完成。当我与 Matt Jadud 一起工作时,我们发现许多复杂的算法在 Occam 中速度太慢了,所以我们如前所述移植到了 C。
              【解决方案8】:

              如果您对 SRV-1 上的并行编程感兴趣,我可以说是的,Occam-Pi 很棒。几年前,Matt Jadud(Occam-Pi 的开发者之一)是我的教授,我们几乎只使用 Occam-Pi/SRV-1 组合。它有它的怪癖(或者至少在当时是这样),但我们基本上能够解决它们。对于新程序员来说,学习一门语言并没有那么糟糕(它是的第一语言,我做得很好!)我绝对建议向马特询问任何问题,他很容易得到回应。我也很乐意回答您的任何问题,您可以给我发电子邮件:

              bp 在 brdpwrs dot com

              祝你好运!

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-11-19
                • 2010-10-20
                • 1970-01-01
                • 2010-10-14
                • 2011-02-22
                • 1970-01-01
                • 2011-10-01
                • 2011-02-04
                相关资源
                最近更新 更多