Системне програмування, частина 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-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).