Esistono linguaggi di programmazione progettati per definire la soluzione a un dato problema invece di definire istruzioni per risolverlo? Quindi, si definirebbe quale dovrebbe essere la soluzione o il risultato finale e l'interprete del linguaggio determinerebbe come arrivare a quel risultato. Guardando il list of programming languages, non sono sicuro di come iniziare a fare ricerche su questo.Linguaggi di programmazione che definiscono il problema anziché la soluzione?
I migliori esempi che posso attualmente pensare per aiutare a illustrare ciò che sto cercando di chiedere sono SQL e MapReduce, anche se sono entrambi tipi di mini-lingue progettati per recuperare i dati. Tuttavia, quando si scrivono istruzioni SQL o MapReduce, si sta definendo il risultato finale e il DB decide la migliore linea d'azione per arrivare al set di risultati finali.
Potrei vedere questi tipi di linguaggi, se esistono, utilizzati per elaborare molti dati o trovare soluzioni a un insieme di equazioni. Il linguaggio dei sogni potrebbe essere quello che potrebbe interpretare il problema definito, identificare quali parti sono parallelizzabili ed eseguire la soluzione su più processi/core/scatole.
Ama la domanda, vorrei avere una risposta! –
Suona come un'altra idea a spostare il problema per me, come un linguaggio di specifica :) Se si crea qualcosa di simile si perde molto potere (SQL e MapReduce sono altamente specializzati e inutili per roba generica) o basta creare qualcosa di così complesso come quello che stai cercando di sostituire. – workmad3
@ workmad3: Totalmente d'accordo sul fatto che questi tipi di lingue sarebbero specializzati o troppo ridicolmente e inutilmente complicati per l'uso pratico. Tuttavia, sembra che ci sarebbero nicchie là fuori per tali lingue, e non scopriremo se sono fattibili fino a quando non ci proviamo, giusto? –