Abstract
In this note, I present my personal view on the interaction of the three areas Automated Programming, Symbolic Computation, and Machine Learning. Programming is the activity of finding a (hopefully) correct program (algorithm) for a given problem. Programming is central to automation in all areas and is considered one of the most creative human activities. However, already very early in the history of programming, people started to “jump to the meta-level” of programming, i.e., started to develop procedures that automate, or semi-automate, (various aspects or parts of) the process of programming. This area has various names like “Automated Programming”, “Automated Algorithm Synthesis”, etc. Developing compilers can be considered an early example of a problem in automated programming. Automated reasoners for proving the correctness of programs with respect to a specification is an advanced example of a topic in automated programming. ChatGPT producing (amazingly good) programs from problem specifications in natural language is a recent example of automated programming. Programming tends to become the most important activity as the level of technological sophistication increases. Therefore, automating programming is maybe the most exciting and relevant technological endeavor today. It also will have enormous impact on the global job market in the software industry. Roughly, I see two main approaches to automated programming:
-
symbolic computation
-
and machine learning.
In this note, I explain how the two approaches work and that they are fundamentally different because they address two completely different ways of how problems are specified. Together, the two approaches constitute (part of) what some people like to call “artificial intelligence”. In my analysis, both approaches are just part of (algorithmic) mathematics. The approaches, like all non-trivial mathematical methods, need quite some intelligence on the side of the human inventors of the methods. However, applying the methods is just “machine execution” of algorithms. It is misleading to call the application “machine intelligence” or “artificial intelligence”. The analysis of the two approaches to automated programming also suggests that the two approaches, in the future, should be combined to achieve even higher levels of sophistication. At the end of this note, I propose some research questions for this new direction.
Article PDF
Similar content being viewed by others
Data availability statement
Data sharing not applicable to this article as no datasets were generated or analysed during the current study.
References
Buchberger, B.: Meditation in Today’s World. Part I: Science, Technology, Economy, Welfare: The Reflexion Principle. (2022). Video on Youtube: https://youtu.be/rNhRn7WMT_U
Buchberger, B.: Symbolic computation (an editorial). J. Symb. Comput. 1(1), 1–6 (1985). https://doi.org/10.1016/S0747-7171(85)80025-0
Grover, A., Thornton, C., Singh, P.: Automated algorithm synthesis: A survey. ACM Comput. Surv. 54(2), 1–36 (2021)
Buchberger, B., Jebelean, T., Kutsia, T., Maletzky, A., Windsteiger, W.: Theorema 2.0: Computer-assisted natural-style mathematics. J. Formaliz. Reason. 9(1), 149–185 (2016). https://doi.org/10.6092/issn.1972-5787/4568
Buchberger, B.: Algorithm invention and verification by lazy thinking. In: Petcu, D., Negru, V., Zaharie, D., Jebelean, T. (eds.) Proceedings of SYNASC 2003 (5th International Workshop on Symbolic and Numeric Algorithms for Scientific Computing), Timişoara, Romania, October 1–4, 2003, pp. 2–26. Mirton Publisher, Timişoara (2003). ISBN: 973-661-104-3
Buchberger, B., Craciun, A.: Algorithm synthesis by lazy thinking: Examples and implementation in Theorema. In: Kamareddine, F., Proc. of the Mathematical Knowledge Management Workshop, Edinburgh, November 25, 2003, EPTCS, vol. 93, pp. 24–59. (2003). ISBN: 044451290X
ChatGPT: Optimizing Language Models for Dialogue. (2022). https://openai.com/blog/chatgpt/
Buchberger, B.: Is ChatGPT Smarter Than Master’s Applicants? RISC Report Series 23-04, Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Altenberger Straße 69, 4040 Linz, Austria (2023)
Buchberger, B.: Computer-unterstützter Algorithmenentwurf (computer-aided algorithm design). In: Bibel, W., Siekmann, J.H. (eds.) Proceedings of the “Frühjahrsschule Künstliche Intelligenz” (Spring School in Artificial Intelligence), Teisendorf, Germany, March 15–24, 1982. Informatik-Fachberichte, vol. 59, pp. 141–202. Springer, (1982)
Coquand, T., Huet, G.: The Coq Proof Assistant. (2022). https://coq.inria.fr/
Nipkov, T., Paulson, L.: The Isabelle Proof Assistant. (2022). https://isabelle.in.tum.de/
Kaufmann, D., Biere, A., Kauers, M.: Verifying large multipliers by combining SAT and computer algebra. In: Barrett, C.W., Yang, J. (eds.) 2019 Formal Methods in Computer Aided Design, FMCAD 2019, San Jose, CA, USA, October 22–25, 2019, pp. 28–36. IEEE, (2019)https://doi.org/10.23919/FMCAD.2019.8894250
Codex.: (2022). https://openai.com/blog/openai-codex
Marcus, G.: Transcript of an Interview with Ezra Klein. (2023). https://www.nytimes.com/2023/01/06/podcasts/transcript-ezra-klein-interviews-gary-marcus.html
Jain, N., Vaidyanath, S., Iyer, A.S., Natarajan, N., Parthasarathy, S., Rajamani, S.K., Sharma, R.: Jigsaw: Large language models meet program synthesis. In: 44th IEEE/ACM 44th International Conference on Software Engineering, ICSE 2022, Pittsburgh, PA, USA, May 25-27, 2022, pp. 1219–1231. ACM, (2022). https://doi.org/10.1145/3510003.3510203
Buchberger, B.: Symbolic computation in software science: My personal view. In: Kutsia, T. (ed.) Proceedings of the 9th International Symposium on Symbolic Computation in Software Science, SCSS 2021, Hagenberg, Austria, September 8-10, 2021. EPTCS, vol. 342, pp. 1–13 (2021). https://doi.org/10.4204/EPTCS.342.1
Funding
Open access funding provided by Johannes Kepler University Linz.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of Interest
The author declares that he has no conflict of interest.
Remark
This note is a significant extension of [16], which was written for a different purpose and at a time when ChatGPT was not yet available.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Buchberger, B. Automated programming, symbolic computation, machine learning: my personal view. Ann Math Artif Intell 91, 569–589 (2023). https://doi.org/10.1007/s10472-023-09894-7
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10472-023-09894-7
Keywords
- Automated programming
- Symbolic computation
- Automated reasoning
- Machine learning
- Artificial intelligence
- Artificial general intelligence
- Pretrained large language models
- Software industry
- Programming assistant.