任何人都知道如何让.NET或Mono在TI图形计算器上运行?我知道完整的框架可能不适合设备,但是一个子集可能服务得很好。
更新:当我说“.NET / Mono”时,我真正的意思是获得一个C#或VB.NET应用程序来为设备编译,以便它可以执行。我知道.NET Framework是巨大的,不适合设备,但这不是必要的。您只需要一个.NET风格的API,它将设备本机功能公开给C#或VB.NET编程语言。
我只是好奇是否有人调查过此事。我不知道它真正具有哪些实际应用,但肯定会很有趣。
答案 0 :(得分:7)
我非常怀疑它。 24K的RAM。即使是一个子集也几乎不适合。
编辑:按照OP的要求,可以实现“类似.NET”的API,但说实话,这一点有点难以理解。 .NET的价值不在于其“结构良好的API”(因为它的结构并不特别惊人);它是在使用CIL和托管代码,以及一些从根本上依赖于那些(泛型,lambda函数,代理等)的有趣特性。
答案 1 :(得分:4)
这个虚构的嵌入式.NET平台 - 我们称之为“D2ME”, 将是{(3}}到J2ME的.NET(和Mono)。 但值得注意的是,J2ME标准要求设备至少具有512K ROM和256K RAM。请记住,我们可能无法更改TI-84 ROM,这意味着Java在ROM中的内容也必须适合计算器的 RAM 的48K。
如果省略几乎所有的.NET类和帮助函数,即使这样也可能实现,从而否定了.NET的大部分好处。
另外,如果你想要“.NET的功能而不是运行时”,你还要求什么? C#到本机编译器?当然可行,但那些为VB.NET编码的呢?然后你还必须为VB.NET创建一个本机编译器。当然,可行,但很难。 J2ME的一点是避免这种情况。
这让我们了解了编译问题,特别是编译器的目标。 TI-84有一个8位处理器CIL,虽然它的尺寸非常聪明,但有严格的限制。我认为使用原生Z80指令做类似C#类型系统的任何事都很难。当然,它可以模仿像Steve Wozniak的Z80这样的16位CPU,但这几乎可以让我们回到CIL。
总而言之,我认为这是“可能可能但非常不可能”的餐巾项目之一。我甚至没有谈及绩效问题。这是一个很好的思想实验,但我永远不会有动力去构建这样的东西。 : - )
答案 2 :(得分:2)
您必须专门设计甚至本机应用程序才能适应该空间。托管代码无法适应24k。
编辑:语言?首先,你必须移植BCL。仅此一项可能需要超过48kb。
答案 3 :(得分:1)
尝试这一点几乎没有意义,特别是因为在这样一个有限系统上的虚拟机几乎不实用(如果你是一个贪婪的惩罚,你可能会得到UCSD Pascal运行TI-84Ag,你有pcode编译器在桌面上而不是计算器上运行,但即便如此,它也在延伸它。 OO的东西几乎完全不可能;即便是苹果公司,可能是第一个在桌面上主流OO框架的公司,需要使用Mac Plus,一个16/32位处理器和512K内存来支持它,在第一批Mac出货后的一年内仍然使用了单任务操作系统。请注意,在具有TI-89内存3倍的系统上使用原生68000代码。
你可能能够在Nspire上完成它,如果你对低级黑客有足够的了解(需要注意的是我不确定是否有人在TI之外做过) 。 Nspire与Nintendo DSi模糊不清(虽然只有一个处理器而不是两个处理器),所以它足以让我们参与黑客社区并创建像.NET克隆这样的东西。
答案 4 :(得分:0)
我认为只使用TI-GCC会更好。
答案 5 :(得分:-1)
Vala可能是你做C#之类的唯一希望 http://live.gnome.org/Vala