C # 4 рдореЗрдВ рд╕рдмрд╕реЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдкрд░рд┐рд╡рд░реНрдзрди рдореЗрдВ рд╕реЗ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╣реИред рдпрд╣ рдХрдИ рдмрд╛рд░ рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ DLR (рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд░рдирдЯрд╛рдЗрдо) рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдПред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдбреАрдПрд▓рдЖрд░ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛, рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдХрдордЬреЛрд░ рдФрд░ рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреАрдЖрдИрд╕реА рддрдХрдиреАрдХ (рдкреЙрд▓рд┐рдореЙрд░реНрдлрд┐рдХ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Google V8 рдЗрдВрдЬрди рдореЗрдВ, рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдЖрджреЗрд╢ рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЪрд░ рд╕реЗ рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ (рдЪрд░, рд╕реНрдерд┐рд░, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐) рд╕реЗ рд╣реЛрдЧрд╛ред
рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдХрд╕реМрдЯреА рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рд╕реНрдЯреЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдХреЗ рд╕рдордп рд╡реЗрд░рд┐рдПрдмрд▓ рдЯрд╛рдЗрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЯрд╛рдЗрдк рдХреЛ рдмрд╛рдж рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдФрд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЯрд╛рдЗрдк (рд╡реЗрд░рд┐рдПрдмрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рдордп рдЯрд╛рдЗрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЯрд╛рдЗрдк рдмрд╛рдж рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
C # рдПрдХ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдк рдХреА рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬрдмрдХрд┐ рдкрд╛рдпрдерди рдФрд░ рд░реВрдмреА рдЧрддрд┐рд╢реАрд▓ рд╣реИрдВред
рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдХреА рдХрд╕реМрдЯреА рдкрд░, рдХрдордЬреЛрд░ (рдПрдХ рдЪрд░ рдореЗрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ) рдФрд░ рдордЬрдмреВрдд / рдордЬрдмреВрдд (рдПрдХ рдЪрд░ рдореЗрдВ рд╕рдЦреНрддреА рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
C # 4 рдбрд╛рдпрдирд╛рдорд┐рдХ рдХреАрд╡рд░реНрдб
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдбрд╛рдпрдиреЗрдорд┐рдХ рдХреНрд▓реАрди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдФрд░ рдЖрдпрд░рдирдкреАрдереЙрди рдФрд░ рдЖрдпрд░рдирд░реБрдмреА рдЬреИрд╕реА рдбрд╛рдпрдиреЗрдорд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди C # рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕реНрдЯреЗрдЯрд┐рдХрд▓реА рдЯрд╛рдЗрдкреНрдб рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реБрдХрддрд╛ рд╣реИред
рдЧрддрд┐рд╢реАрд▓ рдХреЗ рддрдВрддреНрд░ рдХреА рд╡рд┐рд╕реНрддреГрдд рдЪрд░реНрдЪрд╛ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ:
рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдФрд░ рд╣рдо рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╣реИ?
рдореИрдВ рддреБрд░рдВрдд рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛: рдЯрд╛рдЗрдкрд┐рдВрдЧ рдордЬрдмреВрдд рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ рд╣реИред
C # рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреНрдп рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЗрдВрдЯ, рдСрдмреНрдЬреЗрдХреНрдЯ, рдЖрджрд┐) рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбрд╛рдпрдиреЗрдорд┐рдХ рдХрд╛ рдХрд┐рд╕реА рднреА рдореВрд▓ BCL рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкреНрд░рддреНрдпрдХреНрд╖ рддреБрд▓рдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп,
рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдирд╛рдо рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЙрдЪрд┐рдд рджреЗрд░ рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рддреЛ, рдлреЙрд░реНрдо рдХрд╛ рдХреЛрдб:
dynamic d = 100; d++;
рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
object d = 100; object arg = d; if (Program.<dynamicMethod>o__SiteContainerd.<>p__Sitee == null) { Program.<dynamicMethod>o__SiteContainerd.<>p__Sitee = CallSite<Func<CallSite, object, object>>.Create(Binder.UnaryOperation(CSharpBinderFlags.None, ExpressionType.Increment, typeof(Program), new CSharpArgumentInfo[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) })); } d = Program.<dynamicMethod>o__SiteContainerd.<>p__Sitee.Target(Program.<dynamicMethod>o__SiteContainerd.<>p__Sitee, arg);
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рдХрд╛рд░
рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдЪрд░
рдбреА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд▓рд╛, Microsoft.CSharp рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдмрд╛рдЗрдВрдбрд░реНрд╕ рдкреНрд▓реЗ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдбреАрдПрд▓рдЖрд░
рдХреЛрдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЧрддрд┐рд╢реАрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдЕрд▓рдЧ
рдбрд╛рдпрдиреЗрдорд┐рдХ рдХреЙрд▓ рдиреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рдпрдВ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред
рддреЛ, рджреГрд╢реНрдп рдХреЛрдб рдХреЗ рд▓рд┐рдП
dynamic d = 100; d++;
рдЗрд╕ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рд╡рд░реНрдЧ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
private static class <dynamicMethod>o__SiteContainerd { // Fields public static CallSite<Func<CallSite, object, object>> <>p__Sitee; }
<> P__Sitee рдлрд╝реАрд▓реНрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХреНрд▓рд╛рд╕ System.Runtime.CompilerServices.CallSite рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
public sealed class CallSite<T> : CallSite where T : class { public T Target; public T Update { get; } public static CallSite<T> Create(CallSiteBinder binder); }
рдпрджреНрдпрдкрд┐
рд▓рдХреНрд╖реНрдп рдХреНрд╖реЗрддреНрд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реЛрддрд╛ рд╣реИ ред рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рд╕рд┐рд░реНрдл рдСрдкрд░реЗрд╢рди рдХреА рднрд┐рдиреНрдирддрд╛ рдирд╣реАрдВ рд╣реИ:
d = Program.<dynamicMethod>o__SiteContainerd.<>p__Sitee.Target(Program.<dynamicMethod>o__SiteContainerd.<>p__Sitee, arg);
CallSite рд╡рд░реНрдЧ рдХреА рд╕реНрдерд┐рд░ рдмрдирд╛рдПрдБ рд╡рд┐рдзрд┐ рд╣реИ:
public static CallSite<T> Create(CallSiteBinder binder) { if (!typeof(T).IsSubclassOf(typeof(MulticastDelegate))) { throw Error.TypeMustBeDerivedFromSystemDelegate(); } return new CallSite<T>(binder); }
рд▓рдХреНрд╖реНрдп рдлрд╝реАрд▓реНрдб рдПрдХ L0 рдХреИрд╢ рд╣реИ (рдЗрд╕рдореЗрдВ L1 рдФрд░ L2 рдХреИрд╢ рднреА рд╣реИрдВ), рдЬреЛ рдХреЙрд▓ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрд▓ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рддрдереНрдп рдкрд░ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрд▓ рдиреЛрдб "рд╕реНрд╡-рд╢рд┐рдХреНрд╖рд╛" рд╣реИ, рдЗрд╕рд▓рд┐рдП, DLR рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рд▓рдХреНрд╖реНрдп рдорд╛рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдбреАрдПрд▓рдЖрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрд░рд┐рдХ рд▓рд┐рдкрд░реНрдЯ рдХрд╛ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ (рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж):
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд░рдирдЯрд╛рдЗрдо рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ (COM, POCO) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛, рд╕рдВрдХрд▓рдХ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд▓реЗрд╕рд░ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, DLR C # рд╕рдВрдХрд▓рдХ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ, рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдФрд░ рд╕рд╛рде рд╣реА рдПрдХ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ IL рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рддрдирд╛рд╡ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рд╡рд╕реНрддреБ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдЬреЛ рддрдм рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдпрд╛ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдЯреНрд░реА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рд▓реИрдореНрдмрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗред
C # рдХрдВрдкрд╛рдЗрд▓рд░ DLR рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдкреЙрд▓рд┐рд╕реА рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдЯреНрд░реА рджреЗрддрд╛ рд╣реИред DLR рддрдм рдЗрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдиреЛрдб рд╕реЗ рдЬреБрдбрд╝реЗ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рд╕рд╛рдЗрдЯ рд╡рд░реНрдЧ рдХреА
рдЕрджреНрдпрддрди рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд▓рдХреНрд╖реНрдп рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбрд╛рдпрдиреЗрдорд┐рдХ рдСрдкрд░реЗрд╢рди рдХреЛ рдЗрдирд╡реЙрдЗрд╕ рдХрд░рддреЗ рд╕рдордп, рдЕрджреНрдпрддрди рдЧреБрдг рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдмрд╛рдЗрдВрдбрд░реЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЕрдЧрд▓реА рдмрд╛рд░ рдХреЙрд▓ рдЖрддреА рд╣реИ, рддреЛ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢
рдбрд╛рдпрдиреЗрдорд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рдФрд░ рдХреЙрд▓ рдХреЗ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреА рдЧрдИ рдЦреЛрдЬреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рд╕реАрдзрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрдХреНрд╖рд╛ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрднрд╡рддрдГ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рд╡рд┐рдзрд┐ рддрд░реНрдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ (рдпрд╛ рдХреЛрдб рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдорд╛рди), рдЖрдк рд░рдирдЯрд╛рдЗрдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдпрд╛ рдХреЙрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдбрд╛рдпрд▓ рд╕рд╛рдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдереИрддрд┐рдХ рдкреНрд░рдХрд╛рд░ рдЖрдкрдХреЛ рд╕рдм рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдЪрд╛рд╣рд┐рдПред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдмрд╛рд░-рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рддрдХ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрдгрд╛рдВрдХ x рдФрд░ y рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдкреНрд░реЗрд╢рди x + y рдХреЗ рдорд╛рди рдХреА рдкрд╣рд▓реА рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдПрдХ рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХрд╛ рдПрдХ рд╕рдЯреАрдХ рдХрд╛рд░реНрдп рдпрд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдлрд┐рд░, рдмрд╛рдж рдХреА рд╕рднреА рдЧрдгрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдСрдлрд╝ рдкреАрд╕ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреИрд╢рд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬреНрдо (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ) рдЬрдм рдХреЙрд▓ рдиреЛрдб рд╕реЗрд▓реНрдл-рд▓рд░реНрдирд┐рдВрдЧ рд╣реИ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдЗрдирд▓рд╛рдЗрди рдХреИрд╢ рдХрд╣рд▓рд╛рддрд╛ рд╣реИред рдХреНрдпреЛрдВ?
рдмрд╣реБрд░реВрдкрд┐рдпрд╛ ред рдбрд╛рдпрдирд╛рдорд┐рдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрд▓ рдиреЛрдб рдХрд╛ рд▓рдХреНрд╖реНрдп рдХрдИ рд░реВрдк рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
рдЗрдирд▓рд╛рдЗрдиред CallSite рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЙрд▓ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╣реЛрддрд╛ рд╣реИред
рдХреИрд╢ред рдХрд╛рд░реНрдп рд╡рд┐рднрд┐рдиреНрди рдХреИрд╢ рд╕реНрддрд░реЛрдВ (L0, L1, L3) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред