在微小内存中运行的可用交互式语言有哪些?

dwh*_*all 72 embedded microcontroller programming-languages interactive

我正在寻找通用编程语言

  • 有一个交互式(实时编码)提示
  • 当编译器托管在单独的机器上时,单独工作32 KB RAM或8 KB工作
  • 在总共只有8-32 KB RAM的微控制器上运行(没有MMU).

到目前为止,下面是我的清单,我错过了什么?

  • Python:PyMite VM需要64K闪存,8K RAM.目标LPC,SAM7和ATmegas 8K或更多.托管.
  • Lua:eLua FAQ推荐256K闪存,64K RAM.
  • FORTH:amforth在ATmega上需要8K闪存,150字节RAM,30字节EEPROM.
  • 方案:armpit方案最小的目标是具有32K闪存,4K SRAM的LPC2103.
  • C:Interactive C在68HC11上运行,没有闪存和32K SRAM.托管.
  • C:picoc是一个开源,交叉编译,交互式C系统.编译为AVR时,需要63K闪存,8K RAM.可以通过努力将RAM保持在闪存中来减少RAM.
  • C++:AngelScript是一个开源的,基于字节码的,类似于C/C++的脚本语言,具有简单的本机调用.
  • Tcl:TinyTCL在DOS上运行,60K二进制.看起来很容易移植.
  • BASIC:TinyBasic:初始化为64K堆,可能是可调整的.
  • 口齿不清
  • PostScript :(我还没有找到低内存的FOSS实现)
  • Shell:bitlash:Arduino(ATmega)的交互式命令shell.另见AVRSH.

Con*_*lls 8

自制的Forth运行时确实可以在很少的内存中实现.我知道有人在20世纪70年代在Cosmac上创造了一个.核心运行时只有30 个字节.


Dav*_*ary 7

我听说CHIP-8,XPL0,PicoC和Objective Caml已被移植到图形计算器中.维基百科"Lego Mindstorms"文章列出了一系列据称在Lego RCX或Lego NXT平台上运行的编程语言.他们中的任何一个符合您的"实时编码"标准吗?

您可能想要查看Forth wiki上的其他微控制器Forths.它列出了Atmel AVR至少4个Forth:amforth(你已经提到过),PFAVR,avrforth和ByteForth.
(这些解释器的链接以及此StackOverflow问题都包含在" 嵌入式系统 "wikibook中).


Ron*_*Ron 5

我会推荐LUA(或eLUA http://www.eluaproject.net/).我曾经将LUA"移植"到Cortex-M3上.从我的头顶开始,它的闪存大小为60~100KB,运行时需要大约20KB的RAM.我确实剥离了最基本的东西,但根据你的应用,这可能就足够了.仍然有优化的空间,特别是关于RAM要求,但我怀疑你可以在8KB中运行它.


Dar*_*con 5

Wren符合您的标准——默认情况下,它配置为仅使用 4k 的 RAM。AFAIK 它没有看到任何实际用途,因为我写它的那个人决定他根本不需要完全在目标系统上运行的解释器。

该语言受 ML 和 Forth 的影响最为明显。


dmc*_*kee 0

您是否考虑过简单地使用busybox/bin/sh 提供的?或者他们推荐的较小的脚本语言

  • 我正在寻找在没有 MMU 的微控制器上运行的语言,并且 RAM (8K-32K) 很小,以至于操作系统不合理。我将编辑问题以使这一点更清楚。 (3认同)