Patra, JibeshHerrmann, Andrea2024-04-082024-04-0820220720-8928https://dl.gi.de/handle/20.500.12116/43851The goal of the dissertation summarized here is to use program analysis and novel learning-based techniques to alleviate some of the challenges faced by developers while ensuring the correctness and reliability of programs. We focus on dynamically typed languages such as JavaScript and Python for their popularity and present six approaches that leverages analysis of code corpora in aiding to solve software engineering problems. We use static analysis to generate new programs, to seed bugs in programs, and to obtain data for training neural models. We present an effective technique called Generalized Tree Reduction algorithm (GTR), to reduce arbitrary test inputs that can be represented as a tree, such as program code, PDF files, and XML documents. The efficiency of input reduction is increased by learning transformations from a corpus of example data.encode analysisprogram analysislearning-based techniquescorrectnessreliabilityJavaScriptPythonAnalyzing Code Corpora to Improve the Correctness and Reliability of ProgramsText/Journal Article