Please note! This essay has been submitted by a student.
Inductive programming is an inter-disciplinary domain which acts as a bridgeof generalized version of functional pro-gram synthesizer from software scienceto artificial intelligence. It has providedmany breakthroughs in recent years and isalso used by people that lack the abilityto program. Inductive programming hasalso made the tedious repetitive tasks andautomated the given task which is handledeffectively and efficiently. In this paper,we will discuss the evolution of inductiveprogramming. We will further discuss thetechniques used in inductive programmingand some real-time applications. We willdiscuss the different paradigms of ma-chine learning and inductive programmingand compare accordingly. Lastly, We willdemonstrate the use of tools developedusing inductive programming.
Today, advancement of technology has made theutility of computing systems in every day to daytask. The price of computer systems are get-ting lower and the speed of computing is gettinghigher. The emergence of digitization in 1960, re-sulted in the size of data which was earlier con-sidered as ”very large” is now considered to be”very small”. Majority of users fail to utilizethe power of computing because of their lack ofskills in programming. A large number of peo-ple were mainly employed in data entry job wherethe most crucial job was to perform repetitive ac-tions manually because there were no macro lan-guages (scripts) available in the market which canease their work and provide results which are ef-fective and time-saving.
The recent advancementin technology has introduced various tools basedon inductive programming in real life applicationswhere the given macro scripts are easily and read-ily available like Flash Fill, Autocomplete, MagicHaskeller etc. Flash Fill is one of the most com-monly used tools which is powered by inductiveprogramming methods and it learns from very fewexamples and delivers the appropriate results.Inductive programming mainly studies the auto-matic synthesis of computer programs from exam-ples and background knowledge.
There are mainly 2 types of classification of Inductive Programmingwhere one is developed from research on inductiveprogram synthesis named as Inductive functionalprogramming (IFP), and other from inductive in-ference techniques using logic, nowadays termedas Inductive logic programming (ILP).Inductive functional programming (IFP) algo-rithms automates the process and generates func-tional programs from ambiguous specificationssuch as a set of input-output (I/O) example pairsor a loose condition to be satisfied by inputsand outputs(Summers, 1977). It can also includecases where no recursion is involved, as in geneticprogramming, but it usually involves generationof recursive functional programs(Kitzelmann andSchmid, 2006). There are mainly two approchesunder active development namely Analytical ap-proach and Generate-and-test approach. Ana-lytical approch mainly performs pattern match-ing to the given I/O example pairs. It providesI/O with increase level of complexity and re-quire more examples. Kitzelmann and Schmid(2007) developed the IGOR-II system using ana-lytical approach. Generate-and-test approach, asthe name suggest generates many programs andselects those that satisfy the given condition. Thisapproach doesn’t have any limitations but con-sumes more time than analytical approach.