10 декабря в 11:00 в каб. 239 состоится очередное заседание Методологического семинара ИСИ СО РАН.
Докладчик: с.н.с. Лаборатории информационных систем ИСИ СО РАН к.ф.-м.н. Лидия Васильевна Городняя
Тема доклада: «Сравнение языков программирования»
Мощность непрерывно развивающегося пространства языков программирования давно перевалила за десятки тысяч. Для успешной навигации в таком пространстве нужны ясные методы анализа и сравнения языков программирования, позволяющие для решения конкретных задач выбирать наиболее подходящие языки, оценивать их сильные и слабые стороны, прогнозировать их продуктивность и производительность. Если рассматривать языки программирования как представление знаний о практике программирования, то это удобный материал для исследования закономерностей динамики знания и профессиональной деятельности. Исследование отличий между языками поможет формализовать свойства разрабатываемых с их помощью программ, обосновывать поиск новых языков, отвечающих вызовам современных сфер применения ИТ. Результаты таких исследований могут дать понимание текущих трендов в разработке и применении программного обеспечения, предсказать, какие, возможно мало известные или вновь создаваемые, языки будут популярны в будущем, принимать более обоснованные решения по созданию новых языков.
В последние годы резко возрос интерес к сравнению языков программирования, появилось много статей на эту тему. Доступны ресурсы со списками или графами, структурированными по разным критериям, таким как история, наследование, категории, особенности синтаксиса, наличие компиляторов, сфера применения, опорная лексика и другое. Всё это показывает результаты выделения основных проекций из пространства языков программирования на примере небольшого подмножества наиболее известных языков, обычно 100-200. В онтологии истории программирования представлены языки АЛЬФА, СИГМА, система БЕТА и ещё примерно 70 языков, созданных в нашей стране. В списках учебных языков и неанглийских языков упоминаются РОБИК и РАПИРА.
Основные методы сравнения языков программирования пока сводятся к анализу синтаксиса и семантики языков, включая правила написания кода, структуры данных и использования операторов, функций или выражений. Такое сравнение обычно дополняется непосредственно измеримыми характеристиками типа скорость выполнения программ или объем памяти и других ресурсов. Нередко оценивается сложность языка для изучения новичками, наличие документации, часто слишком объёмной, и доступность обучающих материалов и бенчмарков для программистских экспериментов. Далее идёт неформальный учёт поддержанных парадигм программирования (примерно 3-10 из 20-70, упоминаемых в разных источниках), наследования идей из других языков, сферы влияния и применения языка, обычно без конкретных данных, показывающих достоверность деклараций такого рода. Кроме того, отмечается ряд важных классификационных критериев, отражающих особенности прагматики языка, способы обработки и хранения данных, их влияние на разработку программ, уровень абстракции понятий языка, особенности тестирования и отладки программ и достижимость надежности и безопасности эксплуатации программ. Проблемой является выбор параметров и формализмов, допускающих ясную классификацию языков программирования, достаточную для навигации в полном пространстве языков и систем программирования.
Ссылка на трансляцию: https://meet.google.com/qud-gfje-nyx