+ All Categories
Home > Documents > Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio...

Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio...

Date post: 02-Apr-2015
Category:
Upload: elpidio-villella
View: 105 times
Download: 3 times
Share this document with a friend
Popular Tags:
12
Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo
Transcript
Page 1: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

Lab 10 – Integración de CLIPS con C++ y JAVA

Integrantes:Gonzales, CesarCespedes, GiorgioZuñiga, Rodrigo

Page 2: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

GENERANDO LOS EJECUTABLES

Link Oficial de descargas Clips:http://sourceforge.net/projects/clipsrules/files/CLIPS/6.30/

Debe estar instalado el programa Clips: CLIPS_6.30_Beta_Windows_Application_Installer_R3.msi

Herramientas instaladas: Microsoft Visual Studio 2008. Clips 6.30

Page 3: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.
Page 4: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

GENERANDO LOS EJECUTABLES

Se debe instalar el código fuente usando CLIPS 6.30 Windows Source Code Installer.El código fuente(comprimido en el archivo Projects.zip) se instala en el directorio de instalación.Incluye los proyectos CLIPSWin y CLIPSDOS:Microsoft Visual C++ Express 2008Borland Turbo C++ 2006

Page 5: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.
Page 6: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

Integrando Clips 6.30 con Visual C++ 2008http://www.youtube.com/watch?v=yDt8QPHGPws

Page 7: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

DECLARANDO FUNCIONES EXTERNAS DEFINIDAS POR EL USUARIO

Existen dos opciones:Modificar los el archivo

userfunctions.c utilizando las sentencias UserFunctions o EnvUserFunctions.

Definir la función en el nuevo archivo C/C++.

DefineFunction(functionName,functionType,

functionPointer,actualFunctionName);

Page 8: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

DefineFunction(functionName,functionType, functionPointer,actualFunctionName);

functionName: Nombre de la función que sera utilizada desde CLIPS.functionType: Es el tipo del valor que será retornado a CLIPS. Puede ser:

Page 9: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

functionPointer: Puntero a la función. El identificador PTIF puede ser utilizada antes del nombre de la función para hacer un “type-casting” como puntero a una función devolviendo un entero (especialmente para ciertos compiladores).

actualFunctionName: Es una representación del tercer argumento. Este nombre debe ser igual al tercer argumento, pero encerrada en comillas.

Page 10: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

Adicionalmente a DefineFunction(), se puede utilizar_

DefineFunction2(functionName,functionType,functionPointer,

actualFunctionName,functionRestrictions);

Los cuatro primeros argumentos son iguales a los de DefineFunction(), el quinto es un string que sirve de restricción para indicar el número y tipo de argumentos que la función de CLIPS espera.

<min-args> <max-args> [<default-type> <types>*]

0 – 9: Para indicar el mínimo y máximo número de argumentos. * : Para indicar que no hay restricción en el numero de argumentos.

Page 11: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

Los tipos de datos se presentan a continuación:

Page 12: Lab 10 – Integración de CLIPS con C++ y JAVA Integrantes: Gonzales, Cesar Cespedes, Giorgio Zuñiga, Rodrigo.

EJEMPLOS La restricción para una función que requiere un mínimo

de tres argumentos es:

"3*" La restricción para una función que requiere NO MÁS

de cinco argumentos es:

"*5" La restricción para una función que requiere POR LO

MENOS tres y NO MÁS de cinco argumentos (cada uno de los cuales debe ser un entero o float) es:

"35n" La restricción para una función que requiere

exactamente seis argumentos (de los cuales, el primero debe ser un STRING, el tercero un INTEGER y los demás argumentos FLOATS) es:

"66fsui"


Recommended