在Pascal编程Arduino?

我的问题很简单:Arduino有任何Pascal或Pascal类(FPC,Delphi,mikroPascal)编程语言吗?

最好(我希望我不要求太多)语言不应超过10年。


更新:点击 让我们不要开始关于“为什么xxx编程语言更好Pascal”的火焰战争,并继续关注这个问题的核心。我知道Pascal有它的缺陷(没有什么是完美的,对吧?)。我接受他们,我仍然想用它:)
非常感谢。

0
因为通常的Arduino环境是基于C ++的,所以你最好搜索“Pascal for AVR”,它是使用的微控制器,看起来有几个选项。
额外 作者 Assaf Lavie,

3 答案

不是Pascal,而是Ada,它比Pascal具有更少的限制性,同时享受与低级编程相同的优势,并且更加积极地支持最近的2012年语言修订和正式可证明的SPARK语言,因为当您需要代码时工作。

gcc支持的任何处理器都可能支持Ada,其Gnat编译器完全是gcc的一部分。

这不是全部,因为您还需要运行时系统支持Ada的设施,但对于Arduino的AVR处理器,有一个完善的环境,形式为 AVR-Ada项目

它产生了很好的紧凑的小可执行文件,你会惊讶于与Arduino相比,简单的Gnat可执行文件所占用的空间更少 - 除非你已经在Arduino和C之间进行了相同的比较......毕竟使用相同的gcc编译器。

对于基于ARM的Arduinos(至少是Arduino),同样是可能的,虽然支持较新且可能不太成熟,请参阅 Cortex-GNAT项目

离开Arduino,Ada也在 MSP430处理器上得到了证明 - 我自己的项目,目前遗憾地被忽略了。

5
额外
阅读你自己的问题。您特别询问“......或Pascal类语言”。 Ada多么神奇?找出的最好方法是学习。您可以使用类似Pascal的子集,如果愿意,可以忽略高级功能;其中一些不适合MCU。而且:re:语言修订,Pascal的最新标准似乎是ISO7185:1990,也许你会混淆编译器修订与语言标准?当然,Gnat比语言本身更新得更频繁。
额外 作者 brenth,
顺便说一句,我没关系“接受”它。其中一条或两条评论指出了可能的替代线索:如果您跟进并且结果有用,您可以随时添加自己的答案。或者,曾经有过gcc的某种Pa前端。因此,如果您对Pascal有强烈的感觉,为什么不尝试为AVR后端构建它,在这种情况下,AVR-Ada项目(运行时系统)和我的MSP430-Ada文档可能提供有关该路径上某些步骤的有用线索。 (在gcc上工作并不简单!)祝你好运......
额外 作者 brenth,
@Kenny我听到你对Pascal过时的批评。 Ada也有同样不合理的不情愿考虑它,这影响了我多年。我开始编写Wirth的第一个大语言(Algol-W),也使用了Turbo Pascal(非常适合它的时代),然后是他的第三个(Modula-2 - 伟大但有其极限)。然后C和C ++已经持续了十年左右,这归功于他们的商业必然性,尽管他们的设计疯狂。寻找一个更健全的替代品,尝试过Ada(之前没有)。在C ++之后,感觉更像是治疗而不是学习。不是推荐,只是一个旅程的故事。
额外 作者 brenth,
澄清:1。我在谈论Pascal衍生物(mikroPascal,FPC,Delphi等)。 2.我在谈论你在计算机上安装和使用的“东西”而不是ISO。当我为Arduino做程序时,我将使用一个真正的软件(希望是Pascal)而不是ISO。
额外 作者 user19209,
无论如何,直到有人会提供不同的答案(如果有的话),Ada确实是最接近Pascal的。我会接受你的回答是没有更好的替代方案。不管怎么说,还是要谢谢你。 Upvoted。
额外 作者 user19209,
@ BrianDrummond-好的,我会尝试的。我想买我的第一块Arduino板。
额外 作者 user19209,

Pascal前端到Gnu编译器集合(gcc,其中)几乎所有的AVR编程都基于)已经存在。因此,AVR的Pascal编译器原则上存在(如果不是实际的话(并且我不知道它没有)。我首先与在GPC上工作的人们取得联系,了解已经完成的工作。

1
额外

是否可以在Pascal中编写Arduino?

答案是肯定的,不是。答案是肯定的,因为可以将 p-code 虚拟机移植到Arduino和为此编译。

如果用“是否有支持Pascal的开源Arduino/AVR IDE可用?”这个问题的答案是肯定的。

有一些商业AVR/Pascal产品。您可以轻松地对其进行网络搜索。

最后,一个可能的捷径是使用 p2c ,一个Pascal到C的翻译器,作为预先Arduino IDE中的处理器。 Arduino构建中有一些钩子可用于添加其他工具。

干杯!

1
额外
谢谢@MikaelPatel。老实说,我不介意为Pascal商业工具支付(最多)100美元。我为Delphi许可证付了一个数量级,所以100不是那么多。 P2C似乎是一个不错的选择。我将考虑P2C与Ada(由Brian推荐)。 Upvote(但我现在将保留Brian的帖子作为答案)。非常感谢。
额外 作者 user19209,