Automated programming, symbolic computation, machine learning: my personal view

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 an...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Annals of mathematics and artificial intelligence 2023-10, Vol.91 (5), p.569-589
1. Verfasser: Buchberger, Bruno
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 589
container_issue 5
container_start_page 569
container_title Annals of mathematics and artificial intelligence
container_volume 91
creator Buchberger, Bruno
description 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.
doi_str_mv 10.1007/s10472-023-09894-7
format Article
fullrecord <record><control><sourceid>gale_proqu</sourceid><recordid>TN_cdi_proquest_journals_2918202874</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><galeid>A770200792</galeid><sourcerecordid>A770200792</sourcerecordid><originalsourceid>FETCH-LOGICAL-c402t-ea87a9f7678d6973fcab95c96eebcf660a31af3c6c0990fda17ffcf795a6c19d3</originalsourceid><addsrcrecordid>eNp9kM1KAzEURgdRsFZfwNWA2069yUyTibtS_IOCLnQdbjNJTZlMajJV-jY-i09mdAR3ksUNl-9cPk6WnROYEgB-GQlUnBZAywJELaqCH2QjMuNlwSsOh-kPhBa0qsrj7CTGDQAIVrNR9jjf9d5hr5t8G_w6oHO2W0_yuHcr31qVK--2ux5767tJ7lC92E7nrcbQpdxV7vafH1sdou-wzd-sfj_Njgy2UZ_9znH2fHP9tLgrlg-394v5slAV0L7QWHMUhjNeN0zw0ihciZkSTOuVMowBlgRNqZgCIcA0SLgxynAxQ6aIaMpxdjHcTbVfdzr2cuN3IbWIkgpSU6A1r1JqOqTW2GppO-P7gCq9RjurfKeNTfs550CTRkETQAdABR9j0EZug3UY9pKA_FYtB9UyqZY_qiVPUDlAMYW7tQ5_Xf6hvgDEcoN2</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2918202874</pqid></control><display><type>article</type><title>Automated programming, symbolic computation, machine learning: my personal view</title><source>SpringerNature Journals</source><source>ProQuest Central UK/Ireland</source><source>ProQuest Central</source><creator>Buchberger, Bruno</creator><creatorcontrib>Buchberger, Bruno</creatorcontrib><description>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.</description><identifier>ISSN: 1012-2443</identifier><identifier>EISSN: 1573-7470</identifier><identifier>DOI: 10.1007/s10472-023-09894-7</identifier><language>eng</language><publisher>Cham: Springer International Publishing</publisher><subject>Algorithms ; Artificial Intelligence ; Automation ; Complex Systems ; Computation ; Computer Science ; Computer software industry ; Human influences ; Labor market ; Machine learning ; Mathematics ; Mechanization ; Natural language ; Natural language (computers) ; Programming ; Programming languages ; Semantics ; Software industry ; Specifications</subject><ispartof>Annals of mathematics and artificial intelligence, 2023-10, Vol.91 (5), p.569-589</ispartof><rights>The Author(s) 2023</rights><rights>COPYRIGHT 2023 Springer</rights><rights>The Author(s) 2023. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c402t-ea87a9f7678d6973fcab95c96eebcf660a31af3c6c0990fda17ffcf795a6c19d3</citedby><cites>FETCH-LOGICAL-c402t-ea87a9f7678d6973fcab95c96eebcf660a31af3c6c0990fda17ffcf795a6c19d3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s10472-023-09894-7$$EPDF$$P50$$Gspringer$$Hfree_for_read</linktopdf><linktohtml>$$Uhttps://www.proquest.com/docview/2918202874?pq-origsite=primo$$EHTML$$P50$$Gproquest$$H</linktohtml><link.rule.ids>314,780,784,21388,27924,27925,33744,41488,42557,43805,51319,64385,64389,72469</link.rule.ids></links><search><creatorcontrib>Buchberger, Bruno</creatorcontrib><title>Automated programming, symbolic computation, machine learning: my personal view</title><title>Annals of mathematics and artificial intelligence</title><addtitle>Ann Math Artif Intell</addtitle><description>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.</description><subject>Algorithms</subject><subject>Artificial Intelligence</subject><subject>Automation</subject><subject>Complex Systems</subject><subject>Computation</subject><subject>Computer Science</subject><subject>Computer software industry</subject><subject>Human influences</subject><subject>Labor market</subject><subject>Machine learning</subject><subject>Mathematics</subject><subject>Mechanization</subject><subject>Natural language</subject><subject>Natural language (computers)</subject><subject>Programming</subject><subject>Programming languages</subject><subject>Semantics</subject><subject>Software industry</subject><subject>Specifications</subject><issn>1012-2443</issn><issn>1573-7470</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2023</creationdate><recordtype>article</recordtype><sourceid>C6C</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GNUQQ</sourceid><recordid>eNp9kM1KAzEURgdRsFZfwNWA2069yUyTibtS_IOCLnQdbjNJTZlMajJV-jY-i09mdAR3ksUNl-9cPk6WnROYEgB-GQlUnBZAywJELaqCH2QjMuNlwSsOh-kPhBa0qsrj7CTGDQAIVrNR9jjf9d5hr5t8G_w6oHO2W0_yuHcr31qVK--2ux5767tJ7lC92E7nrcbQpdxV7vafH1sdou-wzd-sfj_Njgy2UZ_9znH2fHP9tLgrlg-394v5slAV0L7QWHMUhjNeN0zw0ihciZkSTOuVMowBlgRNqZgCIcA0SLgxynAxQ6aIaMpxdjHcTbVfdzr2cuN3IbWIkgpSU6A1r1JqOqTW2GppO-P7gCq9RjurfKeNTfs550CTRkETQAdABR9j0EZug3UY9pKA_FYtB9UyqZY_qiVPUDlAMYW7tQ5_Xf6hvgDEcoN2</recordid><startdate>20231001</startdate><enddate>20231001</enddate><creator>Buchberger, Bruno</creator><general>Springer International Publishing</general><general>Springer</general><general>Springer Nature B.V</general><scope>C6C</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>GNUQQ</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K7-</scope><scope>L6V</scope><scope>M7S</scope><scope>P5Z</scope><scope>P62</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PTHSS</scope></search><sort><creationdate>20231001</creationdate><title>Automated programming, symbolic computation, machine learning: my personal view</title><author>Buchberger, Bruno</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c402t-ea87a9f7678d6973fcab95c96eebcf660a31af3c6c0990fda17ffcf795a6c19d3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2023</creationdate><topic>Algorithms</topic><topic>Artificial Intelligence</topic><topic>Automation</topic><topic>Complex Systems</topic><topic>Computation</topic><topic>Computer Science</topic><topic>Computer software industry</topic><topic>Human influences</topic><topic>Labor market</topic><topic>Machine learning</topic><topic>Mathematics</topic><topic>Mechanization</topic><topic>Natural language</topic><topic>Natural language (computers)</topic><topic>Programming</topic><topic>Programming languages</topic><topic>Semantics</topic><topic>Software industry</topic><topic>Specifications</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Buchberger, Bruno</creatorcontrib><collection>Springer Nature OA/Free Journals</collection><collection>CrossRef</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>ProQuest Central Student</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer Science Database</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Advanced Technologies &amp; Aerospace Database</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>Engineering Collection</collection><jtitle>Annals of mathematics and artificial intelligence</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Buchberger, Bruno</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Automated programming, symbolic computation, machine learning: my personal view</atitle><jtitle>Annals of mathematics and artificial intelligence</jtitle><stitle>Ann Math Artif Intell</stitle><date>2023-10-01</date><risdate>2023</risdate><volume>91</volume><issue>5</issue><spage>569</spage><epage>589</epage><pages>569-589</pages><issn>1012-2443</issn><eissn>1573-7470</eissn><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.</abstract><cop>Cham</cop><pub>Springer International Publishing</pub><doi>10.1007/s10472-023-09894-7</doi><tpages>21</tpages><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 1012-2443
ispartof Annals of mathematics and artificial intelligence, 2023-10, Vol.91 (5), p.569-589
issn 1012-2443
1573-7470
language eng
recordid cdi_proquest_journals_2918202874
source SpringerNature Journals; ProQuest Central UK/Ireland; ProQuest Central
subjects Algorithms
Artificial Intelligence
Automation
Complex Systems
Computation
Computer Science
Computer software industry
Human influences
Labor market
Machine learning
Mathematics
Mechanization
Natural language
Natural language (computers)
Programming
Programming languages
Semantics
Software industry
Specifications
title Automated programming, symbolic computation, machine learning: my personal view
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-21T13%3A17%3A44IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-gale_proqu&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Automated%20programming,%20symbolic%20computation,%20machine%20learning:%20my%C2%A0personal%20view&rft.jtitle=Annals%20of%20mathematics%20and%20artificial%20intelligence&rft.au=Buchberger,%20Bruno&rft.date=2023-10-01&rft.volume=91&rft.issue=5&rft.spage=569&rft.epage=589&rft.pages=569-589&rft.issn=1012-2443&rft.eissn=1573-7470&rft_id=info:doi/10.1007/s10472-023-09894-7&rft_dat=%3Cgale_proqu%3EA770200792%3C/gale_proqu%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2918202874&rft_id=info:pmid/&rft_galeid=A770200792&rfr_iscdi=true