You are on page 1of 13

Libreras en

lenguajes de
programacin

Libreras en lenguajes de
programacin
Una biblioteca es un conjunto de implementaciones
funcionales, codificadas en un lenguaje de programacin,
que ofrece una interfaz bien definida para la funcionalidad
que se invoca.
A diferencia de un programa ejecutable, el comportamiento
que implementa una biblioteca no espera ser utilizada de
forma autnoma, sino que su objetivo es ser utilizada por
otros programas, independientes y de forma simultnea. El
comportamiento de una biblioteca es muy parecido al que
pudiera ser un programa. Es ms, unas bibliotecas pueden
requerir de otras para funcionar, pues el comportamiento
que definen altera el comportamiento de la biblioteca
original o bien la hace disponible para otra tecnologa o
lenguaje de programacin.
Las bibliotecas pueden vincularse a un programa en
distintos puntos del desarrollo o la ejecucin, segn el tipo
de vnculo que se quiera establecer.
La mayora de los sistemas operativos modernos
proporcionan bibliotecas que implementan los servicios del
sistema. As estos servicios se han convertido en una
"materia prima" que cualquier aplicacin moderna espera
que el sistema operativo ofrezca. Como tal, la mayor parte
del cdigo utilizado por las aplicaciones modernas se ofrece
en estas bibliotecas.
La diferencia entre un programa y una librera es mnima, la
nica diferencia es que una librera no se ejecuta de forma
autnoma, pero por lo dems funciona como un programa.
Existen dos tipos de libreras, las libreras compartidas o
dinmicas y las libreras estticas.

Un conjunto de funciones propuestas por una o varias


libreras forma una API y estas se pueden agrupar en un
framework que ofrece una solucin completa para un
dominio dado.

Libreras Estticas
Las libreras estticas, son colecciones de ficheros objeto
agrupados en un solo fichero (con extensin .lib o .a.) y
acompaados de ficheros de cabecera (con extensin .h)
que contienen las declaraciones de los objetos definidos en
la librera. Posteriormente, durante la fase de enlazado, el
vnculo incluye en el ejecutable los mdulos
correspondientes a las funciones y clases de librera que
hayan sido utilizadas en la aplicacin. Como resultado, tales
mdulos entran a formar parte del ejecutable, de forma
exactamente igual que cualquier otra funcin o clase que
hubiese sido escrita en el cuerpo de la aplicacin.
El enlazador resuelve todas las direcciones no resueltas
convirtindolas en direcciones fijas cargando todo el cdigo
en posiciones de memoria en tiempo de ejecucin. Este
proceso de enlazado puede durar ms tiempo que el
proceso de compilacin, y debe ser realizado cada vez que
alguno de los mdulos es recompilado.
Un enlazador puede trabajar sobre tipos especficos de
ficheros objeto, y por lo tanto requiere tipos especficos
(compatibles) de bibliotecas. Los ficheros objeto
recompilados en una biblioteca pueden distribuirse y
utilizarse fcilmente. Un cliente, ya sea un programa u otra
biblioteca, accede a una biblioteca objeto referenciando
slo por su nombre. El proceso de enlazado resuelve las
referencias buscando en las bibliotecas del orden dado. Por
lo general, no se considera un error si un nombre puede
encontrarse varias veces en un determinado conjunto de
las bibliotecas.

Libreras dinmicas
Las bibliotecas dinmicas son ficheros que contienen cdigo
objeto construido de forma independiente a su ubicacin de
forma que estn preparadas para poder ser requeridas y
cargadas en tiempo de ejecucin por cualquier programa,
en lugar de tener que ser enlazadas, previamente, en
tiempo de compilacin. Por tanto, han de estar disponibles
como ficheros independientes al programa ejecutable
(generalmente en directorios del sistema). En el proceso de
enlazado se genera un fichero ejecutable con anotaciones
de qu bibliotecas dinmicas requiere, y funciones de
esbozo que se encargan de delegar la llamada a la funcin
al cargador dinmico (en Linux, ld.so). En el resto del
programa, las llamadas a las funciones de la biblioteca se
cambian por una llamada a la funcin de esbozo generada
por el enlazador.

Despus, cuando la aplicacin que se ejecute requiera


acceder a las rutinas almacenadas en una biblioteca
dinmica, y ejecute la funcin de esbozo, el cargador de
enlaces dinmicos podr sustituir esta llamada por la
funcin real de la biblioteca dinmica, cargndola en
memoria si no lo estuviera ya, y mapeando las pginas en
el espacio de memoria del proceso del programa.
En algunos sistemas operativos puede decidirse si una
biblioteca ha de estar disponible inmediatamente o
solamente cuando se haga referencia a una funcin de ella.
Si se decide lo segundo, se producir una retraso de carga,
derivado de tener que cargar de memoria secundaria la
biblioteca.
Ventajas del enlace dinmico respecto al esttico son que
se permite la reutilizacin del cdigo y de espacio fsico, un
mismo fichero de biblioteca compartida puede ser utilizada
por varios programas sin que estos copien su contenido
dentro de ellos. Esto puede llegar a ser bastante espacio,
segn el nmero de bibliotecas que requiera un programa.
Adems, puede reutilizarse memoria principal para
programas que utilicen la misma biblioteca.
Por otra parte, el mayor inconveniente es el aumento del
tiempo de carga (debido a tener que buscar el fichero de la
biblioteca, cargarlo y relocalizar las llamadas en el
programa) y el aumento de una indireccin a la hora de
llamar a las funciones de la biblioteca.

El enlace dinmico, por su naturaleza, tiene tan slo las


limitaciones establecidas por las licencias de software.
La tecnologa que permite enlazar bibliotecas de forma
dinmica es muy til para la construccin de plugins, sobre
todo cuando unas bibliotecas pueden ser sustituidas por
otras con una interfaz similar, pero diferente funcionalidad.
Se puede decir que un software tiene una "arquitectura de
plugin" si utiliza bibliotecas con una funcionalidad bsica
con la intencin de que puedan ser sustituidas. Pero, el uso
de las bibliotecas enlazadas dinmicamente en la
arquitectura de una aplicacin no significa necesariamente
que puedan ser sustituidas.

La diferencia entre libreras estticas y dinmicas es que


mientras en las libreras compartidas el acceso es dinmica
y se realiza en tiempo de ejecucin, en las estticas las
funcionalidades son enlazadas en tiempo de compilacin y
sustituidas por la llamada en el fichero ejecutable final.

Tipos de libreras graficas


Libreras grficas en C/C++:
El lenguaje C no provee de herramientas para realizar salida
grfica en un programa. Sin embargo existen muchas
bibliotecas, realizadas por terceros que proveen de estas
facilidades. Dadas las diferencias de cada sistema operativo
para manipular el entorno grfico, es muy difcil mantener
la portabilidad de un programa cuando se utilizan rutinas de
graficacin. Dado que este curso pretende ensear a
programar en C en forma independiente del sistema
operativo.
Por ejemplo, la biblioteca g2.

Libreras grficas en Java:


Para disear aplicaciones graficas en Java se utilizan las
libreras grficas Swing. Una interfaz que le permite al

usuario comunicarse con un programa, la interfaz es lo que


vemos al arrancar que nos permiten activar un cdigo que
es el que realmente nos llevar a una pgina web o salvar
la imagen en el disco duro
Las libreras grficas que usaremos vienen a sustituir a las
antiguas AWT. Las nuevas libreras aparte de tener una
mayor cantidad de opciones sobre los componentes se
diferencian de las anteriores por en su implementacin.

Libreras grficas en PHP:


PHP siempre es necesario y de mucha ayuda una lista de
componentes para realizar grficos, reportes mediante PHP.
Ya sea en flash 3D o con una imagen 2D es muy importante
y de alto rendimiento tener estadsticas en nuestras
aplicaciones.
Entre ellas estn:

1.FusionCharts
Puede integrarse con una multitud de tecnologas web
como ASP, ASP.NET, PHP, JSP, ColdFusion, Ruby, Python, o
incluso simples pginas HTML. Funciona con todas las
bases de datos incluyendo MS SQL, Oracle, MySQL,
PostgreSQL, tambin con archivos CSV.

2.PHP/SWF Charts
Es una herramienta para generar atractivos grficos a
partir de datos dinmicos. Genera un Flash con los
cuadros y grficos, tambin puede usar un XML para la
generacin de grficos.

3.Open Flash Chart


Esta clase genera grficos en formato Flash y existen
clases para PHP, Perl, .NET, Java, Ruby, Python.

4.amCharts
Es una caja de herramientas de grficos de Flash para
sus sitios web.
Puede extraer automticamente los datos desde el
simple archivo CSV o XML, o pueden leer datos
generados dinmica con PHP. NET, Java, Ruby, Perl, y
otros.

5.AnyChart
Es una solucin flexible basada en Flash que te permite
crear interactivos y grficos de gran apariencia de flash.
Es una cruz-navegador y multi-plataforma de grficos
destinados a la solucin de todos los que se refiere a la
creacin del tablero de instrumentos, informes, anlisis,
estadstica, financiera o de cualquier otra visualizacin
de datos de soluciones.

6.pChart
Es una clase escrita en PHP para generar imgenes
cartogrficas desde una consulta SQL, un archivo CSV,
o manualmente.

7.JpGraph

Es una clase que esta echa orientada a objetos, su


requerimiento es PHP >= 4.3.1.

8.GraPHPico
Web & Utilera para generar grficos de tipo estadstico
en lnea. Componente escrito en PHP + GD, genera
grficos en formato .PNG, actualmente existen los estilos
Porcentaje, Barras y Pastel.

9.WideImage
WideImage es una librera escrita en PHP5 orientada a
objetos para la manipulacin de la imagen, solo requiere
la extensin GD2. La mayor parte del cdigo est
probada con Simpletest.

10.

eZ components

Es un conjunto de mdulos independientes para el


desarrollo de aplicaciones PHP. El componente grfico le
permite crear lnea, grficos de barras y pastel.

Libreras grficas en DirectX:


DirectX es un conjunto de libreras que actan de forma
conjunta con los drivers de tu equipo. De esta forma
permiten ofrecer una funcionalidad estndar a los
programadores sin importar que tipo de hardware este
instalado. En ciertos casos pueden incluso simular
caractersticas por ejemplo de la tarjeta grfica usando el
microprocesador.

DirectX consta de las siguientes APIs: Direct3D, Direct


Graphics, DirectInput, DirectPlay, DirectSound, DirectMusic,
DirectShow, DirectSetup, DirectCompute .

Libreras grficas en Direct 3D:


Direct 3D es una API de DirectX y utilizado para el
procesamiento y la programacin de grficos en tres
dimensiones.

Libreras grficas en OpenGl:


OpenGL es una especificacin estndar que define una API
multilenguaje y multiplataforma para escribir aplicaciones
que produzcan grficos 2D y 3D. La interfaz consiste en
ms de 250 funciones que pueden usarse para dibujar
escenas tridimensionales complejas a partir de primitivas
geomtricas simples. Se usa en realidad virtual,
representacin cientfica, visualizacin de informacin y
simulacin de vuelo. Tambin se usa en desarrollo de
videojuegos.

Libreras grficas en GTK:


Las libreras graficas GTK desarrollan interfaces grficas de
usuario y es software libre (LGPL), en los cuales estn
basados los entornos grficos gnome, XFCE y lxde y
programas como gedit, gnumeric, geany, glade, anjuta, etc.
, adems tiene libreras multiplataforma por lo que existen
libreras para Windows, MacOS y otros.
Aunque fueron creadas para el desarrollo del programa de
edicin de imagen GIMP, se usaron para programas en

sistemas GNU/Linux, es la librera ms usada del software


libre.

Bibliografa:
http://es.wikipedia.org/
http://www.zator.com/
http://www.alegsa.com.ar/
http://www.ib.cnea.gov.ar/

http://usemossoftwarelibre.wordpress.com/
http://computadoras.about.com/
http://tednologia.com/

You might also like