5

Esistono linguaggi che eseguono l'ottimizzazione in fase di compilazione utilizzando la programmazione logica arbitraria?Lingue che ottimizzano l'utilizzo della programmazione logica

Sto cercando un esempio di un linguaggio che vi permetterà di fare qualcosa di simile:

  • Definire un predicato arbitraria, ad esempio, is-idempotent?
  • dire al compilatore che f(f(x)) è uguale alla f(x) se la funzione is-idempotent? è vero per f
  • Specificare is-idempotent? per varie funzioni (forse indirettamente, ad esempio, impliciti in altre istruzioni logiche)
  • Avere il compilatore compiere un ottimizzazioni sulla base di i predicati/ottimizzazioni di cui è a conoscenza
+0

Penso che Maxima (e Mathematica) abbiano questa capacità, ma tecnicamente non è un linguaggio compilato –

+0

Il framework 'MBase' sta utilizzando un Prolog incorporato per alcuni passaggi di analisi e ottimizzazione. –

risposta

2

Penso che quello che vuoi sia un program transformation system.

Questi possono permettere di definire le regole da applicare al codice sorgente, ad esempio, le leggi algrebraic per ottimizzare il codice.

Quello che scoprirete è che c'è una varietà di problemi. Il primo è la gestione delle regole di scoping e degli effetti collaterali nelle lingue. Il secondo è il sequenziamento delle trasformazioni; l'ordine in cui vengono applicati produce spesso risultati radicalmente diversi.

Problemi correlati