Ho appena visto un piuttosto fresco ted talk da Danny Hillis datato 1994.programmazione evolutiva
A un certo punto del video, si parla di "programmazione evolutiva", cioè chiede al computer per generare centinaia di programmi per la generazione casuale sequenze di comandi, quindi prove per vedere quanto bene ogni programma ordina i numeri. Mantiene il 10% dei programmi che ordina i numeri al meglio, quindi genera un prossimo ciclo di programmi basato sul 10% che ha funzionato bene e si ripete tutte le volte che vuole, per generare infine il massimo programma di ordinamento.
Ci sono strumenti/linguaggi di programmazione là fuori che lo fanno? Per esempio. dati alcuni vincoli, genera codice C che meglio soddisfa tali vincoli.
Ho visitato alcuni articoli di Wikipedia relativi a "Programmazione evolutiva"; sembra che ci sia molta teoria lì, ma non sembra facile trovare qualcosa con cui puoi giocare.
Non ha nulla a che fare con l'elaborazione evolutiva: non esiste alcuna selezione, qualsiasi programma casuale in Csmith è valido al 100%. –
Dipende dal driver che esegue Csmith - la selezione automatica può avvenire in base al fatto che il codice generato attiva un bug del compilatore rilevabile; il nuovo output può essere generato da zero o eseguendo mutazioni sull'output precedente. – smokris
è interessante, ci provo. Ho usato solo codice completamente generato a caso per testare prima. –