Ho bisogno di sviluppare un semplice linguaggio dichiarativo per guidare un'applicazione. Ho vari moduli computazionali, alcuni dei quali dipendono da altri moduli che richiedono anche l'installazione. Il problema è che non so come manipolare le parole chiave. Mi spiegherò con un esempio
Task optimize
Units meters
System {
// input data
}
Optimizer {
type Simplex
convergenceCriteria 0.001
}
PointEvaluator {
type MyEvaluatorTechnique
convergenceCriteria = 0.1
}
questa è una soluzione, che ha intestazione entità molto generiche che descrivono il significato di ciascuna sezione, ma potrei anche avere sezioni che riguardano in modo esplicito tecniche specifiche
Task {
type optimize
optimizer Simplex
}
Units meters
System {
// input data
}
Simplex {
convergenceCriteria 0.001
PointEvaluator MyEvaluatorTechnique
}
MyEvaluatorTechnique {
convergenceCriteria = 0.1
}
Mi piacerebbe sentire la tua opinione su quale metodo può suonare meglio in termini di correttezza del design, e pro e contro di entrambe le soluzioni. Una cosa che non mi piace nella prima soluzione è, ad esempio, il fatto che, a seconda del tipo, potrei avere opzioni che non hanno senso per quel tipo specifico. Nella seconda soluzione, tuttavia, non sto configurando l'attività generica (che quindi utilizza tipi specifici di sottosistema). Invece, specifica i sottosistemi specifici che eseguono l'attività.