Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π—Π«Πš ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π― Π‘# 2005 И ΠŸΠ›ΠΠ’Π€ΠžΠ ΠœΠ .NET 2.0. 3-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 7

Автор Π­Π½Π΄Ρ€ΡŽ ВроСлсСн

Π–ΠΈΠ·Π½ΡŒ Π² многоязычном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ

Π’ Π½Π°Ρ‡Π°Π»Π΅ процСсса осмыслСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ языково-агностичСской ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET, Ρƒ Π½Π΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ мноТСство вопросов ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ: "Если всС языки .NET ΠΏΡ€ΠΈ компиляции ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² "управляСмый ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄", Ρ‚ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ сущСствуСт Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π° мноТСство компиляторов?". ΠžΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° этот вопрос ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΡ‹, программисты, Π±Ρ‹Π²Π°Π΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠ²Π΅Ρ€Π΅Π΄Π»ΠΈΠ²Ρ‹, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ касаСтся Π²Ρ‹Π±ΠΎΡ€Π° языка программирования (я здСсь Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅). НСкоторыС ΠΈΠ· нас ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ языки с многочислСнными Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ с запятыми ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками, Π½ΠΎ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов. Π”Ρ€ΡƒΠ³ΠΈΠΌ нравятся языки, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ "чСловСчСскиС" синтаксичСскиС лСксСмы (ΠΊΠ°ΠΊ Visual Basic .NET). А ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ своСго ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° большой Π­Π’Πœ ΠΈ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ пСрСнСсти Π΅Π³ΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ .NET (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ COBOL .NET).

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ скаТитС чСстно: Ссли Π±Ρ‹ Microsoft ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»Π° СдинствСнный "ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ" язык .NET, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Π±Π°Π·Π΅ сСмСйства BASIC, Ρ‚ΠΎ всС Π»ΠΈ программисты Π±Ρ‹Π»ΠΈ Π±Ρ‹ Ρ€Π°Π΄Ρ‹ Ρ‚Π°ΠΊΠΎΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ? Или Ссли Π±Ρ‹ "ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ" язык .NET Π±Ρ‹Π» основан Π½Π° синтаксисС Fortran, Ρ‚ΠΎ сколько людСй Π² ΠΌΠΈΡ€Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ .NET? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ срСда выполнСния .NET дСмонстрируСт ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ языка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для построСния управляСмого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, программисты .NET ΠΌΠΎΠ³ΡƒΡ‚, Π½Π΅ мСняя своих синтаксичСских ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ, ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ скомпилированными ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ со своими ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΡ‚Π΄Π΅Π»Π°ΠΌΠΈ ΠΈ внСшними организациями (Π½Π΅ обращая внимания Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ язык .NET ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΌ).

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ прСимущСство ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков .NET Π² ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ простого Ρ„Π°ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования ΠΈΠΌΠ΅Π΅Ρ‚ свои ΡΠΈΠ»ΡŒΠ½Ρ‹Π΅ (Π° Ρ‚Π°ΠΊΠΆΠ΅ слабыС) стороны. НапримСр, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки программирования ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ слоТных матСматичСских вычислСний. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ финансовыС ΠΈΠ»ΠΈ логичСскиС вычислСния, взаимодСйствиС с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ ΠΈ Ρ‚.Π΄. Когда прСимущСства ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка программирования ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ с прСимущСствами ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .NET, Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°ΡŽΡ‚ всС.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π½Π΅ выходя Π·Π° Ρ€Π°ΠΌΠΊΠΈ своСго любимого языка .NET. Но, ΠΈΠ·ΡƒΡ‡ΠΈΠ² синтаксис ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка .NET, Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ, особСнно ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚Π°ΠΌ. Если вашСй спСциализациСй являСтся C#, Π½ΠΎ Π²Ρ‹ оказались Π½Π° ΡƒΠ·Π»Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ "привязан" ΠΊ Visual Basic .NET, Ρ‚ΠΎ смоТСтС ΠΏΠΎΡ‡Ρ‚ΠΈ сразу Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ (ΠΏΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅!), воспользовавшись ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ прСимущСством .NET. На этом ΠΈ остановимся.

ΠšΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ .NET

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ язык .NET Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ для программирования, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ хотя Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ .NET-Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΊ COM-сСрвСры ΠΈ нСуправляСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Win32 (*.dll ΠΈΠ»ΠΈ *.exe), ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ½ΠΎΠ΅. НапримСр, Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ .NET-Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ *.dll Π½Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для упрощСния ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ со срСдой выполнСния COM (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ .NET – это Π½Π΅ COM). Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ .NET-Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π½Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ COM-Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π½Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² рССстрС систСмы. НавСрноС, самым Π²Π°ΠΆΠ½Ρ‹ΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ .NET-Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ содСрТат Π½Π΅ спСцифичСскиС для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ инструкции, Π° нСзависимыС ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ IL-инструкции (Intermediate Language – ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ язык) ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ². На рис. 1.2 это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ схСматичСски.

Рис. 1.2. ВсС .NET-компиляторы Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ IL-инструкции ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сокращСния "IL" здСсь умСстно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… слов. Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ .NET ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ для IL Π±Ρ‹Π»ΠΎ Microsoft (intermediate Language (MSIL). Однако Π² Π²Ρ‹ΡˆΠ΅Π΄ΡˆΠ΅ΠΉ вСрсии .NET это Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° OIL (Common Intermediate Language – ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ язык). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ слСдуСт Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² публикациях, посвящСнных .NET, сокращСния IL, MSIL ΠΈ CIL ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. Π’ соотвСтствии с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ, принятой сСгодня, Π² тСкстС этой ΠΊΠ½ΠΈΠ³ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сокращСниС CIL.

ПослС создания *.dll ΠΈΠ»ΠΈ *.exe с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ подходящСго .NET-компилятора, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ упаковываСтся Π² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² .NET имССтся Π² Π³Π»Π°Π²Π΅ 11. Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ нашС обсуТдСниС срСды выполнСния .NET, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ основныС особСнности Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° этих Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ содСрТит ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ CIL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ Java Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ компилируСтся Π² спСцифичСскиС для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ инструкции, ΠΏΠΎΠΊΠ° это Π½Π΅ станСт Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ "Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π±Π»ΠΎΠΊ CIL-инструкций (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°) выполняСтся ссылка для Π΅Π³ΠΎ использования Π² срСдС выполнСния .NET.

Π’ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ CIL-инструкциям, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ содСрТат ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ особСнности ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ "Ρ‚ΠΈΠΏΠ°" Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ .NET-Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. НапримСр, Ссли Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ SportsCar, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты, ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс SportsCar ΠΈ интСрфСйсы, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹Π΅ SportsCar (Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ описания всСх Ρ‡Π»Π΅Π½ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠΌ SportsCar.

ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ .NET Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ COM. Π’Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ассоциированных Ρ‚ΠΈΠΏΠΎΠ², Π° это ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ бинарная вСрсия IDL-ΠΊΠΎΠ΄Π° (Interface Definition Language – язык опрСдСлСния интСрфСйса). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° использования COM-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ эта информация Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°, ΠΈ IDL-ΠΊΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ внСшниС сСрвСры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ функционирования Π΄Π°Π½Π½ΠΎΠ³ΠΎ COM-сСрвСра. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ этому ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ .NET ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ .NET-компилятором.

НаконСц, Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ CIL ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠ², сами ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Ρ‹Π²Π°Π½ΠΈΠ΅ манифСст (manifest). ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ "ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π΅" (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ строк ΠΈ графичСских рСсурсов) ΠΈ список всСх ссылок Π½Π° внСшниС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ функционирования. Из ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π² Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для исслСдования Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ манифСста.

ΠžΠ΄Π½ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ .NET- это просто Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (*.dll ΠΈΠ»ΠΈ *.exe). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ строитС *.dll .NET, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ – это ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, Ссли Π²Ρ‹ строитС выполняСмоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΉ систСмы, Ρ„Π°ΠΉΠ» *.exe Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ. Но ΠΈΠ· Π³Π»Π°Π²Ρ‹ 11 Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ соотвСтствиС Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря, Ссли ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля *.dll ΠΈΠ»ΠΈ *.exe, Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ. ΠžΠ΄Π½ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ содСрТит вСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ CIL, ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ манифСст Π² ΠΎΠ΄Π½ΠΎΠΌ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ· мноТСства Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… .NET-Π΅Π΄ΠΈΠ½ΠΈΡ†, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… называСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. ΠŸΡ€ΠΈ этом ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (ΠΎΠ½ называСтся ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ манифСст ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ CIL-инструкции ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²). ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ связанныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ содСрТат манифСст уровня модуля, CIL ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠΎΠ². Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Π² манифСстС ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ³ΠΎ модуля ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° докумСнтируСтся Π½Π°Π±ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… "второстСпСнных" ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Но Π·Π°Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ? Когда Π²Ρ‹ Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ возмоТности инсталляции. НапримСр, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ссылаСтся Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ, Ρ‚ΠΎ срСда выполнСния Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ Π½Π° Π΅Π³ΠΎ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, HardDriveReformatter) Π±Ρ‹Π»ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Если всС ваши Ρ‚ΠΈΠΏΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ собой Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ придСтся Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ большой Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС (Π° это, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ лишнюю Ρ‚Ρ€Π°Ρ‚Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ). Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π½Π° самом Π΄Π΅Π»Π΅ логичСски сгруппирован Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅.

Роль CIL