当前位置: X-MOL 学术Ann. Math. Artif. Intel. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Automated programming, symbolic computation, machine learning: my personal view
Annals of Mathematics and Artificial Intelligence ( IF 1.2 ) Pub Date : 2023-10-10 , DOI: 10.1007/s10472-023-09894-7
Bruno Buchberger

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.



中文翻译:

自动化编程、符号计算、机器学习:我的个人观点

在这篇文章中,我提出了我对自动化编程、符号计算和机器学习这三个领域之间的相互作用的个人看法。编程是为给定问题找到(希望)正确的程序(算法)的活动。编程是所有领域自动化的核心,被认为是最具创造性的人类活动之一。然而,在编程历史的早期,人们就开始“跳到编程的元级别”,即开始开发自动化或半自动化编程过程(各个方面或部分)的程序。 。该领域有各种名称,例如“自动编程”、“自动算法综合”等。开发编译器可以被认为是自动编程问题的早期示例。用于证明程序相对于规范的正确性的自动推理器是自动化编程主题的高级示例。ChatGPT 根据自然语言的问题规范生成(非常好的)程序是自动化编程的最新示例。随着技术复杂程度的提高,编程往往成为最重要的活动。因此,自动化编程可能是当今最令人兴奋和相关的技术努力。它还将对软件行业的全球就业市场产生巨大影响。粗略地说,我看到自动化编程的两种主要方法:

  • 符号计算

  • 和机器学习。

在这篇文章中,我解释了这两种方法是如何工作的,并且它们有根本的不同,因为它们解决了两种完全不同的问题指定方式。这两种方法共同构成了一些人所说的“人工智能”(部分)。在我的分析中,这两种方法都只是(算法)数学的一部分。与所有重要的数学方法一样,这些方法需要这些方法的人类发明者具备相当多的智慧。然而,应用这些方法只是算法的“机器执行”。将应用程序称为“机器智能”或“人工智能”是一种误导。对这两种自动化编程方法的分析还表明,将来应该将这两种方法结合起来,以实现更高水平的复杂性。在本文的最后,我提出了这个新方向的一些研究问题。

更新日期:2023-10-11
down
wechat
bug