首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标C的跨平台功能语言

目标C的跨平台功能语言
EN

Stack Overflow用户
提问于 2011-02-21 01:54:27
回答 5查看 1.6K关注 0票数 4

编辑:在花了几个小时研究这个问题之后,我不认为我会找到任何能够真正节省我时间的东西,相比于在所有这些平台上寻找合适的语言、合适的绑定以及维护这个环境所花费的时间和精力。我接受的答案似乎是最现实的,因为这将是最好的想法,对大多数人。我从这些对话和其他我正在进行的对话中得出的观点是,唯一真正的前进之道是要么使用一种可以在没有外部绑定的情况下运行的函数式语言,要么使用由商业实体(如F# )维护的绑定。这是太多的工作和太少的需求,而在野外可利用的状态反映了这一点。我希望有一天它会改变。

我想开始在我的软件中使用一种函数式语言,,以及作为我的主要语言的Objective (C作为绑定?)。必须跨平台,即Windows、Linux、OSX (x86)和iOS (ARM).我应该使用什么,如何实现这一点?

为了实现我的目标-C,我计划很快切换到LLVM后端和Clang,如果这有什么区别的话。

我对任何函数式语言都没有任何“知识投资”,尽管我已经搞砸了几个。我正在从头开始学习一个,所以如果可能的话,我想学一些非神秘的东西。

  • 解决方案必须是real,已经做了大量的初步或原型工作,但是..。
  • 我使用的是目标C,我确实需要Cocoa绑定;因为我的大量数据都使用Cocoa类型,否则事情就会一团糟。另外,object消息传递将防止我需要在静态C函数和目标-C对象实例之间创建粘合代码(这已经是object方法调用所做的内置.)
  • 对于静态链接,解决方案必须是许可证安全的(iOS要求)。

以下是我想要做的事情的例子:

  • 处理字节语言,例如网络协议
    • 输入:字节、长度和“调用”对象-c方法实例
    • 输出:返回到调用objective方法实例,发送给它可可容器参数。

  • 在棋盘游戏中做出关于最佳“移动”的决定
    • 输入:包含可可的状态数据,“调用”对象-c方法实例
    • 输出:可能更改状态数据,可能调用任意的objective方法,然后返回到调用objective方法实例,发送给它可可容器参数。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-02-21 01:57:17

Gambit或小鸡计划可能是你最好的选择--它们编译成C。

票数 2
EN

Stack Overflow用户

发布于 2011-02-21 17:13:14

正如丹尼尔·宾兹利( Danielünzli)提到的,我们有一个OCaml iPhone应用程序正在iPhone应用商店出售。(这是一款名为Cassino的纸牌游戏,如果你想找的话。)苹果在2010年9月放弃了他们的语言限制,我们没有遇到他们的任何抵制(当然,我们是一个非常小的玩家)。

我收集了一些用OCaml编写OCaml应用程序的教程示例,您可以在我们的网站上找到这些示例:

http://psellos.com/ocaml/example-app-portland.html

http://psellos.com/ocaml/example-app-slide24.html

您没有提到是否希望GUI代码跨平台。这是个很难解决的问题。我们的代码使用瘦包装来访问本机Cocoa库,这些库在Linux或Windows上不起作用。它们在OS上工作(至少是一个子集)。在本教程示例中,您可以看到一些定制的(大大简化的) Cocoa包装器。

OCaml在您提到的所有系统上都能很好地工作。对我来说,这似乎是一个不错的选择(一个有点偏颇的OCaml爱好者)。

票数 6
EN

Stack Overflow用户

发布于 2011-02-21 09:31:08

OCaml不是GPL,编译器本身是在下发布的,标准库是在LGPL下发布的,有一个静态链接异常。有关更多细节,请参见此处:

http://caml.inria.fr/ocaml/license.en.html

有些人已经在OCaml上做了一些应用程序,你不需要花3000欧元就可以在应用商店上找到。请遵照下列指示:

http://web.yl.is.s.u-tokyo.ac.jp/~tosh/ocaml-on-iphone/index.html

http://psellos.com/ocaml/compile-to-iphone.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5061585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档