НОУ ІНТУІТ, Лекція, Введення та огляд платформи

Цей курс присвячений принципам розробки компіляторів. Основне завдання даного курсу – познайомити студентів з базовими ідеями та методами, що використовуються при створенні сучасних компіляторів, а також дати практичні навички написання простих компіляторів. Як цільова платформа для компіляторів у цьому курсі використовується Microsoft . NET. Мається на увазі, що на момент закінчення даного курсу більшість студентів зможуть самостійно створити працюючий компілятор із простої C#-подібної мови програмування.

Курс складається з двох частин – теоретичної та практичної. Теоретична частина організована у вигляді презентацій та даного підручника, а практична частина складається з демонстрацій та самостійних вправ.

Для повноцінного розуміння курсу студенту знадобляться базові знання мови C# та платформи. NET загалом. Але оскільки ці знання ще не можна вважати повсюдно поширеними, курс містить короткий вступ до . NET, яке допоможе студентам отримати уявлення про ці технології, а також оцінити свої знання платформи. NET.

У цій лекції обговорюються такі питання:

  • Загальна ідея архітектури.
  • Переваги та недоліки .NET
  • Схема трансляції програм у .NET
  • Основні риси проміжного уявлення, що використовується в .NET (MSIL)
  • Безпека в .NET
  • Об'єктна модель.
  • Концепція збірки. Маніфест збірки.
  • Модель безпеки у .NET
  • Єдина система типів даних

Огляд платформи

Загальна схема архітектури.

огляд

Вихідні тексти програм компілюються в спеціальнепроміжне уявлення(Microsoft Intermediate Language, часто вживаєтьсяскорочення IL або MSIL). Проміжне подання містить всю необхідну інформацію про програму, але не прив'язане до певної мови програмування або до машинного коду будь-якої цільової платформи . Для запуску програми необхідне спеціальне оточення, яке виконує програми, та бібліотеки динамічної підтримки (execution engine & runtime). Важливою особливістю трансляції в .NET і те, що проміжне уявлення не інтерпретується; натомість використовується механізм компіляції часу виконання, який генерує машинний код. Мається на увазі, що більшість програм, що виконуються на платформі .NET, використовуватиме численні стандартні класи, що надають базову функціональність (від роботи з даними до вбудованих механізмів безпеки).

На наступних слайдах ми коротко зупинимося на основних перевагах .NET платформи в порівнянні з існуючими підходами.