ECLiPSe[1] è un sistema software per lo sviluppo e l'implementazione di applicazioni di Constraint Programming, ad esempio nelle aree di ottimizzazione, pianificazione, trasporto ecc. Contiene librerie di risolutori di vincoli, un linguaggio di modellazione e controllo di alto livello (un superset di Prolog), interfacce con solutori di terze parti, un ambiente di sviluppo integrato e interfacce per l'incorporamento in ambienti host.

ECLiPSe è stato sviluppato fino al 1995 presso l'European Computer-Industry Research Centre (ECRC) di Monaco e quindi fino al 2005 presso il Center for Planning and Resource Control dell'Imperial College London (IC-Parc). È stato acquistato da Cisco Systems . Nel settembre 2006 è stato rilasciato come software open source con un equivalente della licenza pubblica Mozilla e ora è ospitato su SourceForge.

Linguaggio

modifica

Il linguaggio ECLiPSe[2] è ampiamente compatibile con le versioni precedenti di Prolog e supporta diversi dialetti, incluso ISO Prolog. Grazie alla sua natura dichiarativa, può essere utilizzato sia come linguaggio di modellazione per la descrizione dei problemi sia come linguaggio di programmazione generico.

Oltre ai tipi di dati Prolog di base, sono disponibili: stringhe, numero intero a precisione illimitata, numeri razionali. Sono supportate anche strutture dati particolarmente utili nella modellazione dei vincoli.

Librerie

modifica

ECLiPSe fornisce diverse librerie di risolutori di vincoli tra cui vincoli aritmetici su domini finiti, vincoli di set finiti, propagazione generalizzata, ragionamento su intervalli su vincoli non lineari, interfacce con solutori simplex esterni e constraint handling rules (CHR). Altre librerie implementano metodi di ricerca come branch-and-bound.

ECLiPSe può interfacciarsi a risolutori esterni, in particolare con i risolutori di programmazione lineare e mista-integrale COIN-OR, CPLEX, Gurobi e Xpress-MP,[3] e la libreria di solutori Gecode.

Le librerie di compatibilità per ISO Prolog[4] e altri dialetti Prolog (C-Prolog, Quintus, SICStus, SWI-Prolog) consentono il riutilizzo di librerie scritte in quei dialetti.

Altre librerie di utilità, incluso un certo numero di popolari versioni di dominio pubblico, sono incluse nella distribuzione.

  1. ^ ECLiPSe Web Site, su eclipseclp.org.
  2. ^ Joachim Schimpf e Kish Shen, ECLiPSe - from LP to CLP, in Theory and Practice of Logic Programming, vol. 12, pp. 127–156, DOI:10.1017/S1471068411000469.
  3. ^ K. Shen e J. Schimpf, Eplex: Harnessing Mathematical Programming Solvers for Constraint Logic Programming, Principles and Practice of Constraint Programming - CP 2005: 11th International Conference, CP 2005, Sitges, Springer, pp. 622–636, DOI:10.1007/11564751_46, ISBN 978-3-540-32050-0.
  4. ^ ECLiPSe ISO conformity declaration, su eclipseclp.org.

Collegamenti esterni

modifica