Как MonoTouch работает?

Если это - текстовый файл, просто добавляют некоторый пробел, такой как перевод строки.

16
задан Anton 21 September 2009 в 11:08
поделиться

3 ответа

Monotouch использует предварительную компиляцию для создания одного статически скомпилированного файла, поэтому он не реализует среду выполнения .Net на iPhone. Monotouch использует привязку к библиотекам iPhone, доступным для C #. Нет перевода на Objective-C.

По сути, это дает вам возможность работать на C # и связанной с ним инструментальной цепочке, открывая при этом вызовы библиотек базовой ОС iPhone.

Мигель ди Икаса немного объяснил это в подкасте Stackoverflow, где он был гостем. ссылка

8
ответ дан 30 November 2019 в 15:51
поделиться

MonoTouch не является переводчиком. Это просто среда выполнения Mono, работающая на iPhone, с некоторыми причудливыми уловками, чтобы сделать ее совместимой с ограничениями iPhone.

Обычная «среда выполнения» Mono - это не только JIT, она также обрабатывает сборщик мусора, отражение, уровень ввода-вывода, потоки, исключения и т. д. Есть также библиотеки классов. Чтобы ваше приложение работало на iPhone, большая часть этого должна быть включена в приложение. Похудение представляет некоторые проблемы. Кроме того, iPhone предотвращает создание кода времени выполнения JIT, запускает только подписанный код и не допускает динамических библиотек.

MonoTouch использует компоновщик IL для объединения только тех частей библиотек классов, которые использует ваш код, в один двоичный файл IL. Затем он использует компиляцию AOT для предварительной генерации всего собственного кода, который JIT обычно генерирует из IL, а затем связывает его вместе со средой выполнения без JIT в один собственный двоичный файл, который может быть подписан. Наконец, IL удаляется из управляемого двоичного файла. оставляя только метаданные.

39
ответ дан 30 November 2019 в 15:51
поделиться

Monotouch предположительно является портом Mono для iPod.

Сам Mono является реализацией среды выполнения .NET (и некоторых инструментов разработки) с открытым исходным кодом в различных средах * nix.

] Это был огромный труд, возглавляемый Мигелем де Икаса, который рано осознал важность .NET и приступил к его переносу на открытые платформы. Между прочим, он получил большую поддержку со стороны самой MicroSoft, поскольку MONO обеспечил взаимозаменяемость между родным .NET и моно.

Итак, первый ответ - вам нужно быть хорошо организованным, трудолюбивым гением.

Второй ответ - больше. Компетентность. «Полный по Тьюрингу» - это минимальный набор функций, необходимый системе, чтобы считаться программируемым компьютером. На самом деле это очень маленький набор - вычитание, сравнение, разветвление, чтение и сохранение.

Теория такова, что любой "Тьюринг полный" система может делать все, что может делать любая другая система "Turing Complete". Итак, учитывая любую достаточно полную среду языка программирования, вы должны иметь возможность эмулировать ее с помощью другой программной среды.

Существует множество примеров этого. Jpython запускает эмуляцию Python C в Java JVM. Два моих личных фаворита - это , который запускает оригинальные игры zX Spectrum в вашем браузере и ассемблерный автомат Knuth MIX , оба являются чистым javascript.

0
ответ дан 30 November 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: