Программирование на языках Lua и C
Преподаватель: Борис Нагаев, bnagaev@gmail.com
Факультатив проходит по пятницам, пятой парой (17:20), в компьютерном классе 207
Список слушателей (получившие зачёт)
Уже больше 40 лет язык C остается одним из самых эффективных и простых в использовании языков программирования. Освоение языка C поможет лучше понимать структуры данных и алгоритмы информатики. Язык Lua является одним из самых простых в освоении языков, в то же время поддерживает множество подходов к программированию. Среди скриптовых языков Lua примечатален простой интеграцией с языком C, что позволяет совмещать эти два языка. Lua используется в качестве скриптового языка многих программ, в прикладных программах биоинформатики, в интернет-сервисах, в машинном обучении, в графических программах, в играх, в базах данных, при обучении программированию.
Известно, что многие студенты прослушали теоретический курс информатики и имели опыт программирования. Каждое занятие планируется начинать с короткой контрольной по пройденному материалу. Факультатив представляет собой несколько блоков: основы Lua, основы C, углубленный Lua, интерфейс между Lua и C, практики программирования. В течение факультатива студенты будут писать и совершенствовать учебный проект.
Программа факультатива:
- Операторы ветвления и цикла, выражения, функции в C.
Указатели в С. Динамические массивы. Строки. Указатель на функцию. Типы памяти в C.
- Стандартная библиотека языка C. Обзор заголовочных файлов. Функции: математические, для работы со строками, ввод-вывод, управление памятью.
Интерфейс между языками Lua и C. Виртуальный стек Lua. Функции для обмена данными между C и Lua.
- Отладка кода на Lua и C. Ошибки при работе с памятью в C. Утилиты отладчик и профилировщик.
- Практики публикации кода. Публикация собственного модуля на github и luarocks.
Надъязык MoonScript, транслируемый в Lua. Практики объектно-ориентированного программирования.
В ходе посещения факультатива и выполнения домашних заданий студент получит представление о практиках программирования и научится программировать на языках Lua и C, напишет собственную программу на Lua, часть которой впоследствии перепишет на языке C, опубликует код в сервисах github и luarocks. Темы учебных проектов будут предлагать сами студенты, кроме того будут предложены стандартные алгоритмы биоинформатики в качестве учебных проектов.
На зачёте по факультативу проверяется понимание изложенных практик программирования, умение писать код на Lua и C и выполнение учебного проекта.
Литература
Учебник по Lua. Кратко описывает всё и является официальным определением языка.
Книга "Программирование на Lua". В литературной форме описывает язык и примеры использования. Включает примеры кода.
The C Programming Language. Ritchie & Kernighan
Лекции по C с сайта http://info.fenster.name/
Временное переопределение таблицы глобальных переменных. Пример отсюда: http://lua-users.org/lists/lua-l/2015-03/msg00180.html
- local _ENV= {print=function()
end print "normal stuff, again"- print "not normal"
end} print()