T.I. feat Rihanna - Live Your Life

venerdì 14 novembre 2008

ricerche!

il prof ci ha detto di cercare i termini

Programmazione genetica
Notazione BNF
Come al solito vediamo cosa dice la wikipedia
La programmazione genetica (GP) è una metodologia di programmazione automatizzata ispirata dall'evoluzione biologica per scoprire programmi informatici che svolgano in maniera (quasi) ottimale un determinato compito. È una particolare tecnica di apprendimento automatico che usa un algoritmo evolutivo per ottimizzare una popolazione di programmi di computer secondo un paesaggio adattativo determinato dall'abilità del programma di arrivare ad un risultato computazionalmente valido (ovvero di saper svolgere il compito dato). I primi esperimenti con la GP sono stati eseguiti da Stephen F. Smith (1980) e Nichael L. Cramer (1985), come descritto nel famoso libro Genetic Programming: On the Programming of Computers by Means of Natural Selection di John Koza (1992).
I programmi creati con la GP possono essere scritti in molti
linguaggi di programmazione. Nelle prime e tradizionali implementazioni della GP le istruzioni e i dati erano organizzati in strutture ad albero, quindi si preferiva l'uso di linguaggi che avessero queste strutture come tipo di dato primitivo; un esempio importante di linguaggio utilizzato da Koza è il Lisp. Sono state suggerite e implementate con successo anche altre forme di GP, come la più semplice rappresentazione lineare che ben si adatta ai normali linguaggi imperativi (vedere a riguardo, Banzhaf e al. (1998)). Il software commerciale che implementa la GP Discipulus, ad esempio, usa la programmazione genetica lineare combinata coi linguaggi in codice macchina per ottenere migliori prestazioni. In maniera diversa il MicroGP usa una rappresentazione interna simile alla programmazione genetica lineare per generare programmi che utilizzino pienamente la sintassi di un dato linguaggio assembly.



La BNF (Backus-Naur Form o Backus Normal Form) è una
metasintassi, ovvero un formalismo attraverso il quale è possibile descrivere la sintassi di linguaggi formali (il prefisso meta ha proprio a che vedere con la natura circolare di questa definizione). Si tratta di uno strumento molto usato per descrivere, in modo preciso e non ambiguo, la sintassi dei linguaggi di programmazione, dei protocolli di rete e così via; benché non manchino, in letteratura, esempi di sue applicazioni a contesti anche non informatici e addirittura non tecnologici. La BNF viene usata nella maggior parte dei testi sulla teoria dei linguaggi di programmazione (e molti testi introduttivi su specifici linguaggi).
In termini formali, la BNF può essere vista come un formalismo per descrivere
grammatiche libere dal contesto.
La BNF fu proposta da
John Backus durante la definizione del linguaggio di programmazione Algol. L'acronimo BNF era inizialmente inteso come Backus Normal Form ("forma normale di Backus"); su suggerimento di Donald Knuth, fu in seguito riletto come Backus-Naur Form, in onore di Peter Naur, un altro membro del comitato Algol e pioniere dei linguaggi di programmazione (e più in particolare della realizzazione di compilatori).

Nessun commento: