Cognitive Programming Assistant
摘要
With the growing advent of intelligent software engineering tools which can write code, there has been interest in automating the programming tasks that surround this coding. While the complete elimination of human aspect is very difficult and unsustainable, there are some aspects of these tools which can be augmented with the help of artificial intelligence and natural language understanding. The goal of those aspects is to augment certain programming aspects and enhance code understanding. The goal of programming assistant should not only be to write code automatically, but suggest the right tech stack so the code suits the use case, and is scalable, high-performance and maintainable in the long run. Another example can be automatic identification of the intent of programming task objective and the subject on which it was performed, and based on that, recommend the most optimal set of language, framework, and design pattern to fulfill the programmer’s intent. In this paper, we develop a novel, intelligent system which can provide appropriate useful recommendations to the user in real-time, while taking into account the current use case, software language’s documentation, historical performance of functions, and certain user constraints. The system solves the above challenges by recommending the correct language paradigm, language level, and suggest optimal and efficient functions to the programmers as they code, so the code is maintainable, efficient, scalable, and helps reduce code base bugs in long term.