Qu'est-ce que la programmation automatique?
La programmation automatique en informatique et en génie informatique fait référence à la production de code de programmation informatique par un système ou un logiciel en réponse à une saisie ou des commandes plus abstraites de l'utilisateur. En un sens, la programmation automatique décrit toute situation dans laquelle un ordinateur ou un logiciel remplacera une déclaration introduite par un programmeur par un bloc de code capable d'effectuer concrètement les actions décrites dans la déclaration. Lorsqu'elle est utilisée dans un autre sens, la programmation automatique peut décrire l'objectif de la création d'un langage de programmation ou d'un système capable d'assembler intuitivement une application complète basée uniquement sur les plus infimes instructions du programmeur. La programmation automatique peut être utilisée dans certains domaines de recherche en informatique pour faire référence au processus de conception d'un système d'intelligence artificielle (IA) capable de produire de manière autonome un programme pour terminer une tâche ou d'auto-modifier son propre code pour améliorer ses fonctionnalités.
La définition de la programmation automatique est quelque peu vague. À l'origine, il était utilisé pendant les premières années de la programmation informatique pour décrire la traduction d'instructions abstraites analogues à un langage d'assemblage en code machine étendu. Cela a été appelé programmation automatique car le compilateur remplacerait automatiquement une seule instruction lisible par une douzaine d'instructions de code machine ou plus, écrivant essentiellement automatiquement le programme de manière primitive. Les mêmes actions sont toujours effectuées par les compilateurs de langage dans la plupart des cas, quel que soit le langage de programmation utilisé en superposition.
Une autre utilisation du terme "programmation automatique" consiste à décrire la génération de code automatisée. C'est à ce moment qu'un environnement de développement intégré (IDE) ou un autre outil peut être utilisé visuellement, ou d'une manière très simple, pour spécifier comment un utilisateur final verrait un programme. Une fois que le résultat souhaité est créé, le logiciel ou l'EDI peut alors produire automatiquement un code source fonctionnel pour obtenir le résultat sans autre entrée du programmeur.
Dans certains cas, la programmation automatique fait également référence à l’étude de la mise en œuvre de langages à un niveau aussi élevé que le code source ressemble à un langage naturel. Un langage de programmation comme celui-ci produirait alors automatiquement l'application en fonction de la vaste entrée du programmeur. Cependant, peu importe le degré d'automatisation d'un langage, il convient de noter que le programmeur doit à un moment donné modifier manuellement le code pour des fonctionnalités spécifiques à l'aide du langage de programmation lui-même.
Dans le domaine de l'intelligence artificielle, des recherches sont en cours pour développer un système capable de se programmer automatiquement pour ajouter des fonctionnalités qui ne lui étaient pas fournies à l'origine. Cela s'étend également aux IA capables d’écrire un logiciel indépendant capable de résoudre un problème spécifique. Une application serait de créer un langage de programmation qui pourrait utiliser l’IA pour générer des prototypes rapides de programmes.