Vous êtes sur la page 1sur 4

INSTITUTO TECNOLOGICO SUPERIOR DE PANUCO

Carrera
Ingeniera en Sistemas Computacionales

Docente
Enrique Ponce Rivera

Trabajo
Programacin Hibrida

Alumnos
Hctor Manuel Gutirrez Zapata Alejandro Calzada Rodrguez Jos Antonio Romero Gonzlez

6 de Junio del 2011

Programacin Hibrida
La programacin hbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje ensamblador y los lenguajes de alto nivel, todo esto con el fin de escribir programas ms rpidos y eficientes. Por otro lado, Asm nos permite incluir bloques de instrucciones en lenguaje ensamblador en cualquier parte del programa sin necesidad de escribir procedimientos completos en ensamblador. En la programacin software, sistemas hbridos inteligentes denotan a los sistemas software que emplean, en paralelo, una combinacin de modelos de inteligencia artificial, mtodos y tcnicas de stos subcampos. Cada sistema inteligente natural es un hbrido porque stos desarrollan operaciones mentales tanto en niveles simblicos como sub-simblicos. Desde hace pocos aos se ha ido desarrollando una discusin sobre la importancia en la inteligencia artificial de la integracin de todos stos sistemas. Basados en las nociones de que se haban ya creado simples y especficos sistemas de inteligencia artificial (como sistemas para la visin de computadores, sntesis del habla, etc., o software que emplean alguno de los modelos mencionados arriba) algunos autores proponen a que es ahora el momento de la integracin para crear complejos, grandes sistemas de inteligencia artificial.

La programacin en lenguaje ensamblador proporciona un mayor control sobre el hardware de la computadora, pero tambin dificulta la buena estructuracin de los programas. La programacin hbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje ensamblador y los lenguajes de alto nivel, todo esto con el fin escribir programas ms rpidos y eficientes

Ejemplo de programacin hibrida VB.NET ensamblador


Antes de mostrar la aplicacin ejemplo les explico: el cdigo en ensamblador se debe incluir entre la clasula __asm{ }. El ensamblador del que se utiliza, es para 16 bits, es decir los registros como AX, BX, CX, DX son de 16 bits, sin embargo las variables de tipo entero en los lenguajes de .NET son de 32 bits, no caben, es por eso que se utiliza una extensin de esos registros, de tal forma que tendramos los registros: EAX, EBX, ECX, EDX. El ejemplo que se compilo slo suma los nmeros 300 y 255 y muestra el resultado.

SumarDosEnteros( int a, int b ) { int result; __asm { mov eax, a add eax, b mov result, eax } return result; }

int main(array<System::String ^> ^args) { int a = 300, b = 255, c = 0; c = SumarDosEnteros(a,b); Console::WriteLine(c); getch(); return 0; }

Ventajas y aplicaciones de programacin hibrida


Al trabajar con un lenguaje de alto nivel, en ocasiones nos encontramos con el problema de que necesitamos que haga determinada funcin o trabajo pero desafortunadamente sta solo existe en otro lenguaje que no es el que necesitamos utilizar, o simplemente, no encontramos esa funcin en ningn lenguaje de alto nivel. Ventajas de la Programacin Hbrida Para mejorar la escalabilidad Cuando muchas tareas producen desbalanceo Aplicaciones que combinan paralelismo de grano grueso y fino Reduccin del tiempo de desarrollo de cdigo Cuando el nmero de procesos MPI es fijo En caso de mezcla de paralelismo funcional y de datos

En este momento el lenguaje ensamblador constituye una herramienta no solo eficaz, sino simple para producir un parche para el compilador de nuestro lenguaje preferido. Tal vez el mayor problema con el que nos enfrentemos sea el de cmo conectar ambos programas (el de alto y el de bajo niveles) y cmo pasar variables de un programa al otro. Para conseguir nuestro objetivo se utilizan pseudo-operadores, es decir, instrucciones que aparecen en el cdigo fuente del ensamblador pero que no generan ninguna instruccin de mquina, pero proporcionan directivas para que el ensamblador pueda operar con datos, ramificaciones condicionales, generacin de listados y con macros durante el proceso de ensamble.

Bibliografa
Steve McConnell: Code Complete.Estados Unidos: Microsoft Press, 1994. SBN 1-55615-4844. http://www.monografias.com/trabajos11/lenen/lenen2.shtml. Microprocesadores: El 8088/86. F. Remiro Domnguez y A. Martn Garca. Ed. AKAL-Biblioteca Tecnolgica

Vous aimerez peut-être aussi