1

任何人都知道在 TI 图形计算器上运行 .NET 或 Mono 需要什么?我知道完整的框架可能不适合设备,但一个子集可能会很好地服务。

更新:当我说“.NET / Mono”时,我真正的意思是让 C# 或 VB.NET 应用程序为设备编译,以便它可以执行。我知道 .NET Framework 非常庞大,不适合设备,但这不是必需的。您所需要的只是一个 .NET 风格的 API,它将设备的本机功能公开给 C# 或 VB.NET 编程语言。

我只是好奇是否有人调查过这个。我不知道它真正有什么实际应用,但肯定会很有趣。

4

6 回答 6

7

我会非常严重地怀疑它。24K 内存。即使是一个子集也几乎不适合。

编辑:按照 OP 的要求,可以实现“.NET-like”API,但老实说,这一点有点难以理解。.NET 的价值不在于其“结构良好的 API”(因为它的结构并不是特别令人惊讶);它在于 CIL 和托管代码的使用,以及一些从根本上依赖于这些的有趣特性(泛型、lambda 函数、委托等)。

于 2010-11-04T17:39:27.917 回答
4

这个虚构的嵌入式 .NET 平台——我们可以称之为“D2ME”,对于 .NET(和 Mono)就像J2ME对于Java一样。然而,值得注意的是,J2ME 标准要求设备至少具有 512K ROM 和 256K RAM。请记住,我们可能无法更改 TI-84 ROM,这意味着J2ME中的 ROM 中的内容也必须适合计算器的 48K RAM

如果几乎所有的 .NET 类和帮助函数都被省略,那么即使这样也可能实现,从而抵消了 .NET 的大部分好处。

另外,如果你想要“.NET 的特性而不是运行时”,你要求什么?AC# 到本地编译器?当然可行,但是那些为 VB.NET 编写的代码呢?然后,您还必须为 VB.NET 创建一个本机编译器。当然,可行,但很难。CIL的一个要点是避免这种情况。

这给我们带来了编译的问题,特别是编译器的目标。TI-84 有一个 8 位处理器Z80,虽然它的尺寸相当聪明,但有严格的限制。我认为很难用原生 Z80 指令做任何类似于 C# 类型系统的事情。当然,它可以模拟像 Steve Wozniak 的SWEET16这样的 16 位 CPU ,但这几乎会让我们回到 CIL。

总而言之,我认为这是那些“可能但非常不可能”的餐巾纸项目之一。我什至还没有谈到性能问题。这是一个很好的思想实验,但我永远不会有动力去建造这样的东西。:-)

于 2010-11-22T16:18:21.560 回答
2

您甚至必须专门设计本机应用程序以适应该空间。托管代码不可能适合 24k。

编辑:语言?首先,您必须移植 BCL。仅此一项就可能占用超过 48kb。

于 2010-11-04T17:43:55.410 回答
1

尝试这样做几乎没有意义,特别是因为在这样一个有限的系统上的虚拟机几乎不实用(如果你是一个贪吃的惩罚者并且你有 pcode 编译器运行,你可能会在 TI-84Ag 上运行 UCSD Pascal在桌面上而不是计算器上,但即使这样也会拉伸它)。OO 的东西几乎完全不可能。甚至可能是第一个在桌面上采用主流 OO 框架的 Apple,也需要 Mac Plus、16/32 位处理器和 512K 内存来实现这一目标,在第一批 Mac 出货一年多之后,仍然使用单任务操作系统。请注意,在具有 TI-89 内存 3 倍的系统上使用本机 68000 代码。

不过,如果您对低级黑客有足够的了解,您也许可以在 Nspire 上完成它(需要注意的是,我不确定是否真的有人在 TI 之外这样做)。Nspire 与 Nintendo DSi 模糊地属于同一类(尽管只有一个处理器而不是两个),因此它的强大足以让参与黑客社区并创建像 .NET 克隆这样的东西是值得的。

于 2010-11-24T04:46:55.567 回答
0

我认为你最好只使用TI-GCC

于 2010-11-04T17:57:16.350 回答
-1

Vala 可能是你做 C# 之类的唯一希望 http://live.gnome.org/Vala

于 2010-11-22T16:04:07.610 回答