The rapid advancement of computing technologies presents increasingly complex challenges in software and hardware development. Traditional programming approaches struggle to meet the growing demands for ease of use, comprehensibility, and efficiency. This thesis explores a novel paradigm of machine learning-driven assistance to address critical challenges across different computing domains, from programming assistance to compiler optimization and hardware design.
In particular, this thesis advances three key dimensions: (1) Automation, by presenting a novel reinforcement learning assistant and a large language model-powered assistant with self-correction and self-verification capabilities, relieving human programming efforts and reducing bugs in both software and hardware development; (2) Comprehensiveness, by learning source code, binary code and natural language documentation simultaneously, enabling deep program understanding and effective code analysis; (3) Optimization, through hardware-aware cost modeling and efficient code transformation exploration, delivering faster and more effective code optimization.
By integrating domain-specific knowledge with advanced learning techniques tailored to diverse programming tasks, our AI assistants effectively help developers understand, generate, and optimize code while maintaining correctness and performance requirements. This thesis establishes a foundation for more accessible development paradigms and highlights the potential for AI to democratize both software and hardware development.