質問

私は誰もが簡単に私を説明することができ、それを本当に感謝し、MonoTouchでのようなものを実装する一般的な方法は何ですか?人々は、Javaのようないくつかのプラットフォームを取得し、それは、C / Objective-Cのようなものに変換させるとき、それは私が見る最初の例ではないので、私は本当に驚いて。私は本当にガベージコレクタやもののようなものが翻訳されているかを想像することはできません。

事前に感謝します。

編集:私は他に一つの言語を翻訳の理論的可能性を理解しています。私の質問は、もう少し技術的である:彼らは<強い/>にObjCでの完全なランタイムを実装し、それをバンドルしていますか? (私は...それを疑う)または彼らはただにObjC /バイナリは/ etcにC#のコードを変換しますか?

役に立ちましたか?

解決

MonoTouchでは、単一の静的にコンパイルしたファイルを生成するために事前コンパイラを使用しています - それは、iPhone上の.NETランタイムを実装していません。 MonoTouchでは、C#にさらさiPhoneのライブラリへの結合を使用しています。 Objective-Cのへの変換はありません。

基本的に、それはあなたの基礎となるiPhone OSのライブラリ呼び出しを露出させながら、C#、およびそれに関連するツールチェーンでの作業の習熟を与えます。

ミゲル・ディIcaza氏は少し彼がゲストだったStackOverflowのポッドキャストでこれを説明しました。 リンクする

他のヒント

MonoTouchでは翻訳ではありません。これは、iPhoneの制限と互換性を持たせるためにいくつかの空想の策略で、簡単にiPhone上で動作しているMonoランタイムです。

従来のモノラル「ランタイム」は単なるJITではありません、それはまた、などGC、反射、I / O層、スレッド、例外を処理するクラスライブラリもあります。あなたのアプリはiPhone上で実行するためには、これの多くがアプリに含まれている必要があります。それをスリム化することはいくつかの課題を提示しています。また、iPhoneは、JITのランタイムコードの生成を防ぎ、唯一の署名コードが実行され、動的ライブラリを許可していません。

何MonoTouchではないことはあなたのコードは、単一のILバイナリに使用するクラスライブラリの部分だけを結合するILリンカーを使用することです。それは、その後、JITは、通常、ILから生成するすべてのネイティブコードを事前に生成するために、AOTコンパイルを使用し、その後、署名することができ、単一のネイティブバイナリへのJITレスランタイムと一緒にこれをリンクします。最後に、ILは、管理バイナリから取り除かれます。メタデータのみを残しています。

MonoTouchでは、おそらくiPodにモノラルのポートである。

モノ自体は、様々な* nixの環境で.NETランタイム(およびいくつかの開発ツール)のオープンソース実装である。

これは初期の.NETの重要性を実現し、プラットフォームを開くためにそれを移植に関する設定ミゲル・デ・Icaza氏率いる大規模な労働力でした。 MONOはネイティブ.NETとモノの間ineteroparability与えたとしてIncidently彼は、マイクロソフト自身からの支援の多くをreceievedます。

だから、最初の答えは、あなたがよく組織、頑張っ天才である必要があります。

第二の答えは、よりコンプSciencyです。 「完全チューリング」は、システムがプログラマブルコンピュータ考慮する必要がある機能の最小セットです。そのactualy非常に小さなセット - 。減算、比較、ブランチと読み、店舗

理論はどんな「チューリング完全」システムは、他の「チューリング完全」システムが何かできることを行うことができるということです。だから、あなたは別のプログラム環境を使用して、それをエミュレートすることができるはずいかなる合理的に完全なプログラミング言語環境を与えられます。

この周りの多くの例があります。 JPythonのは、Java JVMでエミュレートCパイソンを実行します。私の2個の個人的なお気に入りは、ブラウザのどちらのhref = "http://www.recreationalmath.com/mixal/" REL = "nofollowをnoreferrer"> KnuthのMIXのassembeler機。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top