GAP-Gen: Guidierte automatische Python-Codegenerierung

Die automatische Codegenerierung aus natürlichen Sprachbeschreibungen kann während des Softwareentwicklungsprozesses erhebliche Vorteile bieten. In dieser Arbeit stellen wir GAP-Gen vor, eine geführte Methode zur automatischen Generierung von Python-Code, die auf syntaktischen und semantischen Einschränkungen für Python basiert. Zunächst führen wir syntaktische Einschränkungen für Python in Form von Syntax-Flow ein, einer vereinfachten Version des Abstract Syntax Tree (AST), die die Größe und hohe Komplexität des AST reduziert, gleichzeitig jedoch entscheidende syntaktische Informationen des Python-Codes beibehält. Zusätzlich zu Syntax-Flow führen wir Variable-Flow ein, welches Variablen- und Funktionsnamen konsistent über den gesamten Code hinweg abstrahiert. Im Gegensatz zu vorherigen Ansätzen, die auf Vortrainingsprozessen basieren, konzentrieren wir uns in unserer Arbeit auf die Optimierung des Fine-Tuning-Prozesses. Dies reduziert die rechnerischen Anforderungen erheblich, behält jedoch eine hohe Generierungseffizienz bei der automatischen Erzeugung von Python-Code. GAP-Gen feintunt die transformerbasierten Sprachmodelle T5 und CodeT5 mithilfe der Code-to-Docstring-Datensätze CodeSearchNet, CodeSearchNet AdvTest und Code-Docstring Corpus aus EdinburghNLP. Unsere Experimente zeigen, dass GAP-Gen im Vergleich zu früheren Ansätzen bei der automatischen Generierung von Python-Code bessere Ergebnisse erzielt.