¿Hay algún lenguaje de programación diseñado para definir la solución a un problema determinado en lugar de definir instrucciones para resolverlo? Entonces, uno definiría cómo debería ser la solución o el resultado final y el intérprete de idiomas determinaría cómo llegar a ese resultado. Mirando el list of programming languages, no estoy seguro de cómo comenzar a investigar esto.Lenguajes de programación que definen el problema en lugar de la solución?
Los mejores ejemplos en los que actualmente puedo pensar para ayudar a ilustrar lo que estoy tratando de hacer son SQL y MapReduce, aunque ambos son mini-idiomas diseñados para recuperar datos. Pero, al escribir sentencias de SQL o MapReduce, está definiendo el resultado final, y el DB decide el mejor curso de acción para llegar al conjunto de resultados finales.
Pude ver estos tipos de idiomas, si es que existen, se utilizan para procesar una gran cantidad de datos o encontrar soluciones para un conjunto de ecuaciones. El lenguaje de los sueños sería uno que podría interpretar el problema definido, identificar qué partes son paralelizables y ejecutar la solución en múltiples procesos/núcleos/casillas.
Me encanta la pregunta, ¡ojalá tuviera una respuesta! –
Suena como otra idea para cambiar el problema para mí, al igual que un lenguaje de especificación :) Si creas algo como esto, pierdes mucho poder (SQL y MapReduce son altamente especializados e inútiles para cosas de propósito general) o simplemente creas algo tan complejo como lo que estás tratando de reemplazar. – workmad3
@ workmad3: Totalmente de acuerdo en que estos tipos de idiomas serían especializados o demasiado ridículos e innecesariamente complicados para el uso práctico. Aún así, parece que habrá nichos para esos idiomas, y no sabremos si son viables hasta que lo intentemos, ¿verdad? –