Está en la página 1de 18

UNIVERSIDAD NACIONAL INTERCULTURAL

DE LA AMAZONIA

INGENIERIA AGROINDUSTRIAL
LENGUAJE DE PROGRAMACIN

TEMA : TIPOS DE LENGUAJE DE PROGRAMACION

DOCENTE : ORFA NAZARIO INOCENTE

ALUMNO : PANDURO HOYOS KELLY RAQUEL

CICLO : VIII

FECHA : MIERCOLES_04_OCTUBRE_2017
1. INTRODUCCION
Las personas para comunicarse entre s utilizan un lenguaje que puede ser oral o
escrito. En general, para comunicar algo siempre se usa un lenguaje.

La informtica no queda excluida del uso de lenguajes, ya que estos son la manera de
especificar las acciones que se desea sean realizadas en la computadora.

En otras palabras, son la interface entre el programador y la computadora. A travs de


ellos podemos desarrollar programas o aplicaciones, que se componen por un conjunto
de instrucciones que luego se ejecutarn en la computadora haciendo uso de sus
recursos (CPU, memoria, disco, etc.).

Los lenguajes de programacin estn destinados a distintos mbitos, dependiendo de


sus caractersticas que simplifican algunas tareas y complejizan otras.

Pueden estar destinados a aplicaciones cientficas, aplicaciones de negocios,


inteligencia artificial, programacin de sistemas, scripting, y tambin disponemos de
lenguajes de propsitos especiales.

Los lenguajes de programacin tienen una estructura compleja que se compone de


varias partes: sintaxis, semntica, elementos del lenguaje, nivel de abstraccin,
paradigma, estructuras de control para ordenar la ejecucin de los programas, tipos de
datos (nmeros, letras, etc.), y funciones o procedimientos (unidades) que contienen
un conjunto de instrucciones, entre otras.

No hay un nico tipo de lenguajes, sino que se clasifican segn las caractersticas que
posean y segn el paradigma y conceptos que soporten.
2. MARCO TEORICO.
2.1. HISTORIA DE LOS LENGUAJES DE PROGRAMACIN

Los primeros lenguajes de programacin surgieron de la idea de Charles Babbage, la


cual se le ocurri a este hombre a mediados del siglo XIX. Era un profesor matemtico
de la universidad de Cambridge e inventor ingls, que al principio del siglo XIX predijo
muchas de las teoras en que se basan los actuales ordenadores. Consista en lo que
l denominaba la maquina analtica, pero que por motivos tcnicos no pudo construirse
hasta mediados del siglo XX. Con l colaboro Ada Lobby, la cual es considerada como
la primera programadora de la historia, pues realizo programas para aqulla supuesta
mquina de Babagge, en tarjetas perforadas.

Como la maquina no llego nunca a construirse, los programas de Ada, lgicamente,


tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programacin,
sobre todo si observamos que en cuanto se empez a programar, los programadores
utilizaron las tcnicas diseadas por Charles Babagge, y Ada, que consistan entre
otras, en la programacin mediante tarjetas perforadas. A pesar de ello, Ada ha
permanecido como la primera programadora de la historia. Se dice por tanto que estos
dos genios de antao, se adelantaron un siglo a su poca, lo cual describe la inteligencia
de la que se hallaban dotados.

En 1823 el gobierno Britnico lo apoyo para crear el proyecto de una mquina de


diferencias, un dispositivo mecnico para efectuar sumas repetidas. Pero Babagge se
dedic al proyecto de la mquina analtica, abandonando la mquina de diferencias, que
se pudiera programar con tarjetas perforadas, gracias a la creacin de Charles Jacquard
(francs). Este hombre era un fabricante de tejidos y haba creado un telar que poda
reproducir automticamente patrones de tejidos, leyendo la informacin codificada en
patrones de agujeros perforados en tarjetas de papel rgido. Entonces Babagge intento
crear la mquina que se pudiera programar con tarjetas perforadas para efectuar
cualquier clculo con una precisin de 20 dgitos. Pero la tecnologa de la poca no
bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge no llegaron a
materializarse de forma definitiva, su contribucin es decisiva, ya que los ordenadores
actuales responden a un esquema anlogo al de la mquina analtica. En su diseo, la
mquina constaba de cinco unidades bsicas: Unidad de entrada, para introducir datos
e instrucciones; Memoria, donde se almacenaban datos y resultados intermedios;
Unidad de control, para regular la secuencia de ejecucin de las operaciones; Unidad
Aritmtico-Lgica, que efecta las operaciones; Unidad de salida, encargada de
comunicar al exterior los resultados. Charles Babbage, conocido como el "padre de la
informtica" no pudo completar en aquella poca la construccin del computador que
haba soado, dado que faltaba algo fundamental: la electrnica. El camino sealado de
Babbage, no fue nunca abandonado y siguindolo, se construyeron las primeras
computadoras.
2.2. LENGUAJES DE MQUINA

El lenguaje mquina de una computadora consta de cadenas de nmeros binarios


(ceros y unos) y es el nico que "entienden" directamente los procesadores. Todas las
instrucciones preparadas en cualquier lenguaje de mquina tienen por lo menos dos
partes. La primera es el comando u operacin, que dice a la computadora cul es la
funcin que va a realizar. Todas las computadoras tienen un cdigo de operacin para
cada una de sus funciones. La segunda parte de la instruccin es el operando, que
indica a la computadora dnde hallar o almacenar los datos y otras instrucciones que
se van a manipular; el nmero de operando de una instruccin vara en las distintas
computadoras. En una computadora de operando nico, el equivalente binario de
"SUMAR 0814" podra hacer que se sume el valor que se encuentra en la localidad de
almacenamiento o direccin 0814 al valor que se encuentra en la unidad aritmtica
lgica. En una mquina de dos operandos, la representacin binaria de "SUMAR 0814
8672" podra hacer que se sume el valor que est en la localidad 8672 al valor que est
en la direccin 0814. El formato de operando nico es popular en las
microcomputadoras ms pequeas; la estructura de dos operandos se encuentra en
casi todas las dems mquinas.

Segn los estndares actuales, las primeras computadoras eran poco tolerantes. Los
programadores tenan que traducir las instrucciones de manera directa a la forma de
lenguaje de mquina que comprendan las computadoras. Por ejemplo, un programador
que escribiera la instruccin "SUMAR 0814" para una de las primeras mquinas IBM
hubiera escrito:

000100000000000000000000000010111000

Adems de recordar las docenas de cdigos numricos para los comandos del conjunto
de instrucciones de la mquina, el programador tena que conocer las posiciones donde
se almacenan los datos y las instrucciones. La codificacin inicial muchas veces
requera meses, por lo que era costosa y era frecuente que originara errores. Revisar
las instrucciones para localizar errores era casi tan tedioso como escribirlas por primera
vez. Adems, si era necesario modificar un programa posteriormente, la tarea poda
llevarse meses.

2.3. LENGUAJES ENSAMBLADORES

A principios de la dcada de 1950, y con el fin de facilitar la labor de los programadores,


se desarrollaron cdigos nemotcnicos para las operaciones y direcciones simblicas.
La palabra nemotcnico se refiere a una ayuda para la memorizacin. Uno de los
primeros pasos para mejorar el proceso de preparacin de programas fue sustituir los
cdigos de operaciones numricos del lenguaje de mquina por smbolos alfabticos,
que son los cdigos nemotcnicos. Todas las computadoras actuales tienen cdigos
nemotcnicos aunque, naturalmente, los smbolos que se usan varan en las diferentes
marcas y modelos. La computadora sigue utilizando el lenguaje de mquina para
procesar los datos, pero los programas ensambladores traducen antes los smbolos de
cdigo de operacin especificados a sus equivalentes en lenguaje de mquina.
Este procedimiento prepar avances posteriores. Si la computadora era capaz de
traducir smbolos convenientes en operaciones bsicas, por qu no hacer tambin que
realizara otras funciones rutinarias de codificacin, como la asignacin de direcciones
de almacenamiento a los datos? La tcnica de direccionamiento simblico permite
expresar una direccin no en trminos de su localizacin numrica absoluta, sino en
trminos de smbolos convenientes para el programador.

Durante las primeras etapas del direccionamiento simblico, el programador asigna un


nombre simblico y una direccin real a un dato. Por ejemplo, el programador podra
asignar el valor total de mercanca adquirida durante un mes por un cliente de una tienda
de departamentos a la direccin 0063, y darle el nombre simblico TOTAL. Se podra
asignar el valor de la mercanca devuelta sin usar durante el mes a la direccin 2047 y
drsele el nombre simblico CRDITO. As, durante el resto del programa, el
programador se referir a los nombres simblicos, ms que a las direcciones, cuando
fuera preciso procesar estos datos. Por ejemplo, se podra escribir la instruccin "S
CRDITO TOTAL" para restar el valor de las mercancas devueltas del importa total de
compras para obtener el importe de la factura mensual del cliente. A continuacin, el
programa ensamblador traducira la instruccin simblica a esta cadena de bits:

Ms adelante se hizo otra mejora. Se dej a la computadora la tarea de asignar y


recordar las direcciones de las instrucciones. Lo nico que tena que hacer el
programador era indicar a la computadora la direccin de la primera instruccin, y el
programa ensamblador se encargaba de almacenar, de manera automtica, todas las
dems en forma secuencial a partir de ese punto. As, si se agregaba ms tarde otra
instruccin al programa, no era necesario modificar las direcciones de todas las
instrucciones que seguan al punto de insercin (como tendra que hacerse en el caso
de programas escritos en lenguaje de mquina). En vez de ello, el procesador ajustaba
automticamente las localidades de memoria la prxima vez que se ejecutaba el
programa.

En la actualidad, los programadores no asignan nmeros de direccin reales a los datos


simblicos, simplemente especifican dnde quieren que se coloque la primera localidad
del programa, y el programa ensamblador se encarga de lo dems: asigna localidades
tanto para las instrucciones como para los datos.

Estos programas de ensamble, o ensamblador, tambin permite a la computadora


convertir las instrucciones en lenguaje ensamblador del programador en su propio
cdigo de mquina. Un programa de instrucciones escrito en lenguaje ensamblador por
un programador se llama programa fuente. Despus de que el ensamblador convierte
el programa fuente en cdigo de mquina a ste se le denomina programa objeto. Para
los programadores es ms fcil escribir instrucciones en un lenguaje ensamblador que
en cdigos de lenguajes de mquina, pero es posible que se requieran dos corridas de
computadora antes de que se puedan utilizar las instrucciones del programa fuente para
producir las salidas deseadas.
2.4. LENGUAJES DE ALTO NIVEL

Los primeros programas ensambladores producan slo una instruccin en lenguaje de


mquina por cada instruccin del programa fuente. Para agilizar la codificacin, se
desarrollaron programas ensambladores que podan producir una cantidad variable de
instrucciones en lenguaje de mquina por cada instruccin del programa fuente. Dicho
de otra manera, un solo macroinstruccin poda producir varias lneas de cdigo en
lenguaje de mquina. Por ejemplo, el programador podra escribir "LEER ARCHIVO", y
el programa traductor producira una serie detallada de instrucciones al lenguaje de
mquina previamente preparada, con lo que se copiara un registro del archivo que
estuviera leyendo el dispositivo de entrada a la memoria principal. As, el programador
no se tena que ocupar de escribir una instruccin por cada operacin de mquina
realizada.

El desarrollo de las tcnicas nemotcnicas y los macroinstrucciones condujo, a su vez,


al desarrollo de lenguajes de alto nivel que a menudo estn orientados hacia una clase
determinada de problemas de proceso. Por ejemplo, se han diseado varios lenguajes
para procesar problemas cientfico-matemtico, asimismo han aparecido otros
lenguajes que hacen hincapi en las aplicaciones de proceso de archivos.

A diferencia de los programas de ensamble, los programas en lenguaje de alto nivel se


pueden utilizar con diferentes marcas de computadores sin tener que hacer
modificaciones considerables. Esto permite reducir sustancialmente el costo de la
reprogramacin cuando se adquiere equipo nuevo. Otras ventajas de los lenguajes de
alto nivel son:

Son ms fciles de aprender que los lenguajes ensambladores.


Se pueden escribir ms rpidamente.
Permiten tener mejor documentacin.
Son ms fciles de mantener.

Un programador que sepa escribir programas en uno de estos lenguajes no est limitado
a utilizar un solo tipo de mquina.

3. LENGUAJES COMPILADOS

Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambin tiene


que traducirse a un cdigo que pueda utilizar la mquina. Los programas traductores
que pueden realizar esta operacin se llaman compiladores. stos, como los programas
ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por
cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de
procesar los datos de un problema.

Los compiladores son aquellos cuya funcin es traducir un programa escrito en un


determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con
cdigo binario).

Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de
Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta
que luego de haber compilado el programa, ya no aparecen errores en el cdigo.
4. LENGUAJES INTERPRETADOS

Se puede tambin utilizar una alternativa diferente de los compiladores para traducir
lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma
permanente el cdigo objeto que se produce durante la corrida de compilacin para
utilizarlo en una corrida de produccin futura, el programador slo carga el programa
fuente en la computadora junto con los datos que se van a procesar. A continuacin, un
programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera
permanente dentro de la mquina, convierte cada proposicin del programa fuente en
lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos.
No se graba el cdigo objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez y traducir
a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de
un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cada vez que se
ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo de ejecucin
(porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo
de diseo (porque no se tiene que estar compilando a cada momento el cdigo
completo). El intrprete elimina la necesidad de realizar una corrida de compilacin
despus de cada modificacin del programa cuando se quiere agregar funciones o
corregir errores; pero es obvio que un programa objeto compilado con antelacin deber
ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso
durante una corrida de produccin.

5. LENGUAJES DE PROGRAMACIN DECLARATIVOS

Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos


lenguajes de programacin en los cuales se le indica a la computadora qu es lo que se
desea obtener o qu es lo que se est buscando, por ejemplo: Obtener los nombres de
todos los empleados que tengan ms de 32 aos. Eso se puede lograr con un lenguaje
declarativo como SQL.

La programacin declarativa es una forma de programacin que implica la descripcin


de un problema dado en lugar de proveer una solucin para dicho problema, dejando la
interpretacin de los pasos especficos para llegar a dicha solucin a un intrprete no
especificado. La programacin declarativa adopta, por lo tanto, un enfoque diferente al
de la programacin imperativa tradicional.

En otras palabras, la programacin declarativa provee el "qu", pero deja el "cmo"


liberado a la implementacin particular del intrprete. Por lo tanto se puede ver que la
programacin declarativa tiene dos fases bien diferenciadas, la declaracin y la
interpretacin.

Es importante sealar que a pesar de hacer referencia a intrprete, no hay que limitarse
a "lenguajes interpretados" en el sentido habitual del trmino, sino que tambin se puede
estar trabajando con "lenguajes compilados".
5.1. CARACTERSTICAS DE LOS LENGUAJES DE PROGRAMACIN
DECLARATIVOS

Los lenguajes declarativos estn orientados a buscar la solucin del problema, sin
preocuparse por la forma de llegar a ello; es decir, el programador debe concentrarse
en la lgica del algoritmo, ms que en el control de la secuencia.

Los programas estn formados por un conjunto de definiciones o ecuaciones, las cuales
describen lo que debe ser calculado, no en s la forma de hacerlo.

Las variables slo pueden tener asignado un solo valor a lo largo de la ejecucin del
programa, lo cual implica que no puede existir asignacin destructiva. Debido a esto,
cobra especial importancia el uso del anidamiento y la recursividad.

Las listas representan la estructura fundamental de datos.

El orden de la ejecucin no resulta importante debido a que no existen efectos


colaterales; es decir, que al calcular un valor, resulta imposible afectar el clculo de otros
y con esto se puede afirmar que cualquier secuencia de ejecucin deber conducir al
mismo resultado.

Las expresiones o definiciones pueden ser usadas como valores y por lo tanto se
pueden tratar como argumentos de otras definiciones.

El control de la ejecucin no es responsabilidad del programador.

5.2. DESVENTAJAS DE LA PROGRAMACIN DECLARATIVA

La principal desventaja de la programacin declarativa es que no puede resolver


cualquier problema dado, sino que est restringida al subconjunto de problemas para
los que el intrprete o compilador fue diseado.

Otra desventaja de la programacin declarativa est relacionada con la eficiencia. Dado


que es necesaria una fase de interpretacin extra, en la cual se deben evaluar todas las
consecuencias de todas las declaraciones realizadas, el proceso es relativamente ms
lento que en la programacin imperativa, en que los cambios de estado del sistema
estn dados por instrucciones particulares y no por un conjunto de condiciones
arbitrariamente grande.

5.3. VENTAJAS DE LA PROGRAMACIN DECLARATIVA

A pesar de lo anterior existen algunas ventajas en el uso de la programacin declarativa.


Entre las ventajas se destaca que la solucin de un problema se puede realizar con un
nivel de abstraccin considerablemente alto, sin entrar en detalles de implementacin
irrelevantes, lo que hace a las soluciones ms fcil de entender por las personas. La
resolucin de problemas complejos es resuelta por el intrprete a partir de la declaracin
de las condiciones dadas.

La programacin declarativa es muy usada en la resolucin de problemas relacionados


con inteligencia artificial, bases de datos, configuracin, y comunicacin entre procesos;
sin embargo, ningn leguaje declarativo se aproxima en popularidad a los lenguajes
imperativos.
5.4. EJEMPLOS DE LENGUAJES DECLARATIVOS

Algunos lenguajes declarativos que se pueden mencionar son:

PROLOG
SQL
HTML
WSDL (Web Servicies Description Lenguaje)
XML Stylesheet Lenguaje por Transformacin

5.5. PROGRAMACIN LGICA

La idea fundamental de la programacin lgica consiste en emplear la lgica como


lenguaje de programacin.

La lgica no es imperativa porque no sirve para indicar cmo resolver un problema


(rdenes). La lgica es declarativa porque sirve para especificar qu problema resolver
(condiciones).

En la programacin lgica, se especifican las condiciones que satisfacen las soluciones,


se deducen las soluciones a partir de las condiciones y el nfasis de todo est en qu
problema resolver. El problema se describe especificando qu caracteriza a sus posibles
soluciones.

La programacin lgica, junto con la funcional, forma parte de lo que se conoce como
programacin declarativa. En los lenguajes tradicionales, la programacin consiste en
indicar cmo resolver un problema mediante sentencias; en la programacin lgica, se
trabaja de forma descriptiva, estableciendo relaciones entre entidades, indicando no
cmo, sino qu hacer. Se establece entonces que la idea esencial de la programacin
lgica es: algoritmos = lgica + control. Es decir, un algoritmo se construye
especificando conocimiento en un lenguaje formal (lgica de primer orden), y el
problema se resuelve mediante un mecanismo de inferencia (control) que acta sobre
aqul.

Al hacer un recorrido por la programacin lgica, aparece como uno de sus lenguajes
ms representativos, Prologa, que es un clsico de la inteligencia artificial y que se
aplica de mltiples formas en el desarrollo de software comercial.

5.6. PROGRAMACIN FUNCIONAL

La programacin funcional es un paradigma de programacin declarativa basado en la


utilizacin de funciones matemticas. El objetivo de la programacin funcional es
conseguir lenguajes expresivos y matemticamente elegantes, en los que no sea
necesario bajar al nivel de la mquina para describir el proceso llevado a cabo por el
programa.

Los programas escritos en un lenguaje funcional estn constituidos nicamente por


definiciones de funciones, entendiendo stas no como subprogramas clsicos de un
lenguaje imperativo (pues la programacin funcional es declarativa), sino como
funciones puramente matemticas, en las que se verifican ciertas propiedades como la
transparencia referencial (el significado de una expresin depende nicamente del
significado de sus su expresiones), y por tanto, la carencia total de efectos laterales.

Otras caractersticas propias de estos lenguajes son la no existencia de asignaciones


de variables y la falta de construcciones estructuradas como la secuencia o la iteracin
(lo que obliga en la prctica a que todas las repeticiones de instrucciones se lleven a
cabo por medio de funciones recursivas).

Existen dos grandes categoras de lenguajes funcionales: los funcionales puros y los
hbridos. La diferencia entre ambos estriba en que los lenguajes funcionales hbridos
son menos dogmticos que los puros, al permitir conceptos tomados de los lenguajes
imperativos, como las secuencias de instrucciones o la asignacin de variables. En
contraste, los lenguajes funcionales puros tienen una mayor potencia expresiva,
conservando a la vez su transparencia referencial, algo que no se cumple siempre con
un lenguaje hbrido.

5.7. PROGRAMACIN ORIENTADA A BASES DE DATOS

Las bases de datos son programas que administran informacin y hacen ms ordenada
la informacin, aparte de hacer la fcil de buscar y por supuesto de encontrar.

Las caractersticas de las bases de datos pueden ser ventajosas o desventajosas:


pueden ayudar a almacenar, organizar, recuperar, comunicar y manejar informacin en
formas que seran imposibles sin las computadoras, pero tambin afecta de alguna
manera ya que existen enormes cantidades de informacin en bases de datos de las
que no se tiene control del acceso.

Las bases de datos tienen muchos usos: facilitan el almacenamiento de grandes


cantidades de informacin; permiten la recuperacin rpida y flexible de informacin,
con ellas se puede organizar y reorganizar la informacin, as como imprimirla o
distribuirla en formas diversas.

Es claro que los lenguajes orientados a bases de datos son declarativos y no


imperativos, pues el problema es "qu" se quiere hacer o "qu" se necesita buscar y
encontrar en la base de datos, y no se enfatiza el "cmo".

Una base de datos tambin se puede definir como un banco de datos o conjunto de
datos que pertenecen al mismo contexto, almacenados sistemticamente para su
posterior uso. En este sentido, una biblioteca puede considerarse una base de datos
compuesta en su mayora por documentos y textos impresos en papel e indexados para
su consulta.

En la actualidad, y gracias al desarrollo tecnolgico de campos como la informtica y la


electrnica, la mayora de las bases de datos tienen formato electrnico, que ofrece un
amplio rango de soluciones al problema de almacenar datos.

Los sistemas gestores de bases de datos (SGBD) permiten almacenar y posteriormente


acceder a los datos de forma rpida y estructurada.
5.7.1. TIPOS DE BASES DE DATOS

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido
para su clasificacin, que puede ser segn la variabilidad de los datos almacenados o
segn el contenido.

5.7.1.1 CLASIFICACIN DE BASES DE DATOS SEGN LA VARIABILIDAD DE LOS


DATOS ALMACENADOS

Esta clasificacin depende de cmo los datos cambian o varan dentro de la base de
datos, o si se mantienen estticos sin sufrir modificaciones o cambios. Dentro de esta
clasificacin se tiene lo siguiente:

BASES DE DATOS ESTTICAS: stas son bases de datos de slo lectura, utilizadas
primordialmente para almacenar datos histricos que posteriormente se pueden utilizar
para estudiar el comportamiento de un conjunto de datos a travs del tiempo, realizar
proyecciones y tomar decisiones.

BASES DE DATOS DINMICAS: stas son bases de datos donde la informacin


almacenada se modifica con el tiempo, permitiendo operaciones como actualizacin y
adicin de datos, adems de las operaciones fundamentales de consulta. Un ejemplo
de esto puede ser la base de datos utilizada en un sistema de informacin de una tienda
de abarrotes, una farmacia, un videoclub, etc.

5.7.1.2. CLASIFICACIN DE BASES DE DATOS SEGN CONTENIDO

Esta clasificacin basa su enfoque en el contenido o lo que almacena la base de datos,


de esta manera:

BASES DE DATOS BIBLIOGRFICAS: Solo contienen un "representante" de la fuente


primaria, que permite localizarla. Un registro tpico de una base de datos bibliogrfica
contiene informacin sobre el autor, fecha de publicacin, editorial, ttulo, edicin, de
una determinada publicacin, etc. Puede contener un resumen o extracto de la
publicacin original, pero nunca el texto completo, porque sino se estara en presencia
de una base de datos a texto completo (o de fuentes primarias). Como su nombre lo
indica, el contenido son cifras o nmeros. Por ejemplo, una coleccin de resultados de
anlisis de laboratorio, entre otras.

BASES DE DATOS DE TEXTO COMPLETO: Almacenan las fuentes primarias, como


por ejemplo, todo el contenido de todas las ediciones de una coleccin de revistas
cientficas.

DIRECTORIOS: Un ejemplo son las guas telefnicas en formato electrnico.

BANCO DE IMGENES, AUDIO, MULTIMEDIA, ETC.

4.7.2. MODELOS DE BASES DE DATOS

Adems de la clasificacin por la funcin de las bases de datos, stas tambin se


pueden clasificar de acuerdo a su modelo de administracin de datos.

Un modelo de datos es bsicamente una "descripcin" de algo conocido como


contenedor de datos (algo en donde se guarda la informacin), as como de los mtodos
para almacenar y recuperar informacin de esos contenedores. Los modelos de datos
no son cosas fsicas: son abstracciones que permiten la implementacin de un sistema
eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos
matemticos.

Algunos modelos con frecuencia utilizados en las bases de datos son:

BASES DE DATOS JERRQUICAS: stas son bases de datos que, como su nombre
indica, almacenan su informacin en una estructura jerrquica. En este modelo los datos
se organizan en una forma similar a un rbol (visto al revs), en donde un nodo padre
de informacin puede tener varios hijos. El nodo que no tiene padres es llamado raz, y
a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos
jerrquicas son especialmente tiles en el caso de aplicaciones que manejan un gran
volumen de informacin y datos muy compartidos permitiendo crear estructuras estables
y de gran rendimiento. Una de las principales limitaciones de este modelo es su
incapacidad de representar eficientemente la redundancia de datos.

BASES DE DATOS DE RED: ste es un modelo ligeramente distinto del jerrquico; su


diferencia fundamental es la modificacin del concepto de nodo: se permite que un
mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerrquico). Fue
una gran mejora con respecto al modelo jerrquico, ya que ofreca una solucin eficiente
al problema de redundancia de datos; pero, aun as, la dificultad que significa administrar
la informacin en una base de datos de red ha significado que sea un modelo utilizado
en su mayora por programadores ms que por usuarios finales.

BASES DE DATOS RELACIONAL: ste es el modelo ms utilizado en la actualidad


para modelar problemas reales y administrar datos dinmicamente. Tras ser postulados
sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San Jos
(California), no tard en consolidarse como un nuevo paradigma en los modelos de base
de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podran
considerarse en forma lgica como conjuntos de datos llamados "tuplas". Pese a que
sta es la teora de las bases de datos relacionales creadas por Edgar Frank Codd, la
mayora de las veces se conceptualiza de una manera ms fcil de imaginar. Esto es
pensando en cada relacin como si fuese una tabla que est compuesta por registros
(las filas de una tabla), que representaran las tuplas, y campos (las columnas de una
tabla).

En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia
(a diferencia de otros modelos como el jerrquico y el de red). Esto tiene la considerable
ventaja de que es ms fcil de entender y de utilizar para un usuario espordico de la
base de datos. La informacin puede ser recuperada o almacenada mediante
"consultas" que ofrecen una amplia flexibilidad y poder para administrar la informacin.
El lenguaje ms habitual para construir las consultas a bases de datos relacionales es
SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estndar
implementado por los principales motores o sistemas de gestin de bases de datos
relacionales. Durante su diseo, una base de datos relacional pasa por un proceso al
que se le conoce como normalizacin (reglas fundamentales para el buen
funcionamiento de una base de datos relacional) de una base de datos. Durante los
aos '80 (1980-1989) la aparicin de base produjo una revolucin en los lenguajes de
programacin y sistemas de administracin de datos. Aunque nunca debe olvidarse que
base no utilizaba SQL como lenguaje base para su gestin. La normalizacin de una
base de datos relacional consiste en las siguientes reglas:

Primera Forma Normal (1FN): se eliminan los grupos repetitivos. Los atributos han de
ser atmicos. Grficamente las celdas de la tabla contienen solo un valor, en cada uno
de los atributos slo se puede incluir un dato, aunque sea compuesto, pero no se puede
incluir una lista de datos. Se trata de que cada atributo guarde la menor cantidad de
informacin posible. Para eliminar los grupos repetitivos se pone cada uno de ellos en
una tabla aparte, esa nueva tabla hereda la clave primaria de la relacin en la que se
encontraban, se crea una clave fornea para la nueva tabla.

Segunda Forma Normal (2FN): dependencia completa. Est en 2FN si est en 1FN y
si sus atributos no principales dependen de forma completa de la clave principal. Toda
relacin que tenga como clave slo un atributo est en 2FN.

Tercera Forma Normal (3FN): dependencia transitiva. Est en segunda forma normal
y todo atributo no primo es implicado por la clave primaria en una secuencia no transitiva.

Forma Normal de Boyce-Codd: una tabla est en FNBC, s y slo s las nicas
dependencias funcionales elementales son aquellas en las que la Clave primaria
determina un atributo.

Cuarta Forma Normal (4FN): est en forma normal de Boyce-Codd y se eliminan las
dependencias multivaluadas y se generan todas las relaciones externas con otras tablas
u otras bases de datos.

Quinta Forma Normal (5FN): est en cuarta forma normal y toda dependencia-join
viene implicada por claves candidatas.

BASES DE DATOS ORIENTADAS A OBJETOS: este modelo, bastante reciente, y


propio de los modelos informticos orientados a objetos, trata de almacenar en la base
de datos los objetos completos (estado y comportamiento). Una base de datos orientada
a objetos es una base de datos que incorpora todos los conceptos importantes del
paradigma de objetos: encapsulacin (propiedad que permite ocultar la informacin al
resto de los objetos, impidiendo as accesos incorrectos o conflictos), herencia
(propiedad a travs de la cual los objetos heredan comportamiento dentro de una
jerarqua de clases y polimorfismo (propiedad de una operacin mediante la cual puede
ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los
usuarios pueden definir operaciones sobre los datos como parte de la definicin de la
base de datos.

BASES DE DATOS DOCUMENTALES: permiten la indexacin a texto completo, y en


lneas generales realizar bsquedas ms potentes.

BASE DE DATOS DEDUCTIVAS: un sistema de base de datos deductivos, es un


sistema de base de datos pero con la diferencia de que permite hacer deducciones a
travs de inferencias. Se basa principalmente en reglas y hechos que son almacenados
en la base de datos. Tambin las bases de datos deductivas son llamadas base de datos
lgica, a raz de que se basan en lgica matemtica.
6. LENGUAJES DE PROGRAMACIN IMPERATIVOS
En ciencias de la computacin se llama lenguajes imperativos a aquellos en los cuales
se le ordena a la computadora cmo realizar una tarea siguiendo una serie de pasos o
instrucciones, por ejemplo:

Paso 1, solicitar nmero.


Paso 2, multiplicar nmero por dos.
Paso 3, imprimir resultado de la operacin.
Paso 4, etc.,

El proceso anterior se puede realizar con un lenguaje imperativo como por ejemplo
BASIC, C, C++, Java, Clipper, Base, C#, PHP, Perl, etc.
Dentro de la programacin imperativa, se tiene un conjunto de instrucciones que le
indican al computador cmo realizar una tarea.
Los lenguajes imperativos se basan en comandos u rdenes que se le dan a la
computadora para que haga algo, con el fin de organizar o cambiar valores en ciertas
partes de la memoria.
La ejecucin de estos comandos se realiza, en la mayor parte de ellos, secuencialmente,
es decir, hasta que un comando no ha sido ejecutado no se lee el siguiente.
Segn el dominio, o mejor dicho con el propsito que se utiliza el programa, se puede
hablar de lenguajes de dominio especfico y de dominio general.

6.1. LENGUAJES IMPERATIVOS PROCEDURALES

En los lenguajes tradicionales o procedurales, es la aplicacin quien controla qu


porciones de cdigo se ejecuta, y la secuencia en que este se ejecuta. La ejecucin de
la aplicacin se inicia con la primera lnea de cdigo, y sigue una ruta predefinida a
travs de la aplicacin, llamando procedimientos segn sea necesario.
Los lenguajes procedurales estn fundamentados en la utilizacin de variables para
almacenar valores y en la realizacin de operaciones con los datos almacenados.
Algunos ejemplos son: FORTRAN, PASCAL, C, ADA, ALGOL,
En este tipo de lenguajes, la arquitectura consta de una secuencia de celdas, llamadas
memoria, en las cuales se pueden guardar en forma codificada, lo mismo datos que
instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial
una serie de operaciones, principalmente aritmticas y booleanas, llamadas comandos.
En general, un lenguaje procedural ofrece al programador conceptos que se traducen
de forma natural al modelo de la mquina. El programador tiene que traducir la solucin
abstracta del problema a trminos muy primitivos, cercanos a la mquina.
Con un lenguaje procedural el usuario (normalmente ser un programador) especifica
qu datos se necesitan y cmo obtenerlos. Esto quiere decir que el usuario debe
especificar todas las operaciones de acceso a datos llamando a los procedimientos
necesarios para obtener la informacin requerida. Estos lenguajes acceden a un
registro, lo procesan y basndose en los resultados obtenidos, acceden a otro registro,
que tambin deben procesar. As se va accediendo a registros y se van procesando
hasta que se obtienen los datos deseados. Las sentencias de un lenguaje procedural
deben estar embebidas en un lenguaje de alto nivel, ya que se necesitan sus estructuras
(bucles, condicionales, etc.) para obtener y procesar cada registro individual.
6.2. ALGUNOS LENGUAJES IMPERATIVOS

Algunos lenguajes de programacin imperativos que se pueden mencionar son:

BASIC
C
C++
Java
C#
PHP
Perl

7. DIFERENCIA ENTRE LENGUAJES DECLARATIVOS E IMPERATIVOS


En los lenguajes declarativos las sentencias que se utilizan lo que hacen es describir el
problema que se quiere solucionar, pero no las instrucciones necesarias para
solucionarlo. Esto ltimo se realizar mediante mecanismos internos de inferencia de
informacin a partir de la descripcin realizada.
Los lenguajes imperativos describen paso a paso un conjunto de instrucciones que
deben ejecutarse para variar el estado un programa y hallar la solucin, es decir, un
algoritmo en el que se describen los pasos necesarios para solucionar un problema.

8. LENGUAJES DE PROGRAMACIN ORIENTADOS A OBJETOS

En la Programacin Orientada a Objetos (POO u OOP segn siglas en ingls) se definen


los programas en trminos de "clases de objetos", objetos que son entidades que
combinan estado (es decir, datos) comportamiento (esto es, procedimientos o mtodos)
e identidad (propiedad del objeto que lo diferencia del resto). La programacin orientada
a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre
ellos para realizar tareas. Esto permite hacer los programas mdulos ms fciles de
escribir, mantener y reutilizar.
De esta forma, un objeto contiene toda la informacin, (los denominados atributos) que
permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e
incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en
sus atributos). A su vez, dispone de mecanismos de interaccin (los llamados mtodos)
que favorecen la comunicacin entre objetos (de una misma clase o de distintas), y en
consecuencia, el cambio de estado en los propios objetos. Esta caracterstica lleva a
tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse)
informacin (datos) y procesamiento (mtodos).
Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie
de atributos definitorios, requiere de unos mtodos para poder tratarlos (lo que hace que
ambos conceptos estn ntimamente entrelazados), el programador debe pensar
indistintamente en ambos trminos, ya que no debe nunca separar o dar mayor
importancia a los atributos a favor de los mtodos, ni viceversa. Hacerlo puede llevar al
programador a seguir el hbito errneo de crear clases contenedoras de informacin
por un lado y clases con mtodos que manejen esa informacin por otro (llegando a una
programacin estructurada camuflada en un lenguaje de programacin orientada a
objetos).
Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los
procedimientos estn separados y sin relacin, ya que lo nico que se busca es el
procesamiento de unos datos y los procedimientos estn separados y sin relacin, ya
que lo nico que se busca es el procesamiento de unos datos de entrada para obtener
otros de salida. La programacin estructurada anima al programador a pensar sobre
todo en trminos de procedimientos o funciones, y en segundo lugar en las estructuras
de datos que esos procedimientos manejan. Los programadores de lenguajes
imperativos escriben funciones y despus les pasan los datos. Los programadores que
emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus
envan mensajes a los objetos diciendo que realicen esos mtodos por s mismos.
Un objeto se puede definir como un grupo de procedimientos que comparten un estado.
Se define al conjunto de datos como "estado", y "mtodos" como el conjunto de
procedimientos que pueden alterar ese estado. Un programa orientado a objetos es
un mtodo de implementacin en el que los programas estn organizados como
colecciones de objetos, donde cada uno es una instancia de alguna clase, y donde todas
las clases son miembros de una jerarqua de clases conectadas por relaciones
de herencia. Este tipo de lenguajes son muy recientes en comparacin a los primeros
lenguajes de programacin que aparecieron.

8.1. CONCEPTOS BSICOS DE LA PROGRAMACIN ORIENTADA A OBJETOS

La programacin orientada a objetos es una nueva forma de programar que trata de


encontrar la solucin a problemas de una forma que ofrece muchas ventajas y
facilidades que no se tenan anteriormente. Introduce nuevos conceptos, que superan
y amplan conceptos antiguos ya conocidos. Entro ellos destacan los siguientes:

OBJETO: entidad provista de un conjunto de propiedades o atributos (datos) y de


comportamiento o funcionalidad ("mtodos"). Corresponden a los objetos reales del
mundo que nos rodea, o a objetos internos del sistema (del programa)

CLASE: definiciones de las propiedades y comportamiento de un tipo de


objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un
objeto a partir de ellas. Una clase es una coleccin de objetos similares o la
implementacin, declaracin o definicin de un tipo de objeto. Cada vez que se
construye un objeto de una clase se crea una instancia de esa clase. Por ejemplo en
Visual Basic, se tiene la clase Form, y se pueden crear instancias de esa clase al tener
Form1, Form2, etc. As se est creando una instancia de la clase Form.

MTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se


desencadena tras la recepcin de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un mtodo puede producir un cambio
en lar propiedades del objeto, o la generacin de un "evento" con un nuevo mensaje
para otro objeto del sistema.

EVENTO: un suceso en el sistema (tal como una interaccin del usuario con la mquina,
o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje
adecuado al objeto pertinente.

MENSAJE: una comunicacin dirigida a un objeto, que le ordena que ejecute uno de
sus mtodos con ciertos parmetros asociados al evento que lo gener.

PROPIEDAD O ATRIBUTO: contenedor de un tipo de datos asociados a un objeto (o a


una clase de objetos), que hace los datos visibles desde fuera del objeto, y cuyo valor
puede ser alterado por la ejecucin de algn mtodo.
ESTADO INTERNO: es una propiedad invisible de los objetos, que puede ser
nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar
distintas situaciones posibles para el objeto (o clase de objetos).

En comparacin con un lenguaje imperativo, una "variable no es ms que un contenedor


interno del atributo del objeto o de un estado interno, as como la "funcin" es un
procedimiento interno del mtodo del objeto.

8.2. CARACTERSTICAS DE LA PROGRAMACIN ORIENTADA A OBJETOS


Las caractersticas ms importantes de la programacin orientada a objetos son las
siguientes:

ABSTRACCIN: Cada objeto en el sistema sirve como modelo de un "agente"


abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con
otros objetos en el sistema sin revelar cmo se implementan estas caractersticas. Los
procesos, las funciones o los mtodos pueden tambin ser abstrados y cuando lo estn,
una variedad de tcnicas son requeridas para ampliar una abstraccin.

ENCAPSULAMIENTO: tambin llamado "ocultacin de la informacin". Cada objeto


est aislado del exterior, es un mdulo natural, y cada tipo de objeto expone una interfaz
a otros objetos que especfica cmo pueden interactuar con los objetos de la clase. El
aislamiento protege a las propiedades de un objeto contra su modificacin por quien no
tenga derecho a acceder a ellas, solamente los propios mtodos internos del objeto
pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el
estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e
interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso
directo a los datos internos del objeto de una manera controlada y limitando el grado de
abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos.
Esta caracterstica o propiedad permite por tanto ejecutar la informacin al resto de los
objetos, impidiendo as accesos incorrectos o conflictos.

POLIMORFISMO: comportamientos diferentes, asociados a objetos distintos, pueden


compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento
correspondiente al objeto que se est usando. O dicho de otro modo, las referencias y
las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin
de un comportamiento en una referencia producir el comportamiento correcto para el
tipo real del objeto referenciado. Por ejemplo en Visual Basic, el polimorfismo se da al
tener diferentes tipos de objetos (Form, Label, etc.)

HERENCIA: las clases no estn aisladas, sino que se relacionan entre s, formando una
jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de
todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y
el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos
especializados de objetos preexistentes. Estos pueden compartir (y extender) su
comportamiento sin tener que re implementar su comportamiento. Esto suele hacerse
habitualmente agrupando los objetos en clases y estas en rboles o enrejados que
reflejan un comportamiento comn. Cuando un objeto pertenece a ms de una clase se
dice que hay herencia mltiple; esta caracterstica no est soportada por algunos
lenguajes (como Java). Con esta propiedad, los objetos heredan comportamientos
dentro de una jerarqua de clases.
8.3. PRINCIPALES DIFERENCIAS ENTRE LA PROGRAMACIN IMPERATIVA Y LA
PROGRAMACIN ORIENTADA A OBJETOS

La programacin orientada a objetos es ms moderna, es una evolucin de la


programacin imperativa plasmada en el diseo de una familia de lenguajes conceptos
que existan previamente, con algunos nuevos.

La programacin orientada a objetos se basa en lenguajes que soportan sintctica y


semnticamente la unin entre los tipos abstractos de datos y sus operaciones (a esta
unin se la suele llamar clase).

La programacin orientada a objetos incorpora en su entorno de ejecucin mecanismos


tales como el polimorfismo y el envo de mensajes entre objetos.

8.4. ALGUNOS LENGUAJES ORIENTADOS A OBJETOS

Entre los lenguajes orientados a objetos ms importantes que se pueden mencionar,


aparecen los siguientes:

Ada
C++
C#
VB.NET
Clarion
Delphi
Eiffel
Jave
Lexico
Objective-C
Ocaml
Oz
PHP
PowerBuilder
Pitn
Ruby
Smalltalk

También podría gustarte