Universidad de Castilla-La Mancha
 
Departamento de Sistemas Informáticos





 
Technical Report
 
Código: DIAB-05-11-1
Fecha Publicación: 22-11-2005
Título: Designing Declarative Languages with Laziness and Fuzziness
Detalle: In this draft paper we investigate a very simple, but powerful way, for introducing fuzzy logic into lazy declarative languages which combine the best properties of both (lazy) functional and (fuzzy) logic programming, in order to obtain a much more rich framework where applications dealing with uncertainty (fuzziness) and infinite data structures (laziness) can be easily coded. Starting with two representative languages of lazy-functional-logic and fuzzy-logic programming, namely Curry and Likelog, we propose an hybrid dialect where a set of rewrite rules (associated to the functional dimension of the language) are accompanied with a set of similarity equations between symbols of the same nature and arity (which represents the fuzzy counterpart of the new environment), thus providing an extremely flexible and expressive paradigm where mathematical functions cohabit with fuzzy logic features. We show that, by manipulating at a very low cost the notion of ``strict equality'' typically used in lazy (both pure functional or integrated functional-logic) declarative languages, similarity relations can be successfully treated in a very natural way. Our approach can be implemented at a very high abstraction level in two phases: 1) Firstly, by using the algorithm proposed by Garmendia [2005] we build (at compilation time) three similarity relations $\Re_c$, $\Re_o$ and $\Re_a$ which represent, respectively, the transitive closure, transitive opening and transitive approximation of the set of "similarity equations" collected in a given program}. 2) Secondly, we add to this program a set of ``similar equality rewriting rules" which, by making use of the previous similarity relations, are able to model the lazy behaviour of computations (at execution time). A key point in the design of the associated operational method is that, apart from guaranteeing that it is conservative with respect to the crisp case (i.e., it computes at least the same outputs of the crisp case), any term produced after the evaluation of a given function, is furthermore compared with any other ``similar'' data as much as needed. Keywords: Fuzzy Logic, Similarity, Declarative Programming, Laziness



 
Autores
 
Autor Detalles
MORENO VALVERDE, GINES DAMIAN
PASCUAL FIDALGO, VICENTE



 
Ficheros
 
Fichero Bytes Detalles
DIAB-05-11-1.zip 107.1K

 

Sindicación     Sindicación     Sindicación
Curso: 2017-18
© Departamento de Sistemas Informáticos
ESII - Avda. de España s/n
02071 Albacete
Tfno: 967 59 92 00 - Fax: 967 59 92 24

aviso legal