Подтвердить что ты не робот

Скомпилирует ли Swift собственный код?

Простой вопрос на самом деле, однако, похоже, нет прямого ответа в текущей документации разработчика.

Скомпилируется ли Swift на машинный язык (например, сборка) или компилируется какая-либо промежуточная форма, которая затем запускается на виртуальной машине?

(Я подозреваю, что это так, но, будучи незнаком с развитием в мире Apple, мне не ясно, как это может быть для кого-то, кто есть.)

4b9b3361

Ответ 1

Да, он компилируется для машинного языка посредством битового кода llvm и, как сказал @connor, работает поверх Objective-C времени выполнения.

Ответ 2

Swift не только компилируется в собственный машинный код, но также был специально разработанный для него. В отличие от, например, Java, разработанная специально как язык JITed. Под этим я подразумеваю, что Swift достигает наилучшей производительности с помощью компиляции заранее, в то время как Java больше всего выигрывает от JITing.

Есть много причин для этих вариантов дизайна, но среди них заключается в том, что Swift имеет гораздо больший объем, чем управляемые языки, такие как Java. Он должен работать как на настольных компьютерах, так и на телефонах с более ограниченным оборудованием. Вы можете использовать Swift как язык системного программирования, в отличие от С#, Java или Python, поскольку он имеет небольшие требования к времени выполнения и позволяет довольно детально управлять памятью. Поэтому теоретически нужно иметь возможность создавать ядро ​​ОС с Swift, что было бы сложно с Java.

Ответ 3

Swift, например Objective-C, скомпилируется в машинный код, который выполняется во время выполнения Objective-C.

Ответ 4

Swift, как и objective-c, компилируется в собственный код, используя llvm

Хорошее объяснение можно найти в Apple, совершенно секретный Язык Swift вырос из работы, чтобы поддерживать Objective C, который теперь нацелен на замену

Из этой статьи, говорящей о Swift

Компилятор оптимизирован для производительности, а язык - оптимизированный для разработки, без компрометации.