Movatterモバイル変換


[0]ホーム

URL:


Перейти до вмісту
Вікіпедія
Пошук

Common Intermediate Language

Матеріал з Вікіпедії — вільної енциклопедії.

Common Intermediate Language(скороченоCIL) — проміжна мова, розроблена корпорацієюMicrosoft для платформи.NET Framework.JIT-компілятор, який перетворює CIL код вмашинний код, є частиною віртуальної машиниCLR (англ.Common Language Runtime) — спільного середовища виконання мов для платформи .NET. Раніше ця мова мала назву Microsoft Intermediate Language, але згодом була перейменована для створення стандартуECMA-335.

Усі компілятори, які забезпечують підтримку платформи .NET, повинні транслювати код, який написаний на мовах високого рівня, в проміжний код на мові CIL.[1]

Код на CIL генерують усі компілятори для платформи .NET самої фірми Microsoft, які входять в середовище розробки Visual Studio (C#, Managed C++, Visual Basic .NET, Visual J# .NET).

Мова CIL своїм синтаксисом і мнемонікою нагадує мовуасемблера. Її можна розглядати як асемблер віртуальної машини .NET. В той самий час мова CIL містить деякі достатньо високорівневі конструкції, які підвищують її рівень в порівнянні з асемблером для будь-якої реально існуючої машини, тому писати код безпосередньо на CIL порівняно простіше, ніж на асемблері для реальних машин. CIL можна розглядати як своєрідний «високорівневий асемблер».

Мову CIL доволі часто називають просто IL (англ.Intermediate Language), тобто «проміжна мова».

Синтаксис і мнемоніка мови CIL описані стандартом ECMA-335. Спецификація CIL є складовою частиною специфікаціїCommon Language Infrastructure (CLI).[2]

Загальна інформація

[ред. |ред. код]

Під час компіляціїмов програмування CLIкод перекладається в код CIL, а не воб’єктний код, специфічний для платформи чи процесора. CIL — це незалежний від процесора та платформи набір інструкцій, який можна виконувати в будь-якому середовищі, що підтримує загальну мовну інфраструктуру, наприклад у середовищі виконання .NET у Windows або крос-платформному середовищі виконання Mono. Теоретично це позбавляє від необхідності розповсюджувати різні виконувані файли для різних платформ і типів ЦП. Код CIL перевірено на безпеку під час виконання, забезпечуючи кращу безпеку та надійність, ніж скомпільовані виконувані файли.

Приклад коду

[ред. |ред. код]

Приклад програмиHello, World, написаної на CIL. Програма виводить стрічку «Hello, world!».

.assemblyHello{}.methodpublicstaticvoidMain()cilmanaged{.entrypoint.maxstack1ldstr"Hello,world!"callvoid[mscorlib]System.Console::WriteLine(string)ret}

Ще одна програма (на C#),

staticvoidMain(string[]args){for(inti=2;i<1000;i++){for(intj=2;j<i;j++){if(i%j==0)gotoouter;}Console.WriteLine(i);}outer:Console.ReadKey();}/* Output:23*/

яка на CIL виглядає так:

.methodprivatehidebysigstaticvoidMain(string[]args)cilmanaged{.entrypoint.maxstack2.localsinit([0]int32i,[1]int32j)IL_0000:ldc.i4.2stloc.0br.sIL_001fIL_0004:ldc.i4.2stloc.1br.sIL_0011IL_0008:ldloc.0ldloc.1rembrfalse.sIL_0000ldloc.1ldc.i4.1addstloc.1IL_0011:ldloc.1ldloc.0blt.sIL_0008ldloc.0callvoid[mscorlib]System.Console::WriteLine(int32)ldloc.0ldc.i4.1addstloc.0IL_001f:ldloc.0ldc.i40x3e8blt.sIL_0004ret}

Примітки

[ред. |ред. код]
  1. Building a Simple .NET Compiler (англійською) . Архіворигіналу за 31 січня 2019. Процитовано 31 січня 2019.
  2. Mamone, Mark (2006).Practical Mono (Англ.) . Apress. с. 3—5.ISBN 9781430200970. Архіворигіналу за 31 січня 2019. Процитовано 31 січня 2019.

Посилання

[ред. |ред. код]
СтандартиEcma International
Програмні інтерфейси
Файлові системи (стрічки)
Файлові системи (диски)
Графічні
Мови програмування
Інтерфейси радіозв'язку
Інші
Отримано зhttps://uk.wikipedia.org/w/index.php?title=Common_Intermediate_Language&oldid=45302686
Категорії:
Прихована категорія:

[8]ページ先頭

©2009-2026 Movatter.jp