4 research outputs found

    The State of the Art of Automatic Programming

    Get PDF
    Automaatprogrammeerimine või koodi genereerimine on teatud tüüpi arvutiprogrammide loomisviis, kus kood genereeritakse mõne tööriista abil, mis võimaldab arendajatel koodi kirjutada kõrgemal abstraktsioonitasemel. Selliste programmide rakendamine tarkvaraarenduse protsessis on hea viis programmeerijate produktiivsuse tõstmiseks, võimaldades neil keskenduda pigem käesolevale ülesandele kui implementatsiooni detailidele. Senises teaduskirjanduses on vaadeldud konkreetseid lähenemisi või meetodeid eraldi. Väga vähesed uurimustööd vaatlevad aga kogu valdkonna viimast taset. Käesolevas töös käsitletakse automaatprogrammeerimist olemasoleva kirjanduse süstemaatilise kirjandusülevaate meetodi abil. Töö teeb ülevaate teemaga seonduvatest algoritmidest, probleemidest ning uurmisvaldkonna avatud uurimisküsimustest ning võrdleb valdkonna hetketaset praktika hetketasemega. Vaaldeldud 37 asjakohasest uuringust tegelesid 19 automaatprogrammeerimise üldise määratlemise ja alateemadega. Kolmkümmend uuringut pakkusid välja konkreetse algoritmi või lähenemisviisi. Esitatud tehnikatest rakendati 2 praktikas. Viimasel ajal on automaatprogrammerimise fookus nihkunud programmide sünteesilt induktiivsele programmeerimisele, mille on põhjustanud läbimurded tehisintellekti valdkonnas. Mõistete ja alateemade määratlus on teadlaste vahel ühtne. Õigete spetsifikatsioonide sõnastamine ja piisava teabe andmine automatiseerimiseks on endiselt lahtine uurimisküsimus.Automatic programming or code generation is a type of computer programming where the code is generated using some tools allowing developers to write code at the higher level of abstraction. Implementing these types of programs into the software development process is a good way to boost programmers’ performance by focusing on the task at hand rather than implementation details. Current literature on the subject reviews single approach or method. Very few of them are reviewing state of the art in general. This paper reviews the state of the art of automatic programming by overviewing the existing literature on the topic using systematic literature review method. The paper overviews approaches and algorithms of the topic, examines issues and open questions in the field and compares the state of the art to the state of the practice. Of 37 relevant studies, 19 addressed general definitions and subtopics of automatic programming. 30 presented specific algorithms or approaches. 2 of proposed techniques were implemented in practice. Currently, the focus of automatic programming shifted from program synthesis to inductive programming, caused by a breakthrough in artificial intelligence. Definition of the term and subtopics is consistent between scholars. However, formulating correct specification and providing sufficient information for automation is still an open research question

    A hybrid approach to automatic programming for the object-oriented programming paradigm

    No full text

    A study of genetic programming and grammatical evolution for automatic object-oriented programming.

    Get PDF
    Master of Science in Computer Science. University of KwaZulu-Natal, Pietermaritzburg 2016.Manual programming is time consuming and challenging for a complex problem. For efficiency of the manual programming process, human programmers adopt the object-oriented approach to programming. Yet, manual programming is still a tedious task. Recently, interest in automatic software production has grown rapidly due to global software demands and technological advancements. This study forms part of a larger initiative on automatic programming to aid manual programming in order to meet these demands. In artificial intelligence, Genetic Programming (GP) is an evolutionary algorithm which searches a program space for a solution program. A program generated by GP is executed to yield a solution to the problem at hand. Grammatical Evolution (GE) is a variation of genetic programming. GE adopts a genotype-phenotype distinction and maps from a genotypic space to a phenotypic (program) space to produce a program. Whereas the previous work on object-oriented programming and GP has involved taking an analogy from object-oriented programming to improve the scalability of genetic programming, this dissertation aims at evaluating GP and a variation thereof, namely, GE, for automatic object-oriented programming. The first objective is to implement and test the abilities of GP to automatically generate code for object-oriented programming problems. The second objective is to implement and test the abilities of GE to automatically generate code for object-oriented programming problems. The third objective is to compare the performance of GP and GE for automatic object-oriented programming. Object-Oriented Genetic Programming (OOGP), a variation of OOGP, namely, Greedy OOGP (GOOGP), and GE approaches to automatic object-oriented programming were implemented. The approaches were tested to produce code for three object-oriented programming problems. Each of the object-oriented programming problems involves two classes, one with the driver program and the Abstract Data Type (ADT) class. The results show that both GP and GE can be used for automatic object-oriented programming. However, it was found that the ability of each of the approaches to automatically generate code for object-oriented programming problems decreases with an increase in the problem complexity. The performance of the approaches were compared and statistically tested to determine the effectiveness of each approach. The results show that GE performs better than GOOGP and OOGP
    corecore