
рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХрд▓рдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдИ рдЕрдиреНрдп рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЦреБрдж рдПрдХ рдмрдбрд╝рд╛ рдФрд░ рднрдпрд╛рдирдХ рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЬрд╛рджреВ рдХреА рдорджрдж рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрд╕реЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рднреА рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдореИрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рд▓реЗрдЦ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ 4 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛:
- рдШрдЯрдХреЛрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд▓реЛрдХрди
- рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛,
- рдордзреНрдпрд╡рд░реНрддреА рднрд╛рд╖рд╛,
- LLVM IR рдФрд░ рдХреЛрдб рдЬрдирд░реЗрд╢рдиред
рддреАрд╡реНрд░
рд╕реНрд╡рд┐рдлреНрдЯ рдЕрдм рджреЛ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред рдЗрд╕ рджреМрд░рд╛рди, рд╕рдореБрджрд╛рдп рд╕реЗ рдХрдИ рд╕реБрдзрд╛рд░ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдПред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдЗрдЯ рдкрд░ , рд╕рд╛рде рд╣реА рдордВрдЪ рдкрд░ рднреА рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣рд╛рдВ рдЖрдк рднрд╛рд╖рд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдпрд╛ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рд╕реНрд╡рд┐рдлреНрдЯ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп

рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ, рдмреЗрд╢рдХ, рд╕рдВрдХрд▓рдХ рдФрд░ рдорд╛рдирдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИрдВред рд╡реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд╡рд┐рднрд╛рдЬреНрдп рд╣реИрдВред
рд╕рдВрдХрд▓рдХ C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ stdlib рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рднрд╛рд╖рд╛ рдореЗрдВ рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдмрд┐рд▓рд┐рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕рдВрдХрд▓рдХ рдХрд╛рд░реНрдпреЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рд╣реИред рдпрд╣ рдЙрд╕реЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдЕрднреНрдпрд╛рд╡реЗрджрди рдФрд░ рдХрдЪреНрдЪреЗ рдмрд┐рдВрджреБрдУрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рдЬреА рдкрд╣реБрдБрдЪ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЧреИрд░-рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрд╕реНрдерд╛ рдХреЗ рдирд╛рдо рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рдкрдврд╝реЗрдВ рдпрд╣рд╛рдБ
- рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХреЛрдб рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдирд░реЗрдЯ рдпреЛрд░ рдмрд╛рдпрд▓рд░рдкреНрд▓реЗрдЯ (GYB) рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдб рдЬрдирд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдорддреМрд░ рдкрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдХреБрд▓ рдореЗрдВ, 3 рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдХреЛрд░ред рдЕрдкрдиреЗ рд╕рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдХрд░реНрдиреЗрд▓ред рд╕ рд╕ рд╕ ред
- рд░рдирдЯрд╛рдЗрдоред рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рд╕рдВрдХрд▓рдХ рдХреЗ рдмреАрдЪ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рддред рд╡рд╣ рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯрд┐рдВрдЧ, рд╕реНрдореГрддрд┐, рдкреНрд░рддрд┐рдмрд┐рдВрдм рдФрд░ рднрд╛рд╖рд╛ рдХреА рдЕрдиреНрдп рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред C ++ рдФрд░ Objective-C рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИред рд╕ рд╕ рд╕ ред
- рдПрд╕рдбреАрдХреЗ рдУрд╡рд░рд▓реЗред рдлрд╛рдЙрдВрдбреЗрд╢рди рдФрд░ рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рд░реИрдкрд░реНрд╕ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рд┐рдлреНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреЗ рд╣реИрдВред рд╕ рд╕ рд╕ ред
рдЕрдиреНрдп рдЙрдкрдкреНрд░рдХрд╛рд░

рд╕рдВрдХрд▓рдХ рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЙрдкрдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВред
SourceKit
рдЖрдИрдбреАрдИ рд╕рдкреЛрд░реНрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ : рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ, рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ, рдХреЛрдб рдкреВрд░рд╛ рдХрд░рдирд╛ рдЖрджрд┐ред
SourceKit-LSP
SourceKit рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рд┐рдлреНрдЯ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрд╕рдкреА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ред рдЖрдк рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░
рд╕реНрд╡рд┐рдлреНрдЯ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ ред
рдЖрдзрд╛рд░
рдлрд╛рдЙрдВрдбреЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдкреЛрд░реНрдЯ , рдЬреЛ рдХрд┐ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП Apple OS рдХреЗ рд▓рд┐рдП рдХреЛрд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
libdispatch (gcd)
рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╕реАрдбреА ред
XCTest
рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП XCTest ред
LLDB
рд╕реНрд╡рд┐рдлреНрдЯ рдФрд░ рдЖрд░рдИрдкреАрдПрд▓ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрд▓рдПрд▓рдбреАрдмреА ред
рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдкреНрд▓реЗрдЧреНрд░рд╛рдЙрдВрдбрд╕реБрдкреЛрд░реНрдЯ рдФрд░ рдкреНрд▓реЗрдЧреНрд░рд╛рдЙрдВрдбрд▓реЙрдЧрд░ред рд╡реЗ рдХреНрд░рдорд╢рдГ рдПрдХреНрд╕рдХреЛрдб рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╕реБрдВрджрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
llbuild
рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдВ ред
gyb
рдХреЛрдб рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛ ред
libcxx
рдорд╛рдирдХ C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ред
рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░

рд╡реНрдпрд╛рдкрдХ рдЕрд░реНрдереЛрдВ рдореЗрдВ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬреЛ рдХреЛрдб рдХреЛ рдПрдХ рднрд╛рд╖рд╛ рд╕реЗ рджреВрд╕рд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдмрд╛рд░, рд╕рдВрдХрд▓рди рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдорд╢реАрди рдХреЛрдб (рдпрд╛ рдПрдХ рдФрд░ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЕрдХреНрд╕рд░ рддреАрди рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдлреНрд░рдВрдЯреЗрдВрдб, рдорд┐рдбрд▓реЗрдВрдб, рдмреИрдХреЗрдВрдбред рдкрд╣рд▓рд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬреЛ рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдорд┐рдбрд▓реЗрдВрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмреИрдХрдПрдВрдб рдЕрдиреБрдХреВрд▓рд┐рдд рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реЗ рдорд╢реАрди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ, рдЕрдиреБрдХреВрд▓рди рдмреИрдХрдПрдВрдб рдореЗрдВ рдлреНрд░рдВрдЯреЗрдВрдб рдФрд░ (рдЕрдзрд┐рдХрд╛рдВрд╢) рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрд░реЗрдЦ рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдг рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
LLVM

рд╕реНрд╡рд┐рдлреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреИрдХрдПрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реИред рдПрд▓рдПрд▓рд╡реАрдПрдо рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрд╣ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (IR) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрд╣ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдб рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ рдЬрд┐рд╕реЗ LLVM рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрд┐рд╕реА рднреА рдордВрдЪ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдПрдХ рдирдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП IR рд╕реЗ рдорд╢реАрди рдХреЛрдб рдХреА рдкреАрдврд╝реА рдХреЛ LLVM рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рднреА рднрд╛рд╖рд╛рдПрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЖрдИрдЖрд░ рдкреАрдврд╝реА рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ, рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗред
рджреВрд╕рд░реА рдУрд░, рдПрдХ рдирдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдИрдЖрд░ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд┐рдЦрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╡рд┐рднрд┐рдиреНрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ред
рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдФрд░ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдПрд▓рдПрд▓рд╡реАрдПрдо рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрдХрд▓рдХ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
IR рдореЗрдВ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ:
- рд╕реНрдореГрддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдкреЗрдбрд╝ред рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЗрдХрд╛рдИ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ: рдлрд╝рдВрдХреНрд╢рди, рдСрдкрд░реЗрдЯрд░, рд▓рд╛рдЗрди, рдкреЙрдЗрдВрдЯрд░, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрд╣ рдкреЗрдбрд╝ IR рдкреАрдврд╝реА рдХреЗ рдордВрдЪ рдкрд░ рдлреНрд░рдВрдЯрдПрдВрдб рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдкрд╛рда рджреГрд╢реНрдпред рдЖрдИрдЖрд░ рдХреЛ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдХреНрд░рдордмрджреНрдз рдмрд┐рдЯ рдкреНрд░рд╛рд░реВрдк "рдмрд┐рдЯрдХреЛрдб" (рдмрд╛рдЗрдЯрдХреЛрдб рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдореЗрдВ)ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмреИрдХрдПрдВрдб рдХреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд▓рд┐рдВрдХ рд╕реНрддрд░ рдкрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХрд░ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рд▓рд┐рдВрдХрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓рд┐рдВрдХрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬреЛ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХрд╛ рд╡рд░реНрдгрди рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред
рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд▓реЗрдЦрдиред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, Apple рдиреЗ рдЦреБрд▓реА рдкрд╣реБрдВрдЪ рдкрд░ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкреЛрд╕реНрдЯ рдХреА рд╣реИрдВред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдФрд░ рдПрдПрд╕рдЯреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред