我意识到这个问题会引起一些人的注意,并且我意识到 JavaScript 传统上是一种解释性语言,请让我解释一下:
我是一名专门从事 Web 应用程序(特别是 .NET 堆栈)的软件工程师。作为一种爱好,我喜欢创造RC UAVs https://www.youtube.com/watch?v=H42tvqSrFyg在基于 Arduino 的组件上运行。
我还想用 Arduino 做其他一些事情,但坦率地说,C / C++ 不是我最强的语言,我不想花有限的业余时间阅读 C 书籍。
我(以及我确信的许多其他人)想到,如果用于与其交互的语言是一种更常见的语言,那么 Arduino / 嵌入式生态系统将会更加丰富。 JavaScript 对我来说似乎是一个很好的候选者,因为大多数软件开发人员都知道它,并且构建开源框架和插件的文化在 JavaScript 世界中非常强大。
那么,回到我的第一个问题:如果我想能够用 JavaScript 为 Arduino 编写和编译代码,我该如何开始?我当然正在设想一个开源项目,但我需要一些帮助来获得关注。我从未编写过编译器,因此非常感谢您的帮助。
这是一个很大的要求,Arduino UNO、LEO 等中的微控制器是 ATmega328p,它具有 32K 的闪存用于程序存储、2K 的 RAM 和 2K 的 EEPROM(用于持久存储)。对于像 Javascript 这样的语言来说,这是相当严格的。
现在有人写了一个ATmega128 的 Javascript 编译器 https://code.google.com/p/talktic/,您可以在 Arduino Mega 中找到它,它具有 4K RAM 和更多闪存。
如果您升级到 Arduino DUE、Arduino Zero 或 Teensy 3.x(所有这些都是基于 ARM 的),那么您可以查看Espruino http://www.espruino.com/这是适用于 ARM 的 JavaScript 版本,但您仍然需要将其移植到 Arduino 硬件。
因此,如果您真正想要的是可以运行 JavaScript 的嵌入式板,那么我只想看看 Esprino 板本身。
最后,如果您仍然选择使用 ATmega328p 的 JavaScript,那么您应该考虑为 JavaScript 语言的子集编写一个 JavaScript 到 C++ 的转换器。这样做的范围远远超出了 SO 回复的范围,所以我建议从著名的开始龙书 https://rads.stackoverflow.com/amzn/click/com/0201100886因为它仍然可能是学习如何编写编译器的最佳资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)