Inspectable Control for Structure-Preserving Software Regeneration

کنترل بازرسی‌پذیر برای بازتولید نرم‌افزار با حفظ ساختار

بازتولید جزئی و کنترل‌پذیر کُد با استفاده از بازنمایی‌های نهفتهٔ گسستهٔ سلسله‌مراتبی.

Alexey Gavrilov1Alan-Barsag Gazzaev1Mikhail Mozikov2Ilya Makarov2Sergey Muravyov1

  1. ITMO University, Saint Petersburg, Russian Federation
  2. AXXX، Moscow، Russian Federation

متن کامل مقاله را در قالب HTML بخوانیدمتن قابل جست‌وجو همراه با فرمول‌ها، جدول‌ها، شکل‌ها و منابع.

نسخهٔ نهایی آمادهٔ چاپ نویسنده با فهرست نهایی نویسندگان و DOI. CC BY 4.0 author manuscript; the ACM DOI page remains the version of record. شرایط انتشار و استفادهٔ مجدد.

مقاله در ۳۰ ثانیه

پرسش پژوهشیک مدل مولد چگونه می‌تواند با حفظ عناصر برگزیدهٔ ساختار درشت‌دانهٔ برنامه، بخش‌های منتخب آن را اصلاح کند؟

مسئله

اصلاح کُد به کمک هوش مصنوعی اغلب به یک تغییر کران‌مند نیاز دارد، درحالی‌که ساختارهای منتخب برنامه ثابت می‌مانند. بازتولید کل برنامه می‌تواند نواحی نامرتبط را مختل کند و قیود سطح توکن، سطح کنترلی درشت‌دانه در اختیار نمی‌گذارند.

رویکرد

این مطالعه توابع 64‌توکنی Python را با یک VQ-VAE سلسله‌مراتبی رمزگذاری می‌کند، کُدهای گسستهٔ درشت‌دانهٔ منتخب را قفل می‌کند و برای بازتولید موضعی کُد در جایگاه‌های نهفتهٔ باقی‌مانده، از تولید گسستهٔ نقاب‌دار بهره می‌گیرد.

نتیجهٔ اصلی

قفل‌کردن چهار کد سطح‌بالا نرخ تجزیه را از 0.453 به 0.591 افزایش می‌دهد، درحالی‌که موقعیت‌های قفل‌نشده همچنان با نرخ 0.936 تغییر می‌کنند و یکتایی نمونه‌های شرطی در 0.998 باقی می‌ماند.

چرا اهمیت دارد

نتایج برای ویرایش کنترل‌پذیر کُد و بازتولید جزئی برنامه، توازن سنجش‌پذیری میان پایداری و آزادی نشان می‌دهند. آن‌ها شواهد اولیه‌ای برای یک لایهٔ کنترل نهفتهٔ بازرسی‌پذیر فراهم می‌کنند، نه اثباتی برای هم‌ارزی معنایی یا درستی کارکردی.

چکیده

گردش‌کارهای مهندسی نرم‌افزار، مانند ترمیم مقید، پالایش مرحله‌ای و اصلاحِ حافظ ساختار، مستلزم کنترل بر آن چیزی‌اند که تغییر می‌کند و آنچه ثابت می‌ماند. تولید در سطح توکن برای این عملیات سطح کنترل ضعیفی است، زیرا به‌جای ناورداهای ساختاری درشت‌دانه‌ای که مهندسی نرم‌افزار غالباً در پی حفظ آن‌هاست، متن ظاهری محلی را مقید می‌کند. ما نهفته‌های گسستهٔ سلسله‌مراتبی را به‌منزلهٔ بازنمایی میانی بازرسی‌پذیر برای مصنوعات نرم‌افزاری بررسی می‌کنیم: یک VQ-VAE سلسله‌مراتبی، تابع Python با 64 توکن را به کُدهای گسستهٔ درشت‌دانه و ریزدانه فشرده می‌کند و تولید گسستهٔ نقاب‌دار، تحت قیود جزئی، فقط جایگاه‌های منتخب را بازتولید می‌کند. در 2,000 تابع Python پیش‌پردازش‌شده، قفل‌کردن چهار کُد سطح بالا نرخ تجزیه را از 0.453 به 0.591 افزایش می‌دهد، درحالی‌که تغییر چشمگیر در جایگاه‌های قفل‌نشده (آزادی ویرایش، 0.936) و یکتایی نزدیک به بیشینهٔ نمونه‌ها (تنوع، 0.998) حفظ می‌شود. با ثابت‌بودن بافت درشت‌دانه، پالایش سطح پایین‌تر ضعیف‌تر است، اما همچنان یکنواخت باقی می‌ماند و برداشتی درشت‌به‌ریز از سلسله‌مراتب را تأیید می‌کند. در مجموع، این نتایج شواهد اولیه‌ای برای یک لایهٔ کنترل عملی فراهم می‌آورند که از بازتولید محدود و حافظ ساختارِ مصنوعات نرم‌افزاری در سطحی بالاتر از توکن پشتیبانی می‌کند.

محل انتشار مجموعه‌مقالات سی‌وچهارمین کنفرانس بین‌المللی ACM دربارهٔ مبانی مهندسی نرم‌افزار

نوع دستاورد روش کنترل در فضای نهفته

صص. 1406–1407پوستر همراه

DOI https://doi.org/10.1145/3803437.3807386

اشتراک‌گذاری این مقالهاشتراک‌گذاری

نتایج کلیدی

نتایج کلیدی «کنترل بازرسی‌پذیر برای بازتولید نرم‌افزار با حفظ ساختار»
تنظیماتنرخ تجزیهاسکلتامضاتغییر در بخش قفل‌نشده
ورودی (کوتاه‌شده)0.9940.9940.994
بازسازی کُدک0.8570.8480.4930
تولید بدون شرط0.4530.0800.995
شرطی، پیشوند k=40.5910.2950.0610.936
شرطی، گسترهٔ امضا0.60.3020.063گزارش نشده است

نتیجهٔ کلیدی. قفل‌کردن متغیرهای نهفتهٔ درشت‌دانه، پایداری نحوی را بهبود می‌دهد بی‌آنکه تغییر در ناحیهٔ ویرایش‌پذیر را فروبپاشاند؛ این نتیجه کنترل ساختاری را نشان می‌دهد، نه هم‌ارزی کارکردیِ تضمین‌شده را.

مجموعه‌داده
۲٬۰۰۰ تابع Python پیش‌پردازش‌شده از یک زیرمجموعهٔ CodeParrot Clean
اندازهٔ نمونه
۲٬۰۰۰ تابع Python پیش‌پردازش‌شده؛ یکتایی نمونه‌های شرطی ۰٫۹۹۸ است.
سنجه‌ها
نرخ تجزیه؛ سنجه‌های جانشین حفظ اسکلت و امضا؛ نرخ تغییر موقعیت‌های قفل‌نشده؛ یکتایی و آنتروپی نمونه
عدم‌قطعیت
این مطالعهٔ دوصفحه‌ای، برآوردهای نقطه‌ای را بدون فاصلهٔ اطمینان یا تحلیل آماری چندبذری گزارش می‌کند.
شرایط
توابع ۶۴ توکنی، رمزگشایی argmax، ۱۶ کُد سطح‌بالا و ۳۲ کُد سطح‌پایین؛ قفل کامل، بازسازی کُدک را دقیقاً بازیابی می‌کند.

PDF و استناد

به این مقاله استناد کنید BibTeX قالب پیشنهادی است. همهٔ گونه‌های زیر از یک رکورد انتشار واحد تولید شده‌اند.

بازکردن PDF
@inproceedings{Gavrilov2026InspectableControl,
  title      = {Inspectable Control for Structure-Preserving Software Regeneration},
  author     = {Gavrilov, Alexey and Gazzaev, Alan-Barsag and Mozikov, Mikhail and Makarov, Ilya and Muravyov, Sergey},
  booktitle  = {Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering},
  publisher  = {ACM},
  year       = {2026},
  pages      = {1406--1407},
  doi        = {10.1145/3803437.3807386},
  url        = {https://doi.org/10.1145/3803437.3807386},
  isbn       = {979-8-4007-2636-1},
}
دریافت ‎.bib

فایل‌های استناد:متن APAمتن IEEERISCSL-JSONSchema.org JSON-LDOAI-DC XMLOpenAIRE v4 XMLMODS XMLفرادادهٔ XML با قالب JATS 1.4متن کامل JATS 1.4 XMLRDF Turtleمجموعه‌پیوند (JSON)مجموعه‌پیوند (HTTP)RO-Crate

DOI:https://doi.org/10.1145/3803437.3807386

راهنمای کامل

راهنمای کامل پژوهش

روش

این روش یک تابع کوتاه Python را در دو سطح کُد گسسته فشرده می‌کند، جایگاه‌های درشت‌دانهٔ منتخب را ثابت نگه می‌دارد و پیش از رمزگشایی مجدد به کُد، جایگاه‌های باقی‌مانده را بازتولید می‌کند.

  1. رمزگذاری

    یک تابع 64-توکنی Python را با یک VQ-VAE سلسله‌مراتبی به 16 کُد سطح‌بالا و 32 کُد سطح‌پایین فشرده کنید.

  2. قفل‌کردن

    موقعیت‌های درشت‌دانهٔ کُد را برگزینید که ساختارِ لازم برای حفظ‌شدن را بازنمایی می‌کنند؛ مانند پیشوندی که گسترهٔ امضای تابع را می‌پوشاند.

  3. بازتولید

    تولید گسستهٔ نقاب‌دار را فقط بر موقعیت‌های قفل‌نشده اجرا کنید و سلسله‌مراتب تکمیل‌شده را دوباره به کد مبدأ رمزگشایی کنید.

  4. بازرسی

    پیش از پذیرش بازتولید، نرخ تجزیه، سنجه‌های جانشین ساختاری، تغییر در موقعیت‌های قفل‌نشده و یکتایی نمونه را اندازه‌گیری کنید.

کُدهای درشت‌دانهٔ منتخب برنامه ثابت می‌مانند، درحالی‌که کُدهای گسستهٔ ریزدانهٔ نقاب‌دار بازتولید و به یک تابع Python تغییریافته رمزگشایی می‌شوند.
ویرایش سلسله‌مراتبی کد نهفتهٔ گسسته، ضمن بازتولید کدهای ریزدانه در ناحیهٔ ویرایش‌پذیر، ساختار درشت‌دانهٔ منتخب برنامه را حفظ می‌کند.منبع: نمودار توضیحی ساختهٔ نویسنده بر پایهٔ روش و نتایج منتشرشده..شرایط استفادهٔ مجدد: CC BY 4.0.استناد پیشنهادی: Gavrilov et al. (2026), Inspectable Control for Structure-Preserving Software Regeneration. دریافت SVG.

ایدهٔ کلیدی

کنترل بر بازنماییِ آموخته‌شده‌ای در سطحی بالاتر از توکن‌ها اعمال می‌شود: موقعیت‌های درشت‌دانهٔ نهفته، جایگاه‌های صریحی را تعیین می‌کنند که می‌توان ساختار را در آن‌ها ثابت نگه داشت، درحالی‌که جزئیات پیاده‌سازیِ مجاور همچنان ویرایش‌پذیر می‌مانند.

تفاوت با رویکردهای نزدیک

قیود در سطح پرامپت یا توکن بر متن ظاهری اعمال می‌شوند. رابط پیشنهادی، نقاط کنترل گسستهٔ درشت‌دانه و ریزدانه را در دسترس می‌گذارد و موازنهٔ حاصل میان پایداری و آزادی را اندازه‌گیری می‌کند.

نوآوری چیست

این کار، لایه‌ای بازرسی‌پذیر برای کنترل سلسله‌مراتبی نهفته معرفی و ارزیابی می‌کند که برای بازتولید کران‌مند مصنوعات نرم‌افزاری طراحی شده است.

پرسش‌هایی که این مقاله به پاسخ‌دادن به آن‌ها کمک می‌کند

برای دریافت پاسخی کوتاه و مستند به مقاله، یکی از پرسش‌ها را باز کنید. مرزهای تفصیلی شواهد در بخش محدودیت‌ها آمده‌اند.

  1. هوش مصنوعی چگونه می‌تواند کد را بی‌آنکه همه‌چیز را از نو بنویسد ویرایش کند؟

    مقاله بازتولید جزئی کُد در سطحی بالاتر از توکن را بررسی می‌کند. یک VQ-VAE سلسله‌مراتبی، تابع کوتاه Python را به کُدهای گسستهٔ درشت‌دانه و ریزدانه نگاشت می‌کند؛ جایگاه‌های درشت‌دانهٔ منتخب قفل می‌شوند و تولید گسستهٔ نقاب‌دار پیش از رمزگشایی فقط جایگاه‌های نهفتهٔ باقی‌مانده را تغییر می‌دهد. بدین‌ترتیب، به‌جای بازتولید کل تابع، مرز حفظ صریحی فراهم می‌شود.

  2. کدام روش‌ها هنگام تولید کُد ساختار برنامه را حفظ می‌کنند؟

    این کار، کنترل گسستهٔ سلسله‌مراتبی در فضای نهفته را می‌آزماید. می‌توان موقعیت‌های نهفتهٔ درشت را ثابت نگه داشت و موقعیت‌های قفل‌نشده را بازتولید کرد؛ سپس نرخ تجزیه و شاخص‌های جانشین ساختاری اندازه‌گیری می‌شوند. شواهد به پایداری ساختاری احتمالاتی در توابع کوتاه Python مربوط است و حفظ دقیق AST، هم‌ارزی معنایی یا درستی کارکردی را اثبات نمی‌کند.

  3. آیا متغیرهای نهفتهٔ گسستهٔ سلسله‌مراتبی می‌توانند کنترل موضعی بر کُد فراهم کنند؟

    در آزمایش گزارش‌شده روی 2,000 تابع، قفل‌کردن چهار کد سطح‌بالا نرخ تجزیه را از 0.453 به 0.591 افزایش داد. هم‌زمان، 0.936 از موقعیت‌های قفل‌نشده تغییر کردند و یکتایی نمونه‌های شرطی 0.998 بود. این نتایج شواهدی مقدماتی‌اند که نشان می‌دهند قیود درشت‌دانهٔ نهفته می‌توانند بخشی از ساختار را حفظ کنند، بی‌آنکه آزادی ویرایش موضعی یا تنوع نمونه‌ها را از میان ببرند.

  4. تولید کد چگونه می‌تواند میان پایداری ساختاری و تنوع توازن برقرار کند؟

    مقاله، پایداری و آزادی را با هم ارزیابی می‌کند، نه اینکه فقط اعتبار را بهینه سازد. قفل‌کردن کُدهای درشت‌دانه اعتبار نحوی را افزایش می‌دهد، درحالی‌که میزان تغییر در جایگاه‌های قفل‌نشده بالا می‌ماند و نمونه‌های شرطی تقریباً همگی یکتا باقی می‌مانند. این نتیجه در پیکربندی آزموده‌شده، توازن سنجش‌پذیری میان پایداری و آزادی را نشان می‌دهد، نه یک بهینهٔ جهان‌شمول را.

  5. این پژوهش چه ارتباطی با ویرایش کد به کمک LLM دارد؟

    مدل آزموده‌شده یک VQ-VAE سلسله‌مراتبی با تولید گسستهٔ نقاب‌دار است، نه یک مدل زبانی بزرگ. بااین‌حال، مسئلهٔ کنترل به ویرایش با کمک LLM نیز مربوط است، زیرا تغییرات غیرضروری بیرون از ناحیهٔ درخواستی دغدغه‌ای عملی‌اند. سهم مقاله، سازوکاری مکمل در فضای نهفته و چارچوبی برای ارزیابی است، نه یک بنچمارک ویرایش LLM.

مقایسه با رویکردهای نزدیک

مقایسهٔ مستند «کنترل بازرسی‌پذیر برای بازتولید نرم‌افزار با حفظ ساختار» با رویکردهای نزدیک
قابلیتکنترل در سطح توکنکنترل نهفتهٔ سلسله‌مراتبی
ثابت نگه‌داشتن ساختار درشت‌دانهمحدودقفل‌گذاری بومی کُدهای درشت‌دانه
بازتولید جزئیقیود سطحی شکنندهبازنمونه‌گیری نقاب‌دار کُدهای انتخاب‌شده
نقاط کنترل بازرسی‌پذیربدون لایهٔ میانی صریحموقعیت‌های گسستهٔ درشت‌دانه و ریزدانه
شواهد ارائه‌شده در این مقالهبه‌عنوان خط مبنای کامل ارزیابی نشده استشاخص‌های تشخیصی پایداری نحوی و آزادی ویرایش

جدول، رابط‌ها و شواهد اندازه‌گیری‌شدهٔ مطالعه را توصیف می‌کند؛ ادعایی دربارهٔ درستی کارکردی یا برتری همگانی ندارد.

ارتباط و دامنه

این مقاله بیش از همه برای کارهایی مرتبط است که به کنترل صریح بر بخش‌های مجاز به تغییر در تبدیل کُد با کمک هوش مصنوعی و بخش‌هایی از برنامه که باید پایدار بمانند نیاز دارند.

  1. تولید کُدِ کنترل‌پذیر و حافظ ساختار

  2. تعمیر موضعی برنامه و بازآرایی کران‌مند

  3. بازنمایی‌های گسستهٔ سلسله‌مراتبی برای کد منبع

  4. تولید گسستهٔ نقاب‌دار برای کد منبع

  5. کنترل نهفته برای مصنوعات نرم‌افزاری

محدودیت‌ها و مرزهای شواهد را ببینید

محدودیت‌ها

  • این مطالعه به توابع کوتاه Python که تا 64 توکن برش خورده‌اند محدود است.
  • ارزیابی به‌جای آزمون‌های هم‌ارزی کارکردی، از رمزگشایی argmax و سنجه‌های جانشین نحوی یا ساختاری استفاده می‌کند.
  • حفظ دقیق امضا همچنان ضعیف است.
  • کنترل سطح پایین از کنترل سطح بالا ضعیف‌تر است.
  • موقعیت‌های نهفته هنوز با نواحی معنایی، مانند بازه‌های AST، امضاها یا ساختار جریان کنترل، هم‌تراز نشده‌اند.
  • نتایج، درستیِ ترمیم عملی، بازآرایی یا تغییرات در سطح مخزن را اثبات نمی‌کنند.

منابع مورد استناد مقاله

این مدخل‌ها با بخش شماره‌گذاری‌شدهٔ References در فایل PDF مقاله متناظرند.

  1. Ali Razavi, Aaron van den Oord, Oriol Vinyals. . Generating Diverse High-Fidelity Images with VQ-VAE-2. Advances in Neural Information Processing Systems.
  2. Jacob Austin, Daniel D. Johnson, Jonathan Ho, Daniel Tarlow, Rianne van den Berg. . Structured Denoising Diffusion Models in Discrete State-Spaces. Advances in Neural Information Processing Systems.
  3. Subham Sekhar Sahoo, Marianne Arriola, Yair Schiff, Aaron Gokaslan, Edgar Marroquin, Justin T Chiu, Alexander Rush, Volodymyr Kuleshov. . Simple and Effective Masked Diffusion Language Models. Advances in Neural Information Processing Systems.
  4. Shraddha Barke, Michael B. James, Nadia Polikarpova. . Grounded Copilot: How Programmers Interact with Code-Generating Models. Proceedings of the ACM on Programming Languages.
  5. Fengji Zhang, Bei Chen, Yue Zhang, Jacky Keung, Jin Liu, Daoguang Zan, Yi Mao, Jian-Guang Lou, Weizhu Chen. . RepoCoder: Repository-Level Code Completion Through Iterative Retrieval and Generation. Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing.

منابع و بازتولیدپذیری

ناشر
ACM
منابع انتشار
نسخهٔ عمومی مقاله، جدول‌های نتایج، شکل توضیحی و فایل‌های استناد در اینجا در دسترس‌اند. کُد پیاده‌سازی و نقاط وارسی به‌صورت عمومی منتشر نشده‌اند.

بیانیهٔ داده

منبع
زیرمجموعه‌ای پیش‌پردازش‌شده از CodeParrot Clean شامل ۲٬۰۰۰ تابع Python.
مجوز
این وبگاه هیچ‌یک از فایل‌های مجموعه‌داده را بازتوزیع نمی‌کند؛ استفادهٔ مجدد همچنان تابع مجوزهای مجموعه‌دادهٔ بالادستی CodeParrot و کد منبع است.
پیش‌پردازش
توابع Python پیش از رمزگذاری سلسله‌مراتبی، توکن‌بندی می‌شوند و با برش یا پُرگذاری به 64 توکن می‌رسند.
تفکیک
پوستر یک مجموعهٔ ارزیابی شامل 2,000 تابع را گزارش می‌کند؛ مقالهٔ عمومی فاقد فهرست ثابتِ تفکیک آموزش/اعتبارسنجی است.
قالب
توابع کد مبدأ Python، دنباله‌های توکن به سبک GPT، دنباله‌های کد سطح‌بالا با طول 16 و دنباله‌های سطح‌پایین با طول 32.
نسخه / جمعِ مقابله‌ای
مقالهٔ دوصفحه‌ای، سرجمع مقابله‌ای مجموعه‌داده و شناسهٔ تغییرناپذیر اسنپ‌شات را گزارش نمی‌کند.
گردآوری
هیچ اسکریپت عمومی گردآوری همراه صفحهٔ مقاله منتشر نشده است.
محدودیت‌های استفاده
این نمونه نمایندهٔ نرم‌افزار در مقیاس مخزن، چندین زبان برنامه‌نویسی یا وظایف ترمیمِ راستی‌آزمایی‌شده از نظر رفتاری نیست.

نسخه‌ها

  1. نسخهٔ منتشرشدهACM FSE Companion, 2026
  2. بازکردن رکورد مخزنرکورد Zenodo نمایه‌شده در OpenAIRE
  3. رکورد کتاب‌شناختیDBLP
  4. بازکردن رکورد علمیOpenAlex
  5. رکورد گراف استنادSemantic Scholar
  6. متن کاملِ به‌اشتراک‌گذاشته‌شده از سوی نویسندهResearchGate
  7. خلاصه به زبان سادهKudos

DOI منتشرشده شناسهٔ اصلی کتاب‌شناختی است. این صفحه در همهٔ نسخه‌ها تنها URL مرجع پروژه باقی می‌ماند.