Некоторое время назад компания Apple опубликовала исходные коды языка Swift. С тех пор LLVM получил еще более широкую популярность в среде мобильных разработчиков. Тем не менее, не все понимают роль LLVM в процессе компиляции, и не все осознают мощь этого фреймворка.
Цель моего доклада — рассказать о том, как использовать LLVM в связке с языком Swift и показать, что это не "rocket science".
В своем докладе я расскажу о том:
- что такое LLVM и какова его роль в процессе компиляции.
- что происходит с программой на пути от исходного код в код машинный
- какие есть практические применения у LLVM в контексте разработки прикладных приложений
- как можно начать использовать LLVM без боли уже сейчас
В качестве заключения предоставлю список теоретических и практических материалов для дальнейшего изучения.
41. 41
$ nm main.o
U _calc
0000000000000000 T _main
U _printf
$ ld -lc calc.o main.o -o main
$ nm main
0000000000001f30 T _calc
0000000000001fc8 S _factor
0000000000001f60 T _main
U _printf
65. Design decisions that shaped LLVM
http://aosabook.org/en/llvm.html
Implementing a Language with LLVM
http://llvm.org/docs/tutorial/index.html
Various articles about LLVM
http://lowlevelbits.org/categories/llvm/
LLVM + Swift Xcode Template
https://github.com/AlexDenisov/LLVMTemplate
Kaleidoscope in Swift
https://github.com/AlexDenisov/SwiftKaleidoscope