Pregunta

Necesito desarrollar un lenguaje declarativo simple para impulsar una aplicación. Tengo varios módulos computacionales, algunos de ellos dependiendo de otros módulos que también necesitan configuración. El problema es que no sé cómo manipular las palabras clave. Me explicaré con un ejemplo

Task optimize
Units meters
System {
   // input data
}

Optimizer {
     type Simplex
     convergenceCriteria 0.001
}

PointEvaluator {
     type MyEvaluatorTechnique
     convergenceCriteria = 0.1
}

Esta es una solución, que tiene entidades muy genéricas de encabezado que describen el significado de cada sección, pero también podría tener secciones que explicen las técnicas específicas

Task {
     type optimize
     optimizer Simplex
}
Units meters
System {
   // input data
}

Simplex {
     convergenceCriteria 0.001
     PointEvaluator MyEvaluatorTechnique
}

MyEvaluatorTechnique {
     convergenceCriteria = 0.1
}

Me gustaría escuchar su opinión sobre qué método puede sonar mejor en términos de corrección del diseño, y los pros y los contras de ambas soluciones. Una cosa que no me gusta en la primera solución es, por ejemplo, el hecho de que, dependiendo del tipo, puedo tener opciones que no tienen sentido para ese tipo específico. Sin embargo, en la segunda solución, no estoy configurando la tarea genérica (que luego utiliza tipos específicos de subsistema). En cambio, especifico los subsistemas específicos que realizan la tarea.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
scroll top