Geri Dön

Python söz dizimi hatalarının derin öğrenme yöntemleri ile onarılması

Fixing python syntax errors with deep learning methods

  1. Tez No: 849512
  2. Yazar: SENA DİKİCİ
  3. Danışmanlar: PROF. DR. TURGAY TUGAY BİLGİN
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2024
  8. Dil: Türkçe
  9. Üniversite: Bursa Teknik Üniversitesi
  10. Enstitü: Lisansüstü Eğitim Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
  13. Sayfa Sayısı: 144

Özet

Otomatik program onarımı (APR), yazılım geliştirme süreçlerinde karşılaşılan hataları tespit etmek ve onarmak için otomatik teknikler kullanan bir araştırma alanıdır. Bu alanda yapılan çalışmalar, hata düzeltme sürecini hızlandırmayı, yazılım kalitesini artırmayı ve geliştiricilerin üzerindeki yükü azaltmayı hedefler. Bu alandaki son yenilikler, derin öğrenme ve makine öğrenimi tekniklerinin yanı sıra geleneksel algoritmik yaklaşımları içermekte ve kod analizi, hata türü tahmini, hatalı kod segmentlerinin lokalizasyonu ve onarım önerileri sunma gibi aşamaları otomatize etmekte büyük ilerlemeler kaydetmektedir. Bu tez çalışması, Python programlama dilinde yazılmış kodların otomatik olarak onarılmasını hedefleyen ve yapay zeka teknolojilerini kullanan bir sistem üzerine odaklanmaktadır. Çalışma, BiLSTM ve LSTM ağları kullanılarak geliştirilen özel modeller ile hatalı kodların tespit edilip onarılması sürecini içermektedir. Çalışmanın ilk aşamasında, farklı hata türlerine sahip hatalı Python kodları üzerinde eğitim gerçekleştirilmiştir. BiLSTM hata türü tahmin modeli, %98'lik bir doğruluk değeri elde ederek hata türlerini etkin bir şekilde tespit edebildiğini kanıtlamıştır. Python dilinde yazılmış ve doğru biçimde işlev gösteren kod örnekleri üzerinden, bu kodların tokenize edilerek temel yapı taşlarına ayrılması ve her bir tokenin benzersiz tanımlayıcılar ile eşleştirilmesi işlemi gerçekleştirilmiştir. Bu işlem sonucunda oluşturulan veri seti, LSTM tabanlı bir token tahmin modelinin eğitimi için kullanılmıştır. Model, eğitim sonucunda %98,44'lük bir doğruluk oranı ve %98,91'lik F1 skoruna ulaşarak yüksek düzeyde başarı sergilemiştir. Sistemin performansı, mutasyon testiyle oluşturulmuş 925 adet hatalı kod örneği üzerinde deneyimlenmiş ve bu kodların 794'ü (%85,84) başarılı bir şekilde onarılmıştır. Bu sonuçlar, sistemin hatalı Python kodlarını tespit etme ve onarma konusunda oldukça yetkin olduğunu göstermektedir. Şablon tabanlı APR aracı olan PyNar Sohbet Robotu ile karşılaştırıldığında tez çalışmasının onarım sistemi, PyNar'ın %53,3'lük başarısına kıyasla %85,84 gibi daha yüksek bir başarı oranına ulaşmıştır. Bu karşılaştırma, geliştirilen otomatik onarım sisteminin etkinliğini ve yapay zeka destekli çözüm yaklaşımlarının bu alanda ne kadar başarılı olabileceğini gözler önüne sermiştir. Bu akademik çalışma, otomatik program onarımı konusunda önemli bir ilerlemeyi işaret ederek bu alandaki ileriye dönük çalışmalar için güçlü bir referans sağlamaktadır. Elde edilen yüksek doğruluk oranları ve onarım başarısı, APR araçlarının yazılım geliştirme alanında önemli bir etki yaratabileceğinin göstergesidir. Bu tür sistemlerin gelişimi ve iyileştirilmesi kod kalitesini artırma ve geliştirme süreçlerinin verimliliğini iyileştirme yolunda umut verici yenilikler sunmaktadır.

Özet (Çeviri)

Automatic Program Repair (APR) is a field of research that employs automated techniques to detect and fix errors encountered in software development processes. Studies in this area aim to accelerate the error correction process, enhance software quality and reduce the burden on developers. Recent innovations in this field encompass deep learning and machine learning techniques, alongside traditional algorithmic approaches, making significant strides in automating stages such as code analysis, error type prediction, localization of faulty code segments and offering repair suggestions. This disputation focuses on a system that targets the automatic repair of code written in the Python programming language using artificial intelligence technologies. The work involves the development of specialized models using BiLSTM and LSTM networks for the detection and repair of faulty code. In the initial phase, training was conducted on faulty Python codes with various error types. The BiLSTM error type prediction model achieved a 98% accuracy rate, effectively demonstrating its capability to identify error types. Python code samples that function correctly were processed to tokenize and break them down into basic building blocks, with each token matched with unique identifiers. This process resulted in a dataset used for training a LSTM-based token prediction model. Post-training, the model exhibited high success, achieving a 98.44% accuracy rate and a 98.91% F1 score. The system's performance was tested on 925 faulty code samples created through mutation testing, successfully repairing 794 of them (85.84%). These results demonstrate the system's proficiency in detecting and repairing faulty Python code. When compared with PyNar, a template-based APR tool chatbot, the thesis's repair system reached a higher success rate of 85.84% compared to PyNar's 53.3%. This comparison highlights the effectiveness of the developed automatic repair system and underscores the potential success of AI-supported solution approaches in this field. This research marks a significant advancement in automatic program repair, providing a robust reference for future research in this area. The high accuracy and repair success rates indicate that APR tools could have a substantial impact in the field of software development. The continued development and improvement of such systems offer promising innovations for enhancing code quality and increasing the efficiency of development processes.

Benzer Tezler

  1. Fiziksel programlama aracı destekli programlama öğretiminin ortaokul öğrencilerinin bilgi işlemsel düşünme becerilerine ve özyeterlik algılarına etkisi

    The effect of physical programming tool supported programming teaching on secondary school students' computational thinking skills and self-efficacy perceptions

    EZGİ ARZU YURDAKÖK

    Yüksek Lisans

    Türkçe

    Türkçe

    2022

    Eğitim ve ÖğretimBaşkent Üniversitesi

    Bilgisayar ve Öğretim Teknolojileri Eğitimi Ana Bilim Dalı

    DOÇ. DR. FİLİZ KALELİOĞLU

  2. Predictive error compensated wavelet neural networks framework for time series prediction

    Zaman serisi tahmini için hata tazminli dalgacık dönüşümlü sinir ağları çerçeve yazılımı

    SERKAN MACİT

    Yüksek Lisans

    İngilizce

    İngilizce

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    PROF. DR. BURAK BERK ÜSTÜNDAĞ

  3. Dede Korkut Hikâyeleri'ndeki eş dizimli yapıların bilgisayarlı dil bilim yöntemlerine göre incelenmesi

    The study of collocation structures in Dede Korkut Stories according to computational linguistics methods

    YASEMİN KUBİLAY

    Doktora

    Türkçe

    Türkçe

    2024

    DilbilimUşak Üniversitesi

    Türk Dili ve Edebiyatı Ana Bilim Dalı

    DOÇ. DR. MERİÇ GÜVEN

  4. Design and development of an FPGA controlled silicon pin photodiode detector array for neutron detection

    Nötron deteksiyonu için FPGA kontrollü silikon pın fotodiyot detektör dizisi tasarım ve geliştirilmesi

    AHMET BAYRAK

    Doktora

    İngilizce

    İngilizce

    2019

    Nükleer Mühendislikİstanbul Teknik Üniversitesi

    Fizik Mühendisliği Ana Bilim Dalı

    PROF. DR. CENAP ŞAHABETTİN ÖZBEN

  5. Türk dizilerinin ihracat başarısını şekillendiren teknik olmayan inovasyon ve tüketim yakınlığı

    Non-technical innovation and consumption proximity shaping the export success of Turkish TV series

    ESER ÇAPIK

    Doktora

    Türkçe

    Türkçe

    2024

    EkonometriSüleyman Demirel Üniversitesi

    İktisat Ana Bilim Dalı

    PROF. DR. MURAT ALİ DULUPÇU