Programmazione come conversazione [chiuso]

5

Mi sono chiesto spesso se sarebbe stato possibile scrivere un linguaggio di programmazione che avrebbe funzionato come una conversazione. Direi al computer che voglio memorizzare le coordinate e chiederebbe quale rappresentazione userei. Chiederei quindi di trovare il percorso più breve tra i punti e mi chiederebbe se voglio usare la forza bruta di Djkstra o usare Floyd's? Che ricerca è stata fatta per produrre un sistema come questo?

    
posta Casebash 06.09.2010 - 00:56
fonte

4 risposte

9

Penso che un linguaggio del genere avrebbe bisogno di un'intelligenza artificiale in atto, o almeno un sistema che possa imparare.

Il problema è che gli umani non sanno quello che vogliono.

Inoltre, anche scrivendo nel linguaggio imperativo classico facciamo ancora errori logici. Immagina di provare a dire a un software non intelligente cosa deve fare.

    
risposta data 06.09.2010 - 01:22
fonte
4

Quello che stai descrivendo sembra meno simile alla programmazione e più come usare un'applicazione.

Alcuni problemi che dovresti affrontare in un sistema del genere:

  • Risultati ripetibili. L'attuale paradigma del codice sorgente memorizza un elenco di istruzioni per il computer, nella conversazione a due lati, memorizzi solo 1 metà della conversazione? Se è così, non è molto diverso da quello che abbiamo. Se memorizzi entrambe le metà della conversazione, come faresti a tornare indietro e cambiare le cose senza interrompere l'intero flusso della conversazione da quel momento in poi?
  • Chi decide che cosa il computer può rispondere con, ad esempio, cosa succede se si desidera utilizzare l'algoritmo del percorso più breve che non è stato precodificato per la selezione?
  • Come procederai a mappare questa conversazione sul linguaggio di basso livello che un computer utilizza realmente (che è ancora un elenco sequenziale di istruzioni)?
risposta data 06.09.2010 - 01:27
fonte
1

Prolog si avvicina tranne che per due cose:

  • Non ti chiede come memorizzare i dati, ma li memorizza.
  • Non ti suggerirà cosa fare in modo intelligente.

Ma ha il comportamento di archiviare fatti e avere regole per verificarli o generare un risultato con esso.

    
risposta data 12.09.2010 - 15:22
fonte
0

La funzione Intellisense / CodeAssist nei moderni IDE viene in mente come la cosa più vicina nella pratica software corrente alle tue esigenze ... per cui scopri le capacità del sistema mentre digiti il codice. Ti consente di navigare nello spazio delle funzionalità della piattaforma di sviluppo in tempo reale. Non è esattamente la stessa che descrivi, ma si avvicina piacevolmente.

    
risposta data 16.08.2011 - 17:13
fonte