Editorial Ilmu Komputer & AI
Open AccessOA2026
Memprediksi Kode Keluar Program dengan LLM dan Semantik Bahasa Pemrograman
Apakah LLM Menerapkan Semantik Formal atau Mengandalkan Prior Pra-pelatihan?
Lara Marinov; Aditya Thimmaiah; Jayanth Srinivasa; Junyi Jessy Li; Milos Gligoricยท 2026ยท DOI 10.48550/arXiv.2609.00579
Masalah inti
Large language models (LLM) telah menunjukkan kemahiran dalam tugas-tugas rekayasa perangkat lunak seperti pembuatan kode dan penerjemahan. Namun, pemahaman mereka tentang semantik bahasa pemrograman masih menjadi keterbatasan utama. Bahkan ketika semantik eksplisit diberikan, tidak jelas apakah LLM menerapkan aturan tersebut atau mengandalkan prior yang dipelajari selama pra-pelatihan. Makalah ini memperkenalkan Program Executability Prediction (PrEx), tugas baru yang meminta model memprediksi apakah suatu program valid atau tidak valid secara semantik, dan jika tidak valid, aturan formal mana yang dilanggar, berdasarkan sintaks dan semantik operasional program. PrEx memerlukan program yang valid dan tidak valid, sehingga penulis membangun dataset dengan transformasi tidak valid yang dihasilkan secara sistematis dari program yang valid. Mereka mengevaluasi LLM coding sumber terbuka di bawah dua formalisme semantik dan dua pergeseran semantik pada split program Human-Written, LLM-Translated, dan Fuzzer-Generated.
Inovasi
Temuan mengungkapkan bahwa LLM bersandar pada prior pra-pelatihan daripada secara sistematis menerapkan aturan yang diberikan. Kinerja sangat buruk pada semantik yang dimodifikasi, dan menurun lebih jauh seiring meningkatnya kompleksitas program. Secara spesifik, di bawah semantik asli, model mencapai akurasi moderat, tetapi ketika semantik digeser, akurasi turun secara signifikan. Misalnya, pada split Human-Written, akurasi menurun dari menjadi di bawah pergeseran semantik (nilai pasti tidak disediakan dalam abstrak). Demikian pula, pada split LLM-Translated dan Fuzzer-Generated, degradasinya bahkan lebih terasa. Model juga kesulitan mengidentifikasi aturan spesifik yang dilanggar saat memprediksi program tidak valid. Hasil ini berlaku pada formalisme big-step dan small-step, yang menunjukkan kecenderungan umum untuk mengandalkan prior. Studi ini menyoroti bahwa LLM tidak secara efektif menggunakan semantik yang diberikan, yang merupakan keterbatasan kritis untuk tugas yang memerlukan pemahaman semantik yang tepat.
Large language models (LLM) telah menunjukkan kemahiran dalam tugas-tugas rekayasa perangkat lunak seperti pembuatan kode dan penerjemahan. Namun, pemahaman mereka tentang semantik bahasa pemrograman masih menjadi keterbatasan utama. Bahkan ketika semantik eksplisit diberikan, tidak jelas apakah LLM menerapkan aturan tersebut atau mengandalkan prior yang dipelajari selama pra-pelatihan. Makalah ini memperkenalkan Program Executability Prediction (PrEx), tugas baru yang meminta model memprediksi apakah suatu program valid atau tidak valid secara semantik, dan jika tidak valid, aturan formal mana yang dilanggar, berdasarkan sintaks dan semantik operasional program. PrEx memerlukan program yang valid dan tidak valid, sehingga penulis membangun dataset dengan transformasi tidak valid yang dihasilkan secara sistematis dari program yang valid. Mereka mengevaluasi LLM coding sumber terbuka di bawah dua formalisme semantik dan dua pergeseran semantik pada split program Human-Written, LLM-Translated, dan Fuzzer-Generated.
Tugas PrEx diformalkan sebagai berikut: diberikan program dengan sintaks dan semantik operasional
, model harus memprediksi label yang menunjukkan eksekutabilitas, dan jika , mengidentifikasi aturan yang dilanggar dari himpunan aturan formal . Konstruksi dataset melibatkan pembuatan program valid dan penerapan transformasi tidak valid secara sistematis. Misalnya, program valid dapat ditransformasi dengan mengubah cakupan variabel atau konsistensi tipe. Penulis mengevaluasi LLM di bawah dua formalisme semantik: (1) semantik operasional big-step dan (2) semantik operasional small-step. Mereka juga memperkenalkan dua pergeseran semantik: (a) memodifikasi semantik konstruksi inti (misalnya, mengubah urutan evaluasi ekspresi) dan (b) mengubah pemetaan sintaks-semantik (misalnya, mendefinisikan ulang makna kata kunci). Evaluasi mencakup tiga split program: Human-Written, LLM-Translated, dan Fuzzer-Generated. Alur kerja keseluruhan digambarkan di bawah ini:
Mengapa penting
Penulis menganalisis mengapa LLM gagal menerapkan semantik yang diberikan. Salah satu hipotesis adalah bahwa data pra-pelatihan berisi kode melimpah dengan semantik standar, yang menyebabkan model menghafal pola daripada bernalar tentang aturan formal. Ketika semantik dimodifikasi, model tidak dapat beradaptasi karena mereka tidak memiliki kemampuan untuk secara sistematis menerapkan aturan baru. Ini bermasalah untuk aplikasi di mana semantik dapat bervariasi atau spesifik domain. Studi ini juga menunjukkan bahwa kinerja menurun seiring kompleksitas program, yang menunjukkan bahwa model kesulitan melacak beberapa batasan semantik. Implikasinya signifikan: untuk tugas rekayasa perangkat lunak yang andal, LLM perlu dilatih untuk menerapkan semantik formal secara eksplisit, mungkin melalui fine-tuning atau strategi prompting yang mendorong penalaran berbasis aturan. Tugas dan dataset PrEx menyediakan tolok ukur untuk penelitian di masa depan. Penulis menyediakan PrEx di https://github.com/EngineeringSoftware/prex.
Siapa yang sebaiknya membaca
Praktisi dan peneliti ilmu komputer
Membuka konten memberโฆ