TGViewer
CS Space CS Space @csspace · 2.98K subscribers
Post #328 3.65K
Открываем регистрацию на курс 🔽

Семантика языков программирования

⭐️ Лектор
Дмитрий Булычев
К.ф-м.н., с.н.с. междициплинарной лаборатории им. Чебышёва, руководитель магистратуры «Разработка ПО и науки о данных» МКН СПбГУ. Область научных интересов — языки и инструменты программирования, функциональное, логическое и реляционное программирование.


📢 Анонс
Когда мы пишем программы, мы не оперируем элементарными терминами языка программирования, подобно тому, как, говоря на родном языке, мы не размышляем в терминах синтаксиса и морфологии. Человеческое мышление мнемонично, оно действует в терминах абстракций и идиом. Такой способ рассуждений хорошо работает при создании прикладных программ, однако даёт странные и иногда необъяснимые результаты при реализации языковых инструментов, то есть программ, которые получают на вход одни программы и возвращают другие (компиляторов, интерпретаторов, специализаторов и т. д.).

Это происходит оттого, что такие инструменты должны правильно работать для всех исходных программ, а не только для таких, которые состоят из удобных нам мнемонических структур. Например, что следует делать, если в программе на языке C в теле цикла while мы встретили оператор case (сразу, без switch)?

Довольно быстро (после каких-то 20 лет развития науки о языках программирования) оказалось, что для надёжной работы таких инструментов (или, как минимум, для правдоподобного обоснования, почему они работают именно так) необходимы способы формальной и точной спецификации семантики языков программирования, которые предоставили бы средства для математического доказательства свойств программ и их преобразователей.

В рамках данного курса мы познакомимся со способами формального описания семантик языков программирования, которые позволяют всё это проделывать, а также научимся доказывать свойства программ и их преобразований, пользуясь инструментом для автоматизированного доказательства теорем Rocq.


📑 Пререквизиты курса
– знание какого-либо языка программирования (а лучше нескольких, а лучше — принадлежащих разным парадигамам (C — Java — Haskell и т.д.))
– начало мат. логики
– начало дискретного анализа


🕑 Курс будет проходить проходить по понедельникам с 18:00 в Мраморном зале, ПОМИ РАН, наб. реки Фонтанки, 27, Санкт-Петербург. Дату первой лекции сообщим позже. Записаться на курс можно через личный кабинет или в боте:
▶️ Личный кабинет
▶️ Бот
  • 🔥 22
  • ❤ 12
  • ⚡ 7
More from @csspace
  1. Sep 18, 2026Автоматическое построение PBR текстур для фотограмметрических моделей ⬇️ – Страница меропр…
  2. Sep 17, 2026Напоминаем про открытую лекцию Андрея Михайловича Райгородского по комбинаторике и теории…
  3. Sep 11, 2026Классические и современные задачи комбинаторики и теории графов ⬇️ – Страница мероприятия…
  4. Sep 3, 2026Открываем регистрацию на курс 🔽 Структурные параметры графов ⭐️ Лектор Данил Сагунов Коор…
  5. Sep 2, 2026Открываем регистрацию на курс 🔽 Алгоритмы в Git / Git Internals ⭐️ Лектор Даниил Орешнико…
  6. Sep 1, 20261 сентября, в День знаний, открываем новый учебный сезон — и начинаем его с регистрации на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →