programacion hibrida

5
  Ing. En Sistemas Computacionales Ing. Lorena N. Ramirez Beltran Interfaz Carlos Reyes Lopez 602-A 16/05/2012 Jesús Carranza, ver. TEMA Aplicaciones con lenguaje de programación hibrida

Transcript of programacion hibrida

Page 1: programacion hibrida

5/17/2018 programacion hibrida - slidepdf.com

http://slidepdf.com/reader/full/programacion-hibrida-55b08279ce156 1/5

 

Ing. En Sistemas Computacionales

Ing. Lorena N. Ramirez Beltran

Interfaz

Carlos Reyes Lopez

602-A

16/05/2012

Jesús Carranza, ver.

TEMA

Aplicaciones con lenguaje de programación hibrida

Page 2: programacion hibrida

5/17/2018 programacion hibrida - slidepdf.com

http://slidepdf.com/reader/full/programacion-hibrida-55b08279ce156 2/5

PROGRAMACIÓN HIBRIDAEn la programación software, sistemas híbridos inteligentes denotan a los sistemas softwareque emplean, en paralelo, una combinación de modelos de inteligencia artificial, métodos ytécnicas de éstos subcamposCada sistema inteligente natural es un híbrido porque éstos desarrollan operacionesmentales tanto en niveles simbólicos como sub-simbólicos. Desde hace pocos años se haido desarrollando una discusión sobre la importancia en la inteligencia artificial de laintegración de todos éstos sistemas. Basados en las nociones de que se habían ya creadosimples y específicos sistemas de inteligencia artificial (como sistemas para la visión decomputadores, síntesis del habla, etc., o software que emplean alguno de los modelosmencionados arriba) algunos autores proponen aque es ahora el momento de la integraciónpara crear complejos, grandes sistemas de inteligencia artificial. Investigadores destacadossobre estas ideas son Marvin Minsky, Aaron Sloman, Deb Roy, Kristinn R. Thórisson yMichel Arbib.La metodología de diseño Creacionista (CDM, por sus siglas en inglés) (nótese en sunombre referencias al deseo humano de ser el Arquitecto) es una filosofía de desarrollosoftware diseñado específicamente para la creación de grandes sistemas A.I. CDM está

basado en pasos de diseño iterativos que guíen hacia la creación de una red de llamadosmódulos interactivos, que se comunican por flujos tipados explícitos y mensajes discretos.02La organización Mindmakers es un portal online para la gente que trabaja en la integracióne incremento de la coloboración en el campo de la Inteligencia ArtificialAl trabajar con un lenguaje de alto nivel, en ocasiones nos encontramos con el problema deque necesitamos que haga determinada función o trabajo pero desafortunadamente ésta soloexiste en otro lenguaje que no es el que necesitamos utilizar, o simplemente, noencontramos esa función en ningún lenguaje de alto nivel.03Ventajas de la Programación Híbridaü Para mejorar la escalabilidadü Cuando muchas tareas producen desbalanceoü Aplicaciones que combinan paralelismo de grano gruesoy finoü Reducción del tiempo de desarrollo de códigoü Cuando el número de procesos MPI es fijoü En caso de mezcla de paralelismo funcional y de datosEn este momento el lenguaje ensamblador constituye una herramienta no solo eficaz, sinosimple para producir un parche para el compilador de nuestro lenguaje preferido.Tal vez el mayor problema con el que nos enfrentemos sea el de cómo conectar ambosprogramas (el de alto y el de bajo niveles) y cómo pasar variables de un programa al otro.Para conseguir nuestro objetivo se utilizan pseudo-operadores, es decir, instrucciones que

aparecen en el código fuente del ensamblador pero que no generan ninguna instrucción demáquina, pero proporcionan directivas para que el ensamblador pueda operar con datos,ramificaciones condicionales, generación de listados y con macros durante el proceso deensamble.DIRECTIVAS PARA COMPILACIÓN HIBRIDATurbo Pascal permite escribir procedimientos y funciones en código ensamblador eincluirlas como parte de los programas en lenguaje Pascal; para esto, Turbo Pascal cuentacon dos palabras reservadas: Assembler y Asm.Assembler permite indicarle a Turbo Pascal que la rutina o procedimiento que se está

Page 3: programacion hibrida

5/17/2018 programacion hibrida - slidepdf.com

http://slidepdf.com/reader/full/programacion-hibrida-55b08279ce156 3/5

escribiendo está totalmente escrita en código ensamblador.Ejemplo de un procedimiento híbrido:Procedure Limpia_Pantalla;Assembler;AsmMov AX,0600h ; procedimiento Clr Scr de la unidad CRT de Turbo PascalMov BH,18hMov CX,0000hMov DX,184FhInt 10hEnd;Por otro lado, Asm nos permite incluir bloques de instrucciones en lenguaje ensamblador encualquier parte del programa sin necesidad de escribir procedimientos completos enensamblador.Ejemplo de un programa con un bloque de instrucciones en ensamblador:;El programa solicita que se introduzcan dos número, después calcula la suma por medio dela instrucción Add de ensamblador y finalmente imprime el resultado en la pantalla.

; realiza la suma de dos cantidades enteras (N1 y N2) introducidas previamente por elusuario, después almacena el resultado en la variable Res y finalmente presenta el resultadoen la pantalla.Program hibrido;Uses Crt;VarN1,N2,Res : integer;BeginWriteln(“Introduce un número: “); Readln(N1);Writeln(“Introduce un número: “); Readln(N2);AsmMov AX,N1;Add AX,N2;Mov Res,AXEnd;Writeln(“El resultado de la suma es: “,Res); Readln;End.;Este programa solicita al usuario que presione alguna tecla, cuando la tecla es presionada,ésta se utiliza para rellenar la pantalla. Termina cuando se presiona la tecla enter. Utilizatres procedimientos:

Limpia_Pantalla: Este se encarga de borrar la pantallaCursor_XY: Este procedimiento reemplaza al Goto XY de PascalImprime_Car: Este procedimiento imprime en pantalla el carácter que se le pasa comoparámetro.Program Hibrido2;Uses Crt;VarCar: Char;i,j : integer;

Page 4: programacion hibrida

5/17/2018 programacion hibrida - slidepdf.com

http://slidepdf.com/reader/full/programacion-hibrida-55b08279ce156 4/5

;Este procedimiento limpia la pantalla y pone blanco sobre azulProcedure Limpia_Pantalla;Assembler;AsmMov AX,0600hMov Bh,17hMov CX,0000hMov DX,184FhInt 10hEnd;;Este procedimiento imprime el carácter en la pantallaProcedure Imprime_Car(C: Char);Assembler;AsmMov Ah,02hMov Dl,CInt 21h

End;;Este procedimiento tiene la misma función que el procedimiento Goto XY de Turbo PascalProcedure Cursor_XY(X,Y: Byte);Assembler;AsmMov Ah,02hMov Bh,00hMov Dh,YMov Dl,XInt 10hEnd;BeginLimpia_Pantalla;RepeatLimpia_Pantalla;Cursor_XY(0,0);Write(‘Introduce un carácter: ‘); Car:=Read Key;Imprime_Car(Car);Limpia_Pantalla;If car #13 thenBeginFor i:=0 to 24 do

For j:=0 to 79 doCursor_XY(j,i);Imprime_Car(Car);End;Cursor_XY(30,24);Write(‘Presiona enter para salir u otro para seguir…’); Readln;Until car = #13;End.

Page 5: programacion hibrida

5/17/2018 programacion hibrida - slidepdf.com

http://slidepdf.com/reader/full/programacion-hibrida-55b08279ce156 5/5

Tal vez el mayor problema es cómo conectar dos programas, el de alto y el de bajo niveles,y cómo pasar variables de un programa al otro.Para conseguir nuestro objetivo se utilizan pseudo-operadores, es decir, instrucciones queaparecen en el código fuente del ensamblador pero que no generan ninguna instrucción demáquina, pero proporcionan directivas para que el ensamblador pueda operar con datos,ramificaciones condicionales, generación de listados y con macros durante el proceso deensamble.El formato de este pseudo-operador es PUBLIC número, variable o rótuloEjemplo de uso de PUBLIC:PUBLIC nombreInstruccionesRETnombre ENDP