📊 Статистика дайджестов
Всего дайджестов: 34022 Добавлено сегодня: 82
Последнее обновление: сегодня
Авторы:
Philipp Eibl, Sadra Sabouri, Souti Chattopadhyay
## Контекст
Современные AI-помощники по кодированию (CBAs) показали себя как мощные инструменты, улучшающие процесс структурирования и генерирования программного кода. Они предлагают возможность генерировать и адаптировать всю структуру программы на основе текстового описания, превосходя при этом многие предыдущие подходы, ограниченные генерированием участков кода (snippet-level). Несмотря на перспективу, CBAs еще не получили такую популярность, как более простые сниппет-генераторы. Ранее изучалось генерирование кода на уровне сниппетов, но CBAs, охватывающие более широкий спектр задач, требуют подробного изучения. Эта работа нацелена на выявление проблем, с которыми сталкиваются разработчики при использовании CBAs, а также на выявление возможностей для оптимизации этих систем.
## Метод
Для изучения проблем при работе с CBAs была проведена пользовательская исследовательская исследовательская сессия (user study), в которой участвовали 16 разработчики и студенты. Участники выполняли задачи по кодированию, используя различные CBAs. На каждом этапе исследования было собрано подробное журнал событий, описывающие взаимодействия участников с системами. Были проведены интервью для получения более детальных отзывов и анализа опыта взаимодействия. Затем проведено сравнение 21 коммерческих CBAs с выявленными проблемами и необходимостями.
## Результаты
Участники различались в стратегиях подачи информации во вводных запросах (prompts). Более четверти запросов содержали описания проблем, почти все — требования функциональности, а 48% — структурные запросы. Однако полученные результаты не удовлетворили участников. Низкая оценка качества кода (mean = 2.8, median = 3) была самой распространенной причиной недовольства, за которой следовали проблемы с коммуникацией и неполноте функциональности. Основные барьеры включали неполное понимание требований, проблемы с настройкой программ, и несовпадение ожиданий. Также выявлены шесть основных проблем, с которыми сталкиваются разработчики при использовании CBAs.
## Значимость
Результаты имеют решающее значение для развития AI-помощников по кодированию. Изучение проблем и недочетов при использовании CBAs позволяет раскрыть потенциал этих систем для развития программирования. Оптимизация CBAs способна влиять на скорость разработки, качество кода и удовлетворенность пользователей. Открытые возможности включают развитие более гибких моделей для лучшего взаимодействия с пользователем и более эффективного использования при работе с большими кодовыми базами.
## Выводы
Основные достижения:
- Раскрыта многообраз
Annotation:
Recent AI code assistants have significantly improved their ability to
process more complex contexts and generate entire codebases based on a textual
description, compared to the popular snippet-level generation. These codebase
AI assistants (CBAs) can also extend or adapt codebases, allowing users to
focus on higher-level design and deployment decisions. While prior work has
extensively studied the impact of snippet-level code generation, this new class
of codebase generation models is relative...
📄 PyVeritas: On Verifying Python via LLM-Based Transpilation and Bounded Model Checking for C
2025-08-13Авторы:
Pedro Orvalho, Marta Kwiatkowska
## Контекст
Python является одним из самых популярных языков программирования для общего назначения, но при этом отсутствуют полноценные средства для его формального верификации. В случае языков программирования среды высокого уровня, таких как Python, формальная верификация является значительным вызовом из-за сложности языка и уровня абстракции, присущего его. Однако языки программирования среднего уровня, такие как C, поддерживают формальные методы верификации с помощью инструментов, таких как CBMC, которые позволяют проводить символьное рассуждение и уточнять место ошибки. Использование транспайлеров, таких как Cython, не дало желаемого результата в преодолении разрыва между Python и C в сфере верификации. PyVeritas предлагает решение этой проблемы, используя Large Language Models (LLMs) для транспиляции Python-кода в C, а также для достижения повышенной точности в формальной верификации и баг-локализации.
## Метод
PyVeritas использует LLMs для получения высокого уровня абстракции при переводе Python-кода в C. Это позволяет сохранить информацию о структуре и логике программы в процессе транспиляции. Далее, PyVeritas применяет баунденд модельное проверяние (BMC) для генерируемого C-кода, чтобы выявлять ошибки. Максимальные модели MaxSAT используются для формальной локализации ошибок в коде. Эта методология позволяет использовать существующие инструменты верификации, разработанные для C-кода, для анализа Python-программ. Таким образом, PyVeritas упрощает процесс верификации и делает его более доступным для Python-программистов.
## Результаты
Проведенные эксперименты демонстрируют, что LLM-based transpilation может достигать высокой точности в переводе Python-кода в C. Например, некоторые модели LLM показали до 80-90% точности в транспиляции. Верификационные инструменты, такие как CBMC, могут использоваться для эффективного анализа транспилированного C-кода. PyVeritas позволяет выявлять баги в Python-программах с помощью инструментов, разработанных для C-кода. Это демонстрирует мощные возможности нового фреймворка для более простого и точного верификации Python-программ.
## Значимость
Предложенный подход может быть применен в различных областях, где необходима формальная верификация Python-программ, таких как централизованная библиотека или платформы для разработки программного обеспечения. PyVeritas позволяет применять существующие инструменты, разработанные для C-кода, для проверки Python-программ. Это может существенно упростить процесс верификации и повысить его точность. Кроме того, PyVeritas дает возможность интерактивного анализа ошибок, что помогает разработчикам быстро находить и исправлять баги в Python-программах.
##
Annotation:
Python has become the dominant language for general-purpose programming, yet
it lacks robust tools for formal verification. In contrast, programmers working
in languages such as C benefit from mature model checkers, for example CBMC,
which enable exhaustive symbolic reasoning and fault localisation. The inherent
complexity of Python, coupled with the verbosity and low-level nature of
existing transpilers (e.g., Cython), have historically limited the
applicability of formal verification to Python...
Авторы:
Jia Fu, Xinyu Yang, Hongzhi Zhang, Yahui Liu, Jingyuan Zhang, Qi Wang, Fuzheng Zhang, Guorui Zhou
#### Контекст
Современные технологии обучения с подкреплением (reinforcement learning) для кода позволяют значительно улучшить качество решения задач программирования. Однако одной из ключевых проблем в этой области является получение точных и достоверных тестовых случаев для обучения. Тесты должны быть не только широко покрывающими, но и корректными. Несоответствие этих критериев может привести к негативному влиянию на обучение моделей и неточные выводы. Недостатком многих существующих подходов является отсутствие гарантий качества и безопасности тестов. В связи с этим возникает потребность в разработке методов, обеспечивающих качественную генерацию тестов и гарантированную достоверность результатов.
#### Метод
Klear-CodeTest представляет собой инновационный подход к генерации тестовых случаев для кода, основанный на Generator-Validation (G-V) фреймворке. Этот фреймворк состоит из двух основных компонентов: **генератора** (Generator), который строит тестовые сценарии, и **валидатора** (Validator), выполняющий подробное проверки результатов. Основной принцип валидатора заключается в **consistency validation**, то есть проверке результатов тестов на соответствие золотым решениям. Данный подход гарантирует точность и полноту тестов, включая не только обычные случаи, но и крайние (corner cases). Также, Klear-CodeTest включает в себя многоуровневую систему безопасности, оптимизированную для использования в онлайн-платформах. Эта система обеспечивает безопасность и надежность выполнения кода, запускаемого в рамках проверки.
#### Результаты
Разработанная система прошла тщательные эксперименты, в которых были использованы широкие данные для тестирования. Результаты показали, что Klear-CodeTest позволяет значительно улучшить качество тестов, обеспечивая более широкое покрытие и более точный анализ кода. Оценка эффективности проводилась по метрикам, таким как покрытие кода, точность решений и стабильность обучения моделей. Эксперименты демонстрируют, что применение этого подхода приводит к значительному повышению производительности и устойчивости моделей в коде обучения с подкреплением.
#### Значимость
Предложенный подход имеет широкие перспективы в различных областях, где применяются модели обучения с подкреплением для кода. Например, в сфере тестирования программного обеспечения, автоматизации разработки и обучения моделей для решения задач программирования. Ключевое преимущество Klear-CodeTest заключается в его способности генерировать качественные, полные и безопасные тестовые случаи, что позволяет значительно улучшить обучение моделей и их надежность. Этот подход может значительно упростить процесс тестирования и повысить качество решения задач в
Annotation:
Precise, correct feedback is crucial for effectively training large language
models (LLMs) in code reinforcement learning. However, synthesizing
high-quality test cases remains a profoundly challenging and unsolved problem.
In this work, we present Klear-CodeTest, a comprehensive test case synthesis
framework featuring rigorous verification to ensure quality and reliability of
test cases. Our approach achieves broad coverage of programming problems via a
novel Generator-Validation (G-V) framewor...
Авторы:
Yoseph Berhanu Alebachew
## Контекст
Исследование фокусируется на улучшении процесса понимания больших и сложных систем программного обеспечения, что является ключевой проблемой для разработчиков. Одним из главных вызовов является то, что процесс компреhension программы требует много времени и трудоемкий. Существующие инструменты, такие как статические визуализации и техники реверс-инжиниринга, недостаточно эффективны в плане интерактивности и адаптивности, а также часто не интегрируются с контекстным окружением. Недавние развития в области больших языковых моделей (LLM) предлагают новые возможности для решения этой проблемы. Однако их недостаток в грандировании и неполная интеграция с структурированными представлениями снижает их эффективность. Таким образом, целью данного исследования является разработка гибридного подхода, который объединяет определительные техники реверс-инжиниринга с LLM-ориентированной, интент-связанной визуальной исследовательской системой.
## Метод
Предложенная методология включает в себя структурированный подход, который сочетает в себе детерминированные технологии реверс-инжиниринга с использованием языковых моделей. Основным функционалом является использование технологии UML для визуализации структуры кода в интерактивной форме. Для повышения производительности используется гибридная модель, где LLM понимает запросы пользователя и адаптирует отображение в зависимости от потребностей пользователя. Динамический интерфейс, включающий в себя исторический контекст и возможности совместной работы, дает возможность быстрого и эффективного понимания кода. Разработанная архитектура включает в себя слой визуального представления, интерактивную систему ввода/вывода, а также модель LLM, которая обеспечивает адаптивность и понимание контекста.
## Результаты
Для проверки эффективности подхода был проведен эксперимент с использованием Java-кода. Было сгенерировано специфическое UML-диаграммное представление, которое позволило пользователям быстро ориентироваться в структуре кода. Использование LLM позволило пользователям задавать запросы и получать конкретные ответы, повышая эффективность понимания. Эксперименты показали, что интеграция LLM с визуальными инструментами увеличивает эффективность работы с кодом, уменьшая время, необходимое для понимания сложных систем. В результате была получена гибкая система, которая может отображать и изменять код в зависимости от пользовательских запросов.
## Значимость
Области применения данного подхода включают в себя разработку программного обеспечения, поддер
Annotation:
Understanding large-scale, complex software systems is a major challenge for
developers, who spend a significant portion of their time on program
comprehension. Traditional tools such as static visualizations and reverse
engineering techniques provide structural insights but often lack
interactivity, adaptability, and integration with contextual information.
Recent advancements in large language models (LLMs) offer new opportunities to
enhance code exploration workflows, yet their lack of ground...
Авторы:
Yanusha Mehendran, Maolin Tang, Yi Lu
## Контекст
Современные программные системы становятся все более сложными, что приводит к повышению риска возникновения программных уязвимостей. Традиционные методы оценки безопасности часто оказываются неэффективными в распознавании глубоких и сложных уязвимостей, возникающих в результате непредсказуемых взаимодействий между компонентами. Это приводит к потере ресурсов, а также к ухудшению надежности и безопасности систем. Необходимо развитие новых подходов, которые могут эффективно обнаруживать такие уязвимости, адаптируясь к специфике каждой системы.
## Метод
Метод предложенной работы основывается на генетических алгоритмах и интегрирует продвинутые техники адаптивного обучения. Генетический алгоритм используется для генерирования тестовых входных данных, которые могут быть успешно применены для проверки системы на наличие уязвимостей. Особенностью этого подхода является применение оператора скрещивания, который расширяет пространство возможных тестовых случаев. Динамическая адаптивность метода достигается за счет постоянного обучения от реакции системы на входные данные. Это позволяет адаптировать тестовые случаи в процессе их генерирования, чтобы более точно направлять поиск в области входных данных, где скорее всего будут обнаружены уязвимости.
## Результаты
Исследование проводилось на данных, полученных из девяти открытых исходных JSON-процессинговых библиотек. Метод оказался эффективным в сравнении с бенчмарковой эволюционной методикой генерирования тестовых случаев. Он показал значительные улучшения в обнаружении уязвимостей, получив увеличения в покрытии классов (39.8%), методов (62.4%), строк (105.0%), инструкций (114.0%) и ветвей (166.0%). Эти результаты указывают на высокую эффективность метода в обнаружении глубоких уязвимостей, которые не могут быть выявлены стандартными методами.
## Значимость
Предложенный метод имеет широкие перспективы применения в области безопасности программного обеспечения. Он может применяться для тестирования различных приложений, включая веб-приложения, мобильные приложения и другие системы, где уязвимости могут привести к серьезным последствиям. Особенно важным является его применение в автоматизации процессов тестирования и в сценариях, где требуется высокая эффективность и точность.
## Выводы
Результаты экспериментов показывают, что предложенный подход является эффективным для обнаружения глубоких и сложных уязвимостей в программном обеспечении. Будущие исследования будут направлены на улучшение динамического обучения, а также на применение
Annotation:
Software vulnerabilities continue to undermine the reliability and security
of modern systems, particularly as software complexity outpaces the
capabilities of traditional detection methods. This study introduces a genetic
algorithm-based method for test input generation that innovatively integrates
genetic operators and adaptive learning to enhance software vulnerability
detection. A key contribution is the application of the crossover operator,
which facilitates exploration by searching across...
Авторы:
Yanzhou Li, Shangqing Liu, Kangjie Chen, Tianwei Zhang, Yang Liu
#### Контекст
Инструменты автоматической подсказки кода, такие как cross-file code completion, становятся важной частью процесса разработки программного обеспечения. Эти инструменты используются для ускорения разработки, уменьшения числа ошибок и улучшения производительности разработчиков. Однако, существуют проблемы, связанные с точностью и эффективностью подсказок. Одна из них — неточность в выборе и использовании контекста из других файлов. Это приводит к нежелательным рекомендациям и ухудшению качества выдачи. Необходимо развитие методов, которые позволят более точно определить и использовать полезные части контекста.
#### Метод
Мы предлагаем новую методологию, основанную на ретриев-аугментированной генерации (RAG), которая объединяет в себе контекст из вложенных файлов и ранее написанного кода. Мы используем возможности глубокого обучения для построения модели, которая может оценивать вклад каждого отдельного фрагмента кода в общую точность рекомендации. Для этого мы разработали метрику, основанную на вероятностях, для оценки того, насколько каждый фрагмент кода полезен для рекомендации. Мы также создали новый датасет, где каждый фрагмент помечен как полезный (positive), нейтральный (neutral) или вредный (negative).
#### Результаты
Мы провели эксперименты на двух открытых бенчмарках: RepoEval и CrossCodeLongEval. Модель CODEFILTER, которая основывается на нашем подходе, показала существенное улучшение точности рекомендаций в сравнении с моделями, не использующими фильтрацию контекста. Мы также отметили, что модель CODEFILTER уменьшает длину входного последовательности (prompt), что улучшает эффективность вычислений. Мы также отметили, что наш подход обладает значительной генерализуемостью и работает хорошо со многими моделями различных архитектур.
#### Значимость
Наш подход может быть применен в различных сферах, где требуется точное и эффективное подсказывание кода. Например, в системах автоматической поддержки разработчиков, системах анализа кода и системах помощи в написании кода. Он позволяет улучшить точность и эффективность кода, а также обеспечивает более четкую атрибуцию каждого фрагмента кода, что может помочь в исследовании и улучшении качества моделей.
#### Выводы
Мы установили, что наш подход приводит к значительным улучшениям в точности рекомендации и эффективности вычислений в cross-file code completion. Будущие исследования будут сфокусированы на улучшении принципов фильтрации контекста, на расширении области применения модели и на дополнительной оптимизации производительности. Мы планируем также расширить наш датасет, чтобы включить более разнообразные задачи и задачу с многомодельным подходом.
Annotation:
Retrieval-augmented generation (RAG) has recently demonstrated considerable
potential for repository-level code completion, as it integrates cross-file
knowledge with in-file preceding code to provide comprehensive contexts for
generation. To better understand the contribution of the retrieved cross-file
contexts, we introduce a likelihood-based metric to evaluate the impact of each
retrieved code chunk on the completion. Our analysis reveals that, despite
retrieving numerous chunks, only a smal...
Авторы:
Mikio Nakano, Hironori Takeuchi, Sadahiro Yoshikawa, Yoichi Matsuyama, Kazunori Komatani
Работа подробно рассматривает понятие **Dialogue Systems Engineering**, как специальный направленный вид программного обеспечения, относящийся к жизненному циклу беседовых систем. Обзор показывает, что с появлением **large language models**, технологии диалоговых систем получили значительный прорыв, однако их эффективное применение в решении важных проблем общественного и бизнес-сектора требует новых подходов к их разработке и эксплуатации. Авторы показывают, что стандартные методы программного обеспечения недостаточно приспособлены для этих целей и предлагают развивать дополнительные подходы, отталкиваясь от теории **Software Engineering Body of Knowledge (SWEBOK)**. Работа определяет недостающие знания в области беседовых систем и определяет направления будущих исследований в этом направлении.
Annotation:
This paper proposes to refer to the field of software engineering related to
the life cycle of dialogue systems as Dialogue Systems Engineering, and surveys
this field while also discussing its future directions. With the advancement of
large language models, the core technologies underlying dialogue systems have
significantly progressed. As a result, dialogue system technology is now
expected to be applied to solving various societal issues and in business
contexts. To achieve this, it is impor...
Авторы:
Daniele Cipollone, Egor Bogomolov, Arie van Deursen, Maliheh Izadi
Наиболее важная функция современных интегрированных сред разработки (IDE) — токен-уровневая комплиционка, которая предлагает разработчикам актуальные идентификаторы и API во время написания кода. Хотя предложения формируются с помощью статического анализа, их полезность определяется порядком их отображения. Многие нынешние системы полагаются на ручную инженерию или легкие модели машинного обучения, основанные на пользовательских логах, что ограничивает их общую наглядность и интеллектуальность.
В этой работе предложен новый подход к оценке статических комплиционок с помощью языковых моделей, реализованный в модели TreeRanker. Он организует все возможные комплиционы в префиксное дерево и выполняет один проход жадного декодирования для вычисления токен-уровневых оценок. Это позволяет достичь точного токен-уровневого ранжирования без необходимости использовать биржу поиска, манипуляции с запросами или адаптации моделей. Метод является быстрым, архитектурно независимым и взаимодействует с уже развернутыми моделями для комплиционок. Эти результаты показывают практичность и эффективность интеграции языковых моделей в существующие средства IDE, для повышения точности и отзывчивости рекомендаций.
Annotation:
Token-level code completion is one of the most critical features in modern
Integrated Development Environments (IDEs). It assists developers by suggesting
relevant identifiers and APIs during coding. While completions are typically
derived from static analysis, their usefulness depends heavily on how they are
ranked, as correct predictions buried deep in the list are rarely seen by
users. Most current systems rely on hand-crafted heuristics or lightweight
machine learning models trained on user ...
Авторы:
Peter Hamfelt, Ricardo Britto, Lincoln Rocha, Camilo Almendra
Увеличивающийся интерес к машинному обучению (ML) приводит к появлению новых типов кодовых запутанностей, которые могут повлиять на качество и эффективность ML-систем. Однако существуют недостаточно исследований и инструментов, посвященных идентификации и оценке таких ML-специфических кодовых запутанностей. В данной работе предлагается инструмент MLpylint, основанный на гуманных критериях кодовых запутанностей, для статического анализа ML-кода. Инструмент разработан с использованием Design Science Methodology, включая литературный обзор, консультации с экспертами и оценку на данных из 160 открытых ML-проектов. Экспертные оценки подтвердили эффективность MLpylint. Результаты указывают на возможность интеграции инструмента в разработческий процесс, что может повысить качество ML-систем и улучшить производительность разработчиков.
Annotation:
Machine learning (ML) has rapidly grown in popularity, becoming vital to many
industries. Currently, the research on code smells in ML applications lacks
tools and studies that address the identification and validity of ML-specific
code smells. This work investigates suitable methods and tools to design and
develop a static code analysis tool (MLpylint) based on code smell criteria.
This research employed the Design Science Methodology. In the problem
identification phase, a literature review wa...
Авторы:
Vali Tawosi, Salwa Alamir, Xiaomo Liu, Manuela Veloso
В поиске эффективных способов автоматизации разработки программного обеспечения, особой сложностью представляется баг-локализация в больших и сложных кодовых базах. Для решения этой проблемы предложено решение Meta-RAG, основанное на методе Retrieval Augmented Generation (RAG), которое объединяет информационное восстановление и генеративные модели языка на основе ведущих LLMs. Основная идея заключается в создании компактного, структурированного представления кодовой базы в виде естественного языка (суммарно получается примерно 20% оригинального кода), а затем использовании генеративной модели для определения критических частей кода, связанных с багом. Экспериментальные результаты показали, что Meta-RAG достигает высокой точности баг-локализации — 84,67% на уровне файлов и 53% на уровне функций, — превосходя таким образом подходы за счет интеллектуальной обработки и сжатия кода.
Annotation:
Large Language Model (LLM) systems have been at the forefront of applied
Artificial Intelligence (AI) research in a multitude of domains. One such
domain is software development, where researchers have pushed the automation of
a number of code tasks through LLM agents. Software development is a complex
ecosystem, that stretches far beyond code implementation and well into the
realm of code maintenance. In this paper, we propose a multi-agent system to
localize bugs in large pre-existing codebase...
Показано 321 -
330
из 341 записей