2. Qu'est-ce que la programmation automatique ?

La programmation automatique a pour but de faire écrire à l'ordinateur ses propres programmes. Pour que ce but ambitieux soit atteignable, il faut d'abord bien délimiter dans quel contexte il est pensable d'automatiser la programmation.

Un programme est une description particulière de ce que l'on désire que l'ordinateur accomplisse. Beaucoup de programmes existent déjà dans presque tous les domaines imaginables. Il faut donc pouvoir réutiliser les programmes existants le plus de fois possible. Cependant, il est plutôt rare qu'un programme qui a servi puisse être repris dans un nouveau contexte sans aucune modification. Souvent, il est nécessaire d'apporter de petites retouches au programme afin de l'adapter à de nouveaux besoins ou au goût d'un nouvel utilisateur. Ce travail d'adaptation est ingrat, il consiste souvent à modifier légèrement des valeurs, à changer des paramètres. C'est dans un tel contexte que l'on peut envisager la génération automatique de programmes.

En effet, la création d'un programme pour effectuer une tâche complètement nouvelle requiert de l'ordinateur plusieurs capacités qu'il n'a pas:

Par contre, lorsque l'activité de programmation implique une certaine régularité (lors de la réutilisation de programmes), il est possible d'envisager une programmation automatique efficace. On peut parler de programmation efficace, lorsque le temps consacré à la révision et à la mise au point des programmes générés automatiquement est plus court que le temps mis par une personne pour faire les mêmes programmes.

Pour avoir une programmation automatique efficace il faut que certaines conditions soient remplies:

Les langages orientés objet permettent d'obtenir un traitement élégant du comportement par défaut. En effet, une librairie construite dans un langage orienté objet comprend le code des sous-programmes (objets) et leur hiérarchisation. Le mécanisme d'héritage permet alors de propager à tous les objets des valeurs par défaut (donc un comportement par défaut).

3. Quel interface?

Site Hosting: Bronco