Skip to main content

Inductive Programming

  • Living reference work entry
  • Latest version View entry history
  • First Online:
Encyclopedia of Machine Learning and Data Science
  • 7 Accesses

Abstract

Inductive programming is a branch of program synthesis that is based on inductive inference where a recursive, declarative program is constructed from an incomplete specification, especially from input–output examples. Inductive logic programming and inductive functional programming are addressed. Central concepts such as predicate invention and background knowledge are defined. Two worked-out examples are presented to illustrate inductive logic programming and inductive functional programming.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

References

  • Biermann AW (1978) The inference of regular LISP programs from examples. IEEE Trans Syst Man Cybernet 8(8):585–600

    Article  MathSciNet  Google Scholar 

  • Cropper A, Dumancic S, Muggleton SH (2020). Turning 30: new ideas in inductive logic programming. In: Bessiere C (ed) 29th International Joint Conference on Artificial Intelligence (IJCAI 2020). IJCAI/AAAI, pp 4833–4839

    Google Scholar 

  • Dai WZ, Xu Q, Yu Y, Zhou ZH (2019) Bridging machine learning and logical reasoning by abductive learning. In: Wallach HM et al (eds) Advances in neural information processing systems, vol 32, (NeurIPS 2019), pp 2815–2826

    Google Scholar 

  • Ferri-RamĂ­rez C, Hernández-Orallo J, RamĂ­rez-Quintana MJ (2001) Incremental learning of functional logic programs. In: International Symposium on Functional and Logic Programming (FLOPS 2001). Lecture Notes in Artificial Intelligence, vol 2024 . Springer, pp 233–247

    Google Scholar 

  • Flener P (1997) Inductive logic program synthesis with DIALOGS. In: Muggleton SH (ed) Revised Selected Papers of the 6th International Workshop on Inductive Logic Programming (ILP 1996). Lecture Notes in Artificial Intelligence, vol 1314. Springer, pp 175–198

    Google Scholar 

  • Flener P (2002) Achievements and prospects of program synthesis. In: Kakas A, Sadri F (eds) Computational Logic: Logic Programming and Beyond; Essays in Honour of Robert A. Kowalski. Lecture Notes in Artificial Intelligence, vol 2407. Springer, pp 310–346

    Google Scholar 

  • Flener P, Partridge D (2001) Inductive programming. Autom Softw Eng 8(2):131–137

    Article  Google Scholar 

  • Flener P, Yılmaz S (1999) Inductive synthesis of recursive logic programs: achievements and prospects. J Logic Program 41(2–3):141–195

    Article  MathSciNet  Google Scholar 

  • Gulwani S (2011). Automating string processing in spreadsheets using input-output examples. ACM Sigplan Not 46(1):317–330

    Article  Google Scholar 

  • Gulwani S, Hernández-Orallo J, Kitzelmann E, Muggleton SH, Schmid U, Zorn B (2015) Inductive programming meets the real world. Commun ACM 58(11):90–99

    Article  Google Scholar 

  • Hernández-Orallo J, MartĂ­nez-Plumed F, Schmid U, Siebers M, Dowe DL (2016). Computer models solving intelligence test problems: Progress and implications. Artif Intell 230:74–107

    Article  MathSciNet  Google Scholar 

  • Hofmann M, Kitzelmann E, Schmid U (2009) A unifying framework for analysis and evaluation of inductive programming systems. In: Goerzel B, Hitzler P, Hutter M (eds) 2nd Conference on Artificial General Intelligence (AGI 2009), Amsterdam. Atlantis Press, pp 55–60

    Google Scholar 

  • Katayama S (2005) Systematic search for lambda expressions. In: Trends in functional programming. Intellect, Bristol, pp 111–126

    Google Scholar 

  • Kitzelmann E, Schmid U (2006) Inductive synthesis of functional programs – an explanation based generalization approach. J Mach Learn Res 7(Feb):429–454

    MathSciNet  Google Scholar 

  • Kitzelmann E (2008). Analytical inductive functional programming. In: International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2008). Springer, pp 87–102

    Google Scholar 

  • Muggleton SH, Lin D (2013) Meta-interpretive learning of higher-order dyadic datalog: predicate invention revisited. In: Rossi F (ed) 23rd International Joint Conference on Artificial Intelligence (IJCAI 2013). IJCAI/AAAI, pp 1551–1557

    Google Scholar 

  • Muggleton SH, Schmid U, Zeller C, Tamaddoni-Nezhad A, Besold T (2018) Ultra-strong machine learning: comprehensibility of programs learned with ILP. Mach Learn 107(7):1119–1140

    Article  MathSciNet  Google Scholar 

  • Olsson JR (1995) Inductive functional programming using incremental program transformation. Artif Intell 74(1):55–83

    Article  Google Scholar 

  • Rabold J, Deininger H, Siebers M, Schmid U (2019) Enriching visual with verbal explanations for relational concepts – combining LIME with Aleph. In: Joint European Conference on Machine Learning and Knowledge Discovery in Databases, ECML 2019. Springer, pp 180–192

    Google Scholar 

  • Rolim R, Soares G, D’Antoni L, Polozov O, Gulwani S, Gheyi R, Suzuki, R, Hartmann B (2017). Learning syntactic program transformations from examples. In: IEEE/ACM 39th International Conference on Software Engineering (ICSE 2017). IEEE, pp 404–415

    Google Scholar 

  • Rule J, Schulz E, Piantadosi ST, Tenenbaum J (2018). Learning list concepts through program induction. In: Kalish C et al (ed) 40th Annual Meeting of the Cognitive Science Society (CogSci 2018). cognitivesciencesociety.org 2018

    Google Scholar 

  • Shapiro EY (1983) Algorithmic program debugging. The MIT Press, Cambridge

    Google Scholar 

  • Schmid U (2018). Inductive programming as approach to comprehensible machine learning. In: Beierle C et al (ed) 6th Workshop KI & Kognition (KIK 2018), CEUR Workshop Proceedings, vol 2194, pp 4–12

    Google Scholar 

  • Schmid U, Kitzelmann E (2011) Inductive rule learning on the knowledge level. Cogn Syst Res 12(3–4):237–248

    Article  Google Scholar 

  • Smith DR (1984) The synthesis of LISP programs from examples: a survey. In: Biermann AW, Guiho G, Kodratoff Y (eds) Automatic program construction techniques. Macmillan, New York, pp 307–324

    Google Scholar 

  • Smith DR (1985) Top-down synthesis of divide-and-conquer algorithms. Artif Intell 27(1):43–96

    Article  MathSciNet  Google Scholar 

  • Sobania, D, Briesch, M, Rothlauf, F (2022) Choose your programming copilot: a comparison of the program synthesis performance of GitHub copilot and genetic programming. In: Proceedings of the Genetic and Evolutionary Computation Conference(GECCO 2022). ACM, pp 1019–1027

    Google Scholar 

  • Solar-Lezama A, Tancau L, Bodik R, Seshia S, Saraswat V (2006) Combinatorial sketching for finite programs. In: 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2006). ACM, pp 404–415

    Google Scholar 

  • Stahl I (1995) The appropriateness of predicate invention as bias shift operation in ILP. Mach Learn 20(1–2):95–117

    Article  Google Scholar 

  • Summers PD (1977) A methodology for LISP program construction from examples. J ACM 24(1):161–175

    Article  MathSciNet  Google Scholar 

  • Zhang, J, Cambronero, J, Gulwani, S, Le, V, Piskac, R, Soares, G, Verbruggen, G (2022). Repairing bugs in python assignments using large language models. arXiv preprint arXiv:2209.14876

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ute Schmid .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 Springer Science+Business Media, LLC, part of Springer Nature

About this entry

Check for updates. Verify currency and authenticity via CrossMark

Cite this entry

Flener, P., Schmid, U. (2024). Inductive Programming. In: Phung, D., Webb, G.I., Sammut, C. (eds) Encyclopedia of Machine Learning and Data Science. Springer, New York, NY. https://doi.org/10.1007/978-1-4899-7502-7_137-2

Download citation

  • DOI: https://doi.org/10.1007/978-1-4899-7502-7_137-2

  • Published:

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4899-7502-7

  • Online ISBN: 978-1-4899-7502-7

  • eBook Packages: Springer Reference Computer SciencesReference Module Computer Science and Engineering

Publish with us

Policies and ethics

Chapter history

  1. Latest

    Inductive Programming
    Published:
    19 December 2023

    DOI: https://doi.org/10.1007/978-1-4899-7502-7_137-2

  2. Original

    Inductive Programming
    Published:
    04 August 2016

    DOI: https://doi.org/10.1007/978-1-4899-7502-7_137-1