Аннотация:
Программный синтез – это процесс автоматического создания программного обеспечения на основе спецификации требований. В этой статье представлен систематический обзор литературы, посвященный синтезу программ из спецификаций, выраженных на естественном языке. Исследуемая проблематика заключается в сложности автоматического создания точного и надежного кода из высокоуровневых, неоднозначных описаний на естественном языке – барьер, который ограничивает более широкое использование средств автоматизации при разработке программного обеспечения. Для исследования этой проблемы авторы систематически изучали работы, опубликованные в период с 2014 по 2024 год, делая акцент на работы, в которых рассматриваются различные подходы к синтезу программ на основе данных на естественном языке. Обзор следует строгой методологии, включающей поисковые строки, адаптированные для сбора соответствующих исследований из пяти основных источников данных: IEEE, ACM, Springer, Elsevier и MDPI. В процессе отбора применялись строгие критерии включения и исключения, что привело к окончательному набору из 20 высококачественных исследований. Результаты показывают значительные достижения в этой области, особенно в интеграции больших языковых моделей (LLM) с методами синтеза программ. Обзор также освещает проблемы и завершается изложением ключевых тенденций и предложением будущих направлений исследований, нацеленных на преодоление этих проблем и расширение применимости синтеза программ в различных областях.
Ключевые слова:
синтез программ, генерация программ, обработка естественного языка