Системне програмування, частина 2
Спеціальність: Комп'ютерна інженерія
Код дисципліни: 6.123.00.O.032
Кількість кредитів: 5.00
Кафедра: Електронні обчислювальні машини
Лектор: Ногаль Марія Василівна
Семестр: 5 семестр
Форма навчання: денна
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей:
Загальні компетентності:
- ЗК3: Здатність застосовувати знання у практичних ситуаціях;
Фахові компетентності:
- ФК2: Здатність використовувати сучасні методи і мови програмування для розроблення алгоритмічного та програмного забезпечення;
- ФК3: Здатність створювати системне та прикладне програмне забезпечення комп’ютерних систем та мереж.
Результати навчання: Внаслідок вивчення навчальної дисципліни студент повинен бути здатним продемонструвати такі результати:
• знати вимоги до системних програм і розуміти вплив архітектури комп’ютера на процес створення системних програм;
• володіти методикою створення типових елементів системних програм з використанням технології багатомодульного програмування з використанням низькорівневого і високорівневого програмування;
• вміти використовувати API-інтерфейс операційних систем при вирішенні системних задач;
• вміти вирішувати задачі з використанням динамічних бібліотек;
• знати принципи та методи побудови компонент систем програмування;
• вміти створювати програмні модулі для реалізації компонент систем програмування.
В результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання:
ЗН3 Знати новітні технології в галузі комп’ютерної інженерії.
УМ1 Вміти застосовувати знання для ідентифікації, формулювання і розв’язування технічних задач спеціальності, використовуючи методи, що є найбільш придатними для досягнення поставлених цілей.
УМ5 Вміти розробляти програмне забезпечення для вбудованих і розподілених застосувань, мобільних і гібридних систем, розраховувати, експлуатувати типове для спеціальності обладнання.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни:
Програмування, ч.1 і ч.2
Системне програмування, ч.1
Супутні і наступні навчальні дисципліни:
Інженерія програмного забезпечення
Системне програмне забезпечення
Короткий зміст навчальної програми: Дисципліна розглядає методи вирішення системних задач в сучасних операційних системах та надає навики розробки елементів системних програм.
Розширює вже сформовані попередніми дисциплінами навички в сфері програмування, формує практичні навички створення системних програм з врахуванням архітектури комп’ютера.
Надає обсяг знань про системи програмування і їх основні компоненти.
Надає обсяг знань про принципи та способи побудови основних компонент систем програмування, про базові структури даних, які використовуються при їх побудові.
Ставить на меті виробити у студентів чітке та систематизоване уявлення про склад і призначення систем програмування, формує навички побудови програмних модулів для реалізації компонент систем програмування.
Опис: Розділ № 1. СИСТЕМИ ПРОГРАМУВАННЯ
Тема №1. Основні компоненти систем програмування.
Вступ в дисципліну.
Ієрархія програмного забезпечення.
Етапи створення виконуваного коду програми.
Модульне програмування і передача параметрів між модулями.
Угоди про виклики.
Тема № 2. Транслятори.
Компілятори, інтерпретатори, асемблери.
Макропроцесори, препроцесори, макроасемблери.
Тема № 3. Компонувальники.
Статичне і динамічне компонування.
Завантажувачі.
Виконувані файли.
Розділ № 2. ПРОЕКТУВАННЯ ТРАНСЛЯТОРІВ
Тема № 4. Формальні мови і граматики.
Визначення граматики.
Граматики Хомського.
Розпізнавачі.
Скінченні автомати.
Магазинні автомати.
Регулярні вирази.
Тема № 5. Структура транслятора.
Лексичний аналіз. Синтаксичний аналіз. Генерація коду. Оптимізація коду.
Тема № 6. Лексичний аналіз.
Лексичні класи.
Таблиці представлення лексем.
Тема № 7. Синтаксичний аналіз.
Класи синтаксичних аналізаторів.
Низхідні аналізатори.
Метод рекурсивного спуску.
Висхідні аналізатори.
Тема № 8. Генерація вихідного коду.
Проміжне представлення програм.
Оптимізація вихідного коду.
Методи та критерії оцінювання: Для діагностики знань проводиться поточний та екзаменаційний контроль.
Поточний контроль на практичних і лабораторних заняттях проводиться з метою виявлення готовності студента до занять у таких формах:
• вибіркове усне опитування перед початком занять;
• оцінка активності студента у процесі занять, внесених пропозицій, оригінальних рішень, уточнень і визначень, доповнень попередніх відповідей і т. ін.
Контрольні запитання поділяються на:
а) тестові завдання – вибрати вірні відповіді;
б) проблемні – створення ситуацій проблемного характеру;
в) питання-репліки – виявити причинно-наслідкові зв’язки;
г) ситуаційні завдання – визначити відповідь згідно певної ситуації;
д) питання репродуктивного характеру – визначення практичного значення.
Екзаменаційний контроль проводиться відповідно до робочого навчального плану у вигляді письмово-усного екзамену, який проводиться в кінці семестру і включає в себе відповідь на відповідний білет на екзамені.
Критерії оцінювання результатів навчання: Протягом семестру здобувачі освіти виконують лабораторні роботи. При оцінюванні лабораторної роботи береться до уваги вчасність виконання роботи, відповідність завданню, якість оформлення звіту, правильність відповідей на поставлені запитання.
Здобувач освіти допускається до здачі екзамену за умови здачі усіх лабораторних робіт.
Екзамен здобувачі освіти складають у письмово-усній формі з фіксацією відповідей на екзаменаційному листі.
Остаточна оцінка за дисципліну формується як сума балів за поточний і екзаменаційний контроль.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Рекомендована латература:
1) Основи проектування трансляторів: Конспект лекцій : [Електронний ресурс] : навч. посіб. для студ. спеціальності 123 – «Комп’ютерна інженерія» / О. І. Марченко ; КПІ ім. Ігоря Сікорського. – Київ: КПІ ім. Ігоря Сікорського, 2021. – 108 с.
2) Формальні мови, граматики та автомати: Навчальний посібник / Гавриленко С.Ю. – Харків: НТУ « ХПІ », 2021. – 133 с.
3) Сопронюк Т.М. Системне програмування. Частина І. Елементи теорії формальних мов: Навчальний посібник у двох частинах. – Чернівці: ЧНУ, 2008. – 84 c.
4) Сопронюк Т.М. Системне програмування. Частина ІІ. Елементи теорії компіляції: Навчальний посібник у двох частинах. – Чернівці: ЧНУ, 2008. – 84 c.
5) Alfred V. Aho, Monica S. Lam, Ravi Seth, Jeffrey D. Ullma. Compilers, principles, techniques, and tools, Second Edition, New York, 2007. – 1038 c.
Інформаційні ресурси:
1) Системне програмування, частина 2 [Електронний ресурс] – Режим доступу до ресурсу: https://vns.lpnu.ua/course/view.php?id=7714.
2) MIT OpenCourseWare. Computer Language Engineering [Електронний ресурс] – Режим доступу до ресурсу: https://ocw.mit.edu/courses/6-035-computer-language-engineering-spring-2010.
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою:
вул. Карпінського, 2/4, І-й н.к., кімн. 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).