UNIDAD V
Bibliotecas de Funciones
L.I. & M.S.C. OSCAR RAMÍREZ CORTÉS
PROGRAMACIÓN DE SISTEMAS
Introducción
A medida que la tecnología avanza y las
necesidades de los usuarios son más
exigentes, los problemas que debemos
resolver se tornan más complejos.
Una técnica muy común para facilitar la
escritura de programas de gran tamaño o
que requieren resolver problemas
complejos consiste en dividir el problema
en problemas más pequeños.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Introducción
La construcción del programa se reduce a la construcción de
pequeñas unidades o subprogramas que se conectan de
alguna manera para resolver juntas el problema original.
Ésta técnica se conoce como MODULARIZACIÓN y a
cada subprograma se le denomina módulo.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Introducción
Una de las grandes ventajas de la modularización reside
en que los módulos pueden utilizarse en distintos lugares.
Para ello, resulta muy común organizarlos en LÍBRERÍAS.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Qué es una:
Biblioteca-Librería?
Es un conjunto de subprogramas compilados en un único archivo binario
almacenando la traducción de dichas funciones y que se llaman unos a otros.
Cada programa de una librería incluye una lista de sentencias, y
eventualmente, llamadas a otros subprogramas. La llamada consiste en que,
desde una sección principal o un subprograma, se derive la ejecución al
subprograma llamado.
Ejemplo:
Programa Principal
1
A()
2
B()
3
Fin.
Subprograma A:
Imprimir texto «hola»
_______________________
Subprograma B
Imprimir texto «mundo>
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Qué es una:
Biblioteca-Librería?
En los lenguajes, sobre todo en los más viejos, las librerías se cargan durante
la etapa de enlace.
Para qué se necesitan?
• Al querer utilizar una función de la biblioteca no tendremos que buscar el
código y compilarlo, sino simplemente decirle al compilador dónde puede
encontrar la biblioteca.
• Ayudan a la reutilización de código, permitiendo que varios programas
compartan porciones de código.
• Promueven una programación más modular.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
La Plataforma .Net y Java permiten el diseño de Librerías.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Qué es una
Librería General?
Contienen código que a menudo es usado por más de un
programa. Esto tiene la ventaja de que cada programa no necesita
duplicar el código (y el riesgo de introducir errores), sino que le
basta con llamar a las funciones de las librerías instaladas en el
sistema.
Generalmente sólo se necesita instalar librerías cuando se instala
software que requiere la funcionalidad que proporcionan. Así puede
hacerse una idea de qué librerías necesita antes de instalar un
programa.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Tipos de
Librerías
Dinámicas
Son cargadas en memoria en tiempo de
ejecución a partir de una copia compartida
(de aquí el nombre).
Estáticas
Se enlazan dentro del propio ejecutable, lo que hace que el
archivo del programa sea más grande.
Con frecuencia se encuentran en el sistema las copias estática y
compartida de la misma librería.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Ejemplo
En los lenguajes de programación que permiten
compilar código para ejecutar en el sistema
Windows, es muy común el uso de librerías de
enlace dinámico (DLL – Dynamic Link Library).
Este conjunto de DLLs se denominan API,
Aplication Programmer Interface o Interfaz para
el programador de aplicaciones.
El enlace dinámico consiste en saltear el paso de enlace durante la
compilación para hacerlo durante la ejecución del programa. Así
mientras un programa se ejecuta, si necesita código que se
encuentra en una librería se coloca ésta en memoria y se transfiere
el control al subprograma necesario dentro de la librería.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Ventajas e inconvenientes
De cada tipo de librería
• Un programa compilado con librerías estáticas es más grande, ya
que se hace copia de todo lo que necesita.
• Un programa compilado con librerías dinámicas se puede llevar a
otra computadora sin necesidad de llevarse las librerías.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Ventajas e inconvenientes
De cada tipo de librería
• Un programa compilado con librerías estáticas es, en principio, más rápido
en ejecución. Cuando llama a una función de la librería, la tiene en su
código y no tiene que ir a leer el fichero de la librería dinámica para
encontrar la función y ejecutarla.
• Si cambiamos una librería estática, a los ejecutables no les afecta. Si
cambiamos una dinámica, los ejecutables se ven afectados. Esto es una
ventaja si hemos cambiado la librería para corregir un error (se corrige
automáticamente en todos los ejecutables), pero es un inconveniente si
tocar eso nos hace cambiar los ejecutables (por ejemplo, hemos añadido un
parámetro más a una función de la librería, los ejecutables ya hechos dejan
de funcionar).
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Cual utilizar
Entonces?
Es como siempre una cuestión de
compromiso entre las ventajas y los
inconvenientes.
• Para programas no muy grandes y por
simplicidad, se recomienda usar librerías
estáticas.
• Las dinámicas están bien para programas
enormes o para librerías del sistema, que
como están en todas las computadoras
no es necesario andar llevándoselas de
un lado a otro.
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Por su atención
Gracias!!!
L.I. OSCAR RAMÍREZ CORTÉS/SISTEMAS DE PROGRAMACIÓN
Descargar

Diapositiva 1 - universitariouhv