将用Ada编写的Windows / Mac应用程序移植到iOS

时间:2011-05-25 17:35:19

标签: iphone ios ada

我拥有一个字典应用程序(将文本作为输入,输出定义+语法分析)。我有所有源代码文件(约50页代码),用Ada编写,以及Windows和Unix可执行文件。我希望能够在iOS应用程序中使用此词典。

我对Ada一点也不熟悉,所以我的问题是,简而言之 - 是否有任何快捷方式以某种方式包装应用程序并在iOS上使用它?或者只是在C / Objective-C中重写整个应用程序的唯一方法?

2 个答案:

答案 0 :(得分:4)

  

我希望能够在iOS应用中使用此词典。

好吧,如果有一个针对iOS的Ada编译器 - 并且可能考虑到GCC有一个Ada前端 - 那么只要源不是,就重新使用这些包应该是直截了当的编译器(用于不同的编译器)或特定于体系结构。

我将Ada移植到其他架构的最多经验是将我编译到本机的一些代码移植到JVM(有一个针对JVM的Ada编译器); “陷阱”更像是JVM的区分大小写,与Ada对命名类和包的大小写不敏感相互作用。

答案 1 :(得分:3)

Shark8提到了面向JVM的Ada。 ACT销售针对JVM的Gnat版本。但是,我不相信iOS设备目前运行Java 。 Apple不希望失去对平台的控制权,因此他们不允许任何除自己以外的开发环境,这是基于Objective C的。我了解Java人员正在努力解决这个问题,但即使他们这样做,Apple也可能会拒绝允许任何此类应用进入他们的在线商店。请注意,这不是Ada独有的问题。任何使用C或Objective C以外的任何语言编写的应用程序都会遇到与iOS相同的问题。 (这是开发人员倾向于选择Android平台而不是iOS的众多原因之一。)

所以你真正需要的是能够使你的代码与Apple的Objective C编译器兼容的东西。据说Objective C是C的严格超集。如果Apple的实现也是如此,那么输出可编译C源的Ada编译器应该为你完成这项工作。

幸运的是,有这样一个Ada编译器(或者至少曾经有过)。 AdaMagic 曾一度将C作为“目标”。它现在由SofCheck出售。当我最后几年和几年前看到它的讨论时,他们称它为“服务”和编译器一样多,所以它可能并不便宜。但是,如果你有真正的业务需求,那肯定会比花费多年时间重写一个有效的应用程序更便宜。

你的另一个选择当然是说“螺丝苹果和他们的操作系统”,而不是用Android拍摄。可悲的是,出于商业原因,这可能不太可行。 : - (

更新(2016/2012):SofCheck的资产已于2012年初作为两家公司have merged从AdaCore获得。