Kodomo

Пользователь

Программирование на языках Lua и C

Преподаватель: Борис Нагаев, bnagaev@gmail.com

Факультатив проходит по пятницам, пятой парой (17:20), в компьютерном классе 207

КОНТРОЛЬНАЯ РАБОТА (решения)

Список слушателей (получившие зачёт)

Уже больше 40 лет язык C остается одним из самых эффективных и простых в использовании языков программирования. Освоение языка C поможет лучше понимать структуры данных и алгоритмы информатики. Язык Lua является одним из самых простых в освоении языков, в то же время поддерживает множество подходов к программированию. Среди скриптовых языков Lua примечатален простой интеграцией с языком C, что позволяет совмещать эти два языка. Lua используется в качестве скриптового языка многих программ, в прикладных программах биоинформатики, в интернет-сервисах, в машинном обучении, в графических программах, в играх, в базах данных, при обучении программированию.

Известно, что многие студенты прослушали теоретический курс информатики и имели опыт программирования. Каждое занятие планируется начинать с короткой контрольной по пройденному материалу. Факультатив представляет собой несколько блоков: основы Lua, основы C, углубленный Lua, интерфейс между Lua и C, практики программирования. В течение факультатива студенты будут писать и совершенствовать учебный проект.

Программа факультатива:

  1. Общие сведения о языке Lua. Типы данных. Выражения. Операторы ветвления и цикла. Комментарии. Утилиты lua и luaprompt.

  2. Типы переменных, функции, видимость переменных (Lua).

  3. Подключение модулей в Lua. Создание собственных модулей. Обзор стандартной библиотеки Lua. Репозиторий LuaRocks и одноимённая утилита.

  4. Общие сведения о языке C. Этапы сборки кода на языке C, используемые утилиты. Препроцессор. Заголовочные файлы. Комментарии.

  5. Числовые типы данных в С. Статические массивы. Структуры.

  6. Операторы ветвления и цикла, выражения, функции в C.
  7. Указатели в С. Динамические массивы. Строки. Указатель на функцию. Типы памяти в C.

  8. Стандартная библиотека языка C. Обзор заголовочных файлов. Функции: математические, для работы со строками, ввод-вывод, управление памятью.
  9. Обработка ошибок в Lua. Замыкания и функции высших порядков, сопрограммы в Lua. Метатаблицы и метаметоды.

  10. Интерфейс между языками Lua и C. Виртуальный стек Lua. Функции для обмена данными между C и Lua.

  11. Создание модуля на языке C для Lua.

  12. Отладка кода на Lua и C. Ошибки при работе с памятью в C. Утилиты отладчик и профилировщик.
  13. Практики публикации кода. Публикация собственного модуля на github и luarocks.
  14. Надъязык MoonScript, транслируемый в Lua. Практики объектно-ориентированного программирования.

В ходе посещения факультатива и выполнения домашних заданий студент получит представление о практиках программирования и научится программировать на языках Lua и C, напишет собственную программу на Lua, часть которой впоследствии перепишет на языке C, опубликует код в сервисах github и luarocks. Темы учебных проектов будут предлагать сами студенты, кроме того будут предложены стандартные алгоритмы биоинформатики в качестве учебных проектов.

На зачёте по факультативу проверяется понимание изложенных практик программирования, умение писать код на Lua и C и выполнение учебного проекта.

Литература

  1. Учебник по Lua. Кратко описывает всё и является официальным определением языка.

  2. Книга "Программирование на Lua". В литературной форме описывает язык и примеры использования. Включает примеры кода.

  3. The C Programming Language. Ritchie & Kernighan

  4. Лекции по C с сайта http://info.fenster.name/

  5. Как писать модули на современном Lua (англ.)