Occam-pi 是学习为编程新手编程 LEGO MINDSTORMS & Surveyor Corporation SRV-1 机器人的好语言吗?是否有任何开源项目使用相同的 - 来阅读源代码。occam-pi 的网址:- http://www.transterpreter.org/
8 回答
如果您对 SRV-1 上的并行编程感兴趣,我可以说是的,Occam-Pi 很棒。几年前,Matt Jadud(Occam-Pi 的开发者之一)是我的教授,我们几乎只使用 Occam-Pi/SRV-1 组合。它有它的怪癖(或者至少当时是这样),但我们基本上能够解决它们。对于一个新程序员来说,学习一门语言并没有那么糟糕(这是我的第一门语言,我做得很好!)我绝对建议向马特询问任何问题,他很容易得到答复。我也很乐意回答您的任何问题,您可以给我发电子邮件:
bp 在 brdpwrs dot com
祝你好运!
我发现 Occam-pi 是可以使用的机器人编程语言,没有失败。在考虑同时感知和行动的主动机器人时,它是其他语言所不具备的直观方式 - 并行。
在 Occam-pi 中编程就像连接物理机器人。您知道哪些硬件组件在做什么,因此您可以将它们连接到正确的位置。在使用并发编程语言(如 Occam-pi)进行编程时,也会出现类似的思维方式。您弄清楚必须如何编写所需的特定进程才能运行,然后通过通道(很像电线)将其连接到其他进程。
为了在 C、C++ 和 Java 等语言中做同样的事情,在微控制器上,有必要与诸如此类的野兽作斗争:定时器中断、易失性变量和错综复杂的“for”循环。
简而言之,Occam-pi 极大地简化了机器人编程。
带火
我会回应莫丹早些时候的评论。从某种意义上说,Occam 是一种非常好的语言——它以一种很可能是首屈一指的可靠、健壮的方式进行显式并发。但不幸的是,它不是通用编程语言。如果您只学过 C 和 Java 之类的语言,那么学习也不是一件容易的事。
它需要一种不同的思维方式,这也是它在并发方面如此出色的部分原因,尤其是在 NXT 等嵌入式系统中。与大多数程序员相比,必要的思维更类似于硬件设计人员使用的思维(特别是,OO 程序员可能会因拒绝引用别名而苦恼 - 这是 Occam 保证正确并发行为的原因之一;更多细节可以在这里找到)。必要的思维方式更像是某种塑料积木玩具产品所需的思维方式。
所以总而言之,这是一个不错的选择......但不幸的是,它会让大量没有经验的用户感到沮丧。如果您喜欢具有挑战性的冒险,请尝试一下!
Occam绝对不是编程新手的语言。
我建议新手尝试并获得可在多种情况下使用的技能,并在将来随着您的职业/爱好的发展为您提供帮助。我要给出的另一个建议是在一个有一个充满活力的开发者社区可供学习的领域学习。如果您选择了正确的语言,您会发现友好的教程可以让您轻松进入该过程。
话虽如此,我对奥卡姆的体验是近十年前的事了,我仍然有一部分想回到它,再玩一次。当它工作时,这是一种非常有益的体验,尽管当你遇到一个错误,当你的进程被阻塞时性能会慢慢降低时,这会让人很恼火。
我建议你只有在已经有 Lego Mindstorms 编程经验后才花时间学习 Occam ,即使那样,也只有在你有大量时间和耐心的情况下。如果你有机会,它是一门很棒的语言,绝对是我遇到的最好的高度并行编程语言。我怀疑它是否会成为主流。
可能不是。它是一种研究语言,因此不会对您想要的内容提供支持。对不起。
LEGO MINDSTORMS Education NXT 软件可能是编程新手的更好选择。SRV-1 很酷 - 但并没有真正为初学者提供支持资源。
祝你好运!
当最初的头脑风暴问世时,我使用了“不完全 c”——正确的编程语法,但很容易使用。
好吧,让我们这样说吧:你不需要一直与数据库交互。
我认为您可能会发现学习一门研究语言以掌握其他语言的新功能是值得的。我应该写更多,但没有时间。