Está en la página 1de 36

Complejidad Vs Dificultad

Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a


ese nivel es muy difcil. Dado que este lenguaje viene dado por las
especificaciones tcnicas del hardware, no permite una abstraccin fuera de lo
estipulado para el microprocesador de un ordenador. Consecuentemente, es
fcilmente trasladado a lenguaje de mquina.
La estructura de los lenguajes son como sigue:

1. Lenguaje Mquina - Las invocaciones a memoria, como los procesos


aritmtico lgicos son posiciones literales de conmutadores fsicos del
hardware en su representacin booleana. Estos lenguajes son literales de
tareas.

2. Lenguajes de bajo nivel - Son instrucciones que ensamblan los grupos de


conmutadores necesarios para expresar una mnima lgica aritmtica.
Estn ntimamente vinculados al hardware. Por norma general estn
disponibles a nivel firmware, cmos o chip set. Estos lenguajes estn
orientados a procesos. Los procesos se componen de tareas. Contienen
tantas instrucciones como la arquitectura del hardware as haya sido
diseada.

Por ejemplo: La arquitectura CISC contiene muchas ms instrucciones a


este nivel, que la RISC.

Son denominados como ensambladores de un hardware concreto.

1. Lenguajes de medio nivel - Son aquellos que, basndose en los juegos


de instrucciones disponibles (chip set), permiten el uso de funciones a
nivel aritmtico, pero a nivel lgico dependen de literales en
ensamblador. Estos lenguajes estn orientados a procedimientos. Los
procedimientos se componen de procesos.

Ejemplos: C, Basic.

1. Lenguajes de alto nivel - Son aquellos que permiten una mxima


flexibilidad al programador a la hora de abstraerse o de ser literal.
Permiten un camino bidireccional entre el lenguaje mquina y una
expresin casi oral entre la escritura del programa y su posterior
compilacin. Estos lenguajes estn orientados a objetos. Los
objetos se componen de propiedades cuya naturaleza emerge de
procedimientos.

Ejemplos: C++, Fortran, Cobol, Lisp.


1. Lenguajes de aplicaciones - Son aquellos que no permiten una
bidireccionalidad conceptual entre el lenguaje mquina y los
lenguajes de alto nivel, ni tampoco la literalidad a la hora de
invocar conceptos lgicos. Se basan en libreras creadas en
lenguajes de alto nivel. Pueden permitir la creacin de nuevas
libreras, pero son propietarias y dependientes de las
suministradas por la aplicacin. Estos lenguajes estn
orientados a eventos. Los eventos acontecen cuando las
propiedades de un objeto interactan con otro.

Ejemplos: Visual Basic para aplicaciones.

1. Lenguajes de redes - Son aquellos que se basan en un


convenio de instrucciones totalmente independientes de la
mquina, y completamente dependientes de la red a la que
estn orientadas. Se dividen en descriptivos (HTML, XML,
VML), de cliente-Servidor (Java, PHP) y de script.

La palabra bajo no implica que el lenguaje sea inferior a un lenguaje de


alto nivel; se refiere a la reducida abstraccin entre el lenguaje y el
hardware. Por ejemplo, se utiliza este tipo de lenguajes para
programar controladores de dispositivos.

Lenguaje de programacin de propsito general

Los lenguajes de propsito general, son lenguajes que pueden ser usados para
varios propsitos, acceso a bases de datos, comunicacin entre computadoras,
comunicacin entre dispositivos, captura de datos, clculos matemticos, diseo
de imgenes o pginas, crear sistemas operativos, manejadores de bases de
datos, compiladores, entre muchas otras cosas.

En general, puede ser usado para cualquier desarrollo. Para ciertas tareas ms
comunes, existen libreras para facilitar la programacin que permiten la
reutilizacin de cdigo.

Se puede aplicar en la mayora de las actividades que desarrolla el hombre,


adems de ser muy eficientes en empresas de trabajo para un mayor desarrollo.
Lenguajes de Propsito Especfico

Esta clase de lenguajes [SM,2005] son diseados para trabajar sobre determinado
tipo de aspectos pero no pueden tratar con aquellos aspectos para los que no
fueron diseados. Normalmente tienen un nivel de abstraccin mayor que el del
lenguaje base e imponen restricciones en la utilizacin del lenguaje base para
evitar que los aspectos se programen en ambos lenguajes, lo que podra dar
lugar a conflictos. Estos lenguajes normalmente imponen restricciones en la
utilizacin del lenguaje base. Esto se hace para garantizar que los conceptos del
dominio del aspecto se programen utilizando el lenguaje diseado para este fin y
evitar as interferencias entre ambos. Se quiere evitar que los aspectos se
programen en ambos lenguajes lo cual podra conducir a un conflicto.

Algunos lenguajes orientados a aspectos de dominio especfico son:

AML: es una extensin de Matlab para procesamiento de matrices dispersas.

RG: que es un lenguaje para el procesamiento de imgenes.

COOL: es un lenguaje para sincronizacin de hilos concurrentes.

RIDL (Remote Interaction and Data transfers Language) es un lenguaje para


transferenciade datos remotos.

Lenguaje de programacin compilado

Un lenguaje compilado es una expresin un tanto imprecisa para referirse a


un lenguaje de programacin que se implementa mediante un compilador. Esto
implica que, una vez escrito el programa, ste se traduce a partir de su cdigo
fuente por medio de un compilador en un archivo ejecutable para una determinada
plataforma (por ejemploSolaris para Sparc, Windows NT para Intel, etc.).

Los lenguajes compilados son lenguajes de alto nivel en los que las instrucciones
se traducen del lenguaje utilizado a cdigo mquina para una ejecucin rpida.
Por el contrario un lenguaje interpretado es aquel en el que las instrucciones se
traducen o interpretan una a una siendo tpicamente unas 10 veces ms lentos
que los programas compilados.
Es tericamente posible escribir un compilador o un intrprete para cualquier
lenguaje, sin embargo en algunos lenguajes una u otra implementacin es ms
sencilla porque se disearon con una implementacin en particular en mente.

Algunos entornos de programacin incluyen los dos mecanismos, primero


el cdigo fuente se traduce a un cdigo intermedio que luego se interpreta en
una mquina virtual, pero que tambin puede compilarse justo antes de
ejecutarse. La mquina virtual y los compiladores Just in Time de Java son un
ejemplo de ello.

Algunos ejemplos tpicos de lenguajes compilados:

Fortran

La familia de lenguajes de C, incluyendo C++ y Objective C pero no Java.

Ada, Pascal (incluyendo su dialecto Delphi)

Algol

Lenguaje de programacin interpretado

Un lenguaje interpretado es un lenguaje de programacin que est diseado


para ser ejecutado por medio de un intrprete, en contraste con los lenguajes
compilados. Tericamente, cualquier lenguaje puede ser compilado o ser
interpretado, as que esta designacin es aplicada puramente debido a la prctica
de implementacin comn y no a alguna caracterstica subyacente de un lenguaje
en particular. Sin embargo, hay lenguajes que son diseados para ser
intrnsecamente interpretativos, por lo tanto uncompilador causar una carencia de
la eficacia. Muchos autores rechazan la clasificacin de lenguajes de
programacin entre interpretados y compilados, considerando que el modo de
ejecucin (por medio de intrprete o de compilador) del programa escrito en el
lenguaje es independiente del propio lenguaje. A ciertos lenguajes interpretados
tambin se les conoce como lenguajes de script.

Muchos lenguajes han sido implementados usando tanto compiladores como


intrpretes, incluyendo Lisp, Pascal, C, BASIC, y Python. Mientras que Java es
traducido a una forma que se destina a ser interpretada, la compilacin justo a
tiempo es frecuentemente usada para generar el cdigo de mquina. Los
lenguajes de Microsoft .NET compilan a una forma intermedia (CIL) la cual es
entonces a menudo compilada en cdigo de mquina nativo; sin embargo hay
una mquina virtual capaz de interpretar el CIL. Muchas implementaciones Lisp
pueden mezclar libremente cdigo interpretado y compilado. Estas
implementaciones tambin usan un compilador que puede traducir arbitrariamente
cdigo fuente en tiempo de ejecucin (runtime) a cdigo de mquina.

Ventajas de los lenguajes interpretados

Los lenguajes interpretados dan a los programas cierta flexibilidad adicional sobre
los lenguajes compilados. Algunas caractersticas que son ms fciles de
implementar en intrpretes que en compiladores incluyen, pero no se limitan, a:

Independencia de plataforma (por ejemplo el byte code de Java)

reflexin y uso reflexivo del evaluador (ej. una funcin eval de primer orden)

Generacin funcional de primer rden, y rden n sin necesidad de


especificar metadata.

Posibilidad de generacin de cdigo in-situ, sin necesidad de recurrir a una


compilacin (ie. Spring)

tipos Dinmicos

Facilidad en la depuracin (es ms fcil obtener informacin del cdigo


fuente en lenguajes interpretados)

Pequeo tamao del programa (puesto que los lenguajes interpretados


tienen flexibilidad para elegir el cdigo de instruccin)

mbito dinmico

gestin de memoria automtica

Desventajas de los lenguajes interpretados


La ejecucin del programa por medio de un intrprete es usualmente mucho
menos eficiente que la ejecucin de un programa compilado. No es eficiente en
tiempo porque, o cada instruccin debe pasar por una interpretacin en tiempo de
ejecucin, o como en ms recientes implementaciones, el cdigo tiene que ser
compilado a una representacin intermedia antes de cada ejecucin. La mquina
virtual es una solucin parcial al problema de la eficiencia del tiempo pues la
definicin del lenguaje intermedio es mucha ms cercana al lenguaje de
mquina y por lo tanto ms fcil de ser traducida en tiempo de ejecucin. Otra
desventaja es la necesidad de un intrprete en la mquina local para poder hacer
la ejecucin posible.

Lenguajes interpretados de uso comn

Los lenguajes que suelen ser interpretados ms famosos en la actualidad son (en
orden alfabtico):

ActionScript

ASP (hasta la versin 3)

Bash

Basic4GL (Basic para OpenGL. Permite generar ejecutables Windows


completos)

BeanShell (Java en lenguaje de Scripts)

COBOL (Compilador COBOL85)

Gambas (visual basic mejorado para gnu/linux)

Inform

IO (es un lenguaje reciente -2002-)

JavaScript (todas las plataformas)

Logo (Linux, Windows y Mac)


Lenguaje de programacin R

Lisp

Lua

Lush (Lisp para grficos Linux)

NWNScript (empleado en el videojuego Neverwinter Nights y Neverwinter


Nights 2)

Perl (todas las plataformas)

PHP

Pike (es el ms rpido de todos, al estar escrito en gran parte en cdigo


nativo)

Prolog

Python (todas las plataformas)

REXX y variantes como Object REXX (todas las plataformas, en


especial: OS/2 / AmigaOS)

Ruby

Tcl

VBScript (Microsoft Windows)

LENGUAJES DE PROGRAMACIN DECLARATIVOS


Se les conoce como lenguajes declarativos 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.

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".

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.

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.

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.

EJEMPLOS DE LENGUAJES DECLARATIVOS


Algunos lenguajes declarativos que se pueden mencionar son:
PROLOG

SQL
HTML

WSDL (Web Services Description Language)

XML Stylesheet Language for Transformation

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, Prolog, que es un clsico de la inteligencia artificial
y que se aplica de mltiples formas en el desarrollo de software comercial.

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 subexpresiones), 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.

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.

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.
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.

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.

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 conceptosmatemticos.
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 dBASE produjo una revolucin en los lenguajes de programacin y
sistemas de administracin de datos. Aunque nunca debe olvidarse que dBase no
utilizaba SQL como lenguaje base para su gestin. La normalizacin de una base
de datos relacional consiste en las siguientes reglas:

a. 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.

b. 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.

c. 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.
d. 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.

e. 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.

f. 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


deductivas, 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.

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, Dbase, 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.

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.
ALGUNOS LENGUAJES IMPERATIVOS
Algunos lenguajes de programacin imperativos que se pueden mencionar son:

BASIC

C++

Java

C#

PHP

Perl

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.
Programacin funcional

En ciencias de la computacin, la programacin funcional es un paradigma de


programacin declarativa basado en la utilizacin de funciones aritmticas que no
maneja datos mutables o de estado. Enfatiza la aplicacin de funciones, en
contraste con el estilo de programacin imperativa, que enfatiza los cambios de
estado. La programacin funcional tiene sus races en el clculo lambda, un
sistema formal desarrollado en los 1930s para investigar la definicin de funcin,
la aplicacin de las funciones y la recursin. Muchos lenguajes de programacin
funcionales pueden ser vistos como elaboraciones del clculo lambda.

En la prctica, la diferencia entre una funcin matemtica y la nocin de una


"funcin" utilizada en la programacin imperativa es que las funciones imperativas
pueden tener efectos secundarios, al cambiar el valor de clculos realizados
previamente. Por esta razn carecen de transparencia referencial, es decir, la
misma expresin sintctica puede resultar en valores diferentes en diferentes
momentos dependiendo del estado del programa siendo ejecutado.

Con cdigo funcional, en contraste, el valor generado por una funcin depende
exclusivamente de los argumentos alimentados a la funcin. Al eliminar los efectos
secundarios se puede entender y predecir el comportamiento de un programa
mucho ms fcilmente, y esta es una de las principales motivaciones para utilizar
la programacin funcional.

Los lenguajes de programacin funcional, especialmente los que son puramente


funcionales, han sido enfatizados en el ambiente acadmico principalmente y no
tanto en el desarrollo de software comercial. Sin embargo, lenguajes de
programacin importantes tales como Scheme, Erlang, Objective Caml y Haskel,
han sido utilizados en aplicaciones comerciales e industriales por muchas
organizaciones. La programacin funcional tambin es utilizada en la industria a
travs de lenguajes de dominio especfico como R (estadstica), Mathematica
(matemticas simblicas), J y K (anlisis financiero), F# en Microsoft.NET y XSLT
(XML). Lenguajes de uso especfico usados comnmente como SQL y Lex/Yacc,
utilizan algunos elementos de programacin funcional, especialmente al procesar
valores mutables. Las hojas de clculo tambin pueden ser consideradas
lenguajes de programacin funcional.

La programacin funcional tambin puede ser desarrollada en lenguajes que no


estn diseados especficamente para la programacin funcional. En el caso
de Perl, por ejemplo, que es un lenguaje de programacin imperativo, existe un
libro que describe como aplicar conceptos de programacin funcional. JavaScript,
uno de los lenguajes ms ampliamente utilizados en la actualidad, tambin
incorpora capacidades de programacin funcional.

Utilidad

El objetivo 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, y evitar el concepto de estado del cmputo. La
secuencia de computaciones llevadas a cabo por el programa se rige nica y
exclusivamente por lareescritura de definiciones ms amplias a otras cada vez
ms concretas y definidas, usando lo que se denominan "definiciones dirigidas".

Caractersticas

Los programas escritos en un lenguaje funcional estn constituidos nicamente


por definiciones de funciones, entendiendo stas no como subprogramas clsicos
de un lenguaje imperativo, 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
subexpresiones), y por tanto, la carencia total de efectos colaterales.
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 admitir 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 funcional hbrido.
Entre los lenguajes funcionales puros, cabe destacar a Haskell y Miranda. Los
lenguajes funcionales hbridos ms conocidos
son Scala, Lisp, Scheme, Ocaml, SAP y Standard ML (estos dos ltimos,
descendientes del lenguaje ML). Erlang es otro lenguaje funcional
de programacin concurrente. Mathematica permite la programacin en mltiples
estilos, pero promueve la programacin funcional. R tambin es un lenguaje
funcional dedicado a la estadstica. 2 Recientemente Microsoft Research est
trabajando en el lenguaje F# (Functional#).
Entre otros lenguajes que se podran utilizar para programacin funcional se
podran incluir a Perl, pues, aunque es un lenguaje de propsito muy general, se
pueden realizar programas usando exclusivamente funciones definidas por el
usuario; as como Python, como lenguaje que incorpora el paradigma funcional;
o Ruby.

Ventajas de usar un paradigma funcional

Entre las ventajas que suelen citarse de usar un paradigma funcional en la


programacin de computadoras, estn las siguientes: 1

Ausencia de efectos colaterales

Proceso de depuracin menos problemtico

Pruebas de unidades ms confiables

Mayor facilidad para la ejecucin concurrente

Programacin lgica

La programacin lgica es un tipo de paradigmas de programacin dentro del


paradigma de programacin declarativa. El resto de los subparadigmas de
programacin dentro de la programacin declarativa son: programacin
funcional, programacin con restricciones, programas DSL (de dominio especfico)
e hbridos. La programacin funcional se basa en el concepto de funcin (que no
es ms que una evolucin de los predicados), de corte ms matemtico. La
programacin lgica gira en torno al concepto depredicado, o relacin entre
elementos.

Motivacin

Histricamente, los ordenadores se han programado utilizando lenguajes muy


cercanos a las peculiaridades de la propia mquina: operaciones aritmticas
simples, instrucciones de acceso a memoria, etc. Un programa escrito de esta
manera puede ocultar totalmente su propsito a la comprensin de un ser
humano, incluso uno entrenado. Hoy da, estos lenguajes pertenecientes al
paradigma de la Programacin imperativa han evolucionado de manera que ya no
son tan crpticos.
En cambio, la lgica matemtica es la manera ms sencilla, para el intelecto
humano, de expresar formalmente problemas complejos y de resolverlos mediante
la aplicacin de reglas, hiptesis y teoremas. De ah que el concepto de
"programacin lgica" resulte atractivo en diversos campos donde la programacin
tradicional es un fracaso.

Campos de aplicacin

La programacin lgica encuentra su hbitat natural en aplicaciones de


inteligencia artificial o relacionadas: Sistemas expertos, donde un sistema de
informacin imita las recomendaciones de un experto sobre algn dominio de
conocimiento.

Demostracin automtica de teoremas, donde un programa genera nuevos


teoremas sobre una teora existente.

Reconocimiento de lenguaje natural, donde un programa es capaz de


comprender (con limitaciones) la informacin contenida en una expresin
lingstica humana.

Etc.
La programacin lgica tambin se utiliza en aplicaciones ms "mundanas" pero
de manera muy limitada, ya que la programacin tradicional es ms adecuada a
tareas de propsito general.

Fundamentos

La mayora de los lenguajes de programacin lgica se basan en la teora lgica


de primer orden, aunque tambin incorporan algunos comportamientos de orden
superior como la lgica difusa. En este sentido, destacan los lenguajes
funcionales, ya que se basan en el clculo lambda, que es la nica teora lgica de
orden superior que es demostradamente computable (hasta el momento).

En qu consiste (ejemplo)

La programacin lgica permite formalizar hechos del mundo real, por ejemplo:

las aves vuelan


los pinginos no vuelan
"pichurri" es un ave
"sandokan" es un perro
"alegra" es un ave

y tambin reglas o restricciones:

una mascota vuela si es un ave y no es un pingino

Ante dicho "programa" es posible establecer hiptesis que no son ms que


preguntas o incgnitas, por ejemplo:

"pichurri" vuela ?
qu mascotas vuelan ?....

Gracias a que la lgica de primer orden es computable, el ordenador ser capaz


de verificar la hiptesis, es decir, responder a las incgnitas:

Es cierto que "pichurri" vuela.


"pichurri" y "alegra" vuelan.
Obsrvese que el programa lgico no solamente es capaz de responder si una
determinada hiptesis es verdadera o falsa. Tambin es capaz de determinar que
valores de la incgnita hacen cierta la hiptesis.
Este ejemplo es claramente acadmico. Sin embargo, consideremos el siguiente
ejemplo: el sistema de control de semforos de una ciudad.
El estado de cada uno de los semforos (verde, rojo o mbar) constituye los
hechos del mundo real. El programa en s consiste en unas pocas reglas de
sentido comn: determinados semforos no pueden permanecer simultneamente
en verde, un semforo solamente puede transitar de verde a mbar y de mbar a
rojo, etc. La hiptesis es el estado en el que deberan estar cada uno de los
semforos en el siguiente instante de tiempo.
ste es un ejemplo imposible de resolver mediante programacin tradicional, ya
que la lgica subyacente al comportamiento de los semforos en su conjunto
queda enmascarada por simples rdenes imperativas del tipo "cambiar color de tal
o cual semforo".

Lenguajes

El lenguaje de programacin lgica por excelencia es Prolog, que cuenta con


diversas variantes. La ms importante es la programacin lgica con
restricciones (vase artculo sobre programacin con restricciones), que posibilita
la resolucin de ecuaciones lineales adems de la demostracin de hiptesis.

Lenguajes del lado servidor o cliente

El navegador es una especie de aplicacin capaz de interpretar las rdenes


recibidas en forma de cdigo HTML fundamentalmente y convertirlas en las
pginas que son el resultado de dicha orden.
Cuando nosotros pinchamos sobre un enlace hipertexto, en realidad lo que
pasa es que establecemos una peticin de un archivo HTML residente en el
servidor (un ordenador que se encuentra continuamente conectado a la red)
el cual es enviado e interpretado por nuestro navegador (el cliente).

As pues, podemos hablar de lenguajes de lado servidor que son aquellos


lenguajes que son reconocidos, ejecutados e interpretados por el propio
servidor y que se envan al cliente en un formato comprensible para l. Por
otro lado, los lenguajes de lado cliente (entre los cuales no slo se encuentra
el HTML sino tambin el Java y el JavaScript los cuales son simplemente
incluidos en el cdigo HTML) son aquellos que pueden ser directamente
"digeridos" por el navegador y no necesitan un pretratamiento.

Cada uno de estos tipos tiene por supuesto sus ventajas y sus
inconvenientes. As, por ejemplo, un lenguaje de lado cliente es totalmente
independiente del servidor, lo cual permite que la pgina pueda ser albergada
en cualquier sitio sin necesidad de pagar ms ya que, por regla general, los
servidores que aceptan pginas con scripts de lado servidor son en su
mayora de pago o sus prestaciones son muy limitadas. Inversamente, un
lenguaje de lado servidor es independiente del cliente por lo que es mucho
menos rgido respecto al cambio de un navegador a otro o respecto a las
versiones del mismo.

Lenguajes del lado cliente

HTML

El lenguaje llamado HTML indica al


navegador donde colocar cada texto, cada
imagen o cada video y la forma que
tendrn estos al ser colocados en la
pgina.

Elel lenguaje consta de etiquetas que


tienen esta forma <B> o <P>. Cada
etiqueta significa una cosa, por ejemplo
<B> significa que se escriba en negrita
(bold) o <P> significa un prrafo, <A> es
un enlace, etc. Casi todas las etiquetas
tienen su correspondiente etiqueta de
cierre, que indica que a partir de ese punto
no debe de afectar la etiqueta. Por ejemplo
</B> se utiliza para indicar que se deje de
escribir en negrita. As que el HTML no es
ms que una serie de etiquetas que se
utilizan para definir la forma o estilo que
queremos aplicar a nuestro documento.
<B>Esto est en negrita</B>.

Esta pgina es un claro ejemplo de uso del


HTML.

JAVASCRIPT

Javascript es un lenguaje de
programacin utilizado para crear
pequeos programitas encargados de
realizar acciones dentro del mbito de una
pgina web. Se trata de un lenguaje de
programacin del lado del cliente, porque
es el navegador el que soporta la carga de
procesamiento. Su uso se basa
fundamentalmente en la creacin de
efectos especiales en las pginas y la
definicin de interactividades con el
usuario.

Las sentencias escritas en javascript se


encapsulan entre las etiquetas <script> y
</script>. por ejemplo, si en el cdigo de
una pgina Web incluimos la sentencia

<script>
window.alert("Bienvenido a mi sitio web.
Gracias...")
</script>

al abrir la pgina con el navegador se nos

mostrar una ventana de bienvenida

APPLETS DE JAVA

Es otra manera de incluir cdigo a ejecutar


en los clientes que visualizan una pgina
web. Se trata de pequeos programas
hechos en Java, que se transfieren con las
pginas web y que el navegador ejecuta en
el espacio de la pgina.

Los applets de Java estn programados en


Java y precompilados, es por ello que la
manera de trabajar de stos vara un poco
con respecto a los lenguajes de script
como Javascript. Los applets son ms
difciles de programar que los scripts en
Javascript y requerirn unos
conocimientos bsicos o medios del
lenguaje Java.

La principal ventaja de utilizar applets


consiste en que son mucho menos
dependientes del navegador que los
scripts en Javascript, incluso
independientes del sistema operativo del
ordenador donde se ejecutan. Adems,
Java es ms potente que Javascript, por lo
que el nmero de aplicaciones de los
applets podr ser mayor.

Como desventajas en relacin con


Javascript cabe sealar que los applets
son ms lentos de procesar y que tienen
espacio muy delimitado en la pgina
donde se ejecutan, es decir, no se mezclan
con todos los componentes de la pgina ni
tienen acceso a ellos. Es por ello que con
los applets de Java no podremos hacer
directamente cosas como abrir ventanas
secundarias, controlar Frames,

formularios, capas, etc.

VISUAL BASIC SCRIPT


Es un lenguaje de programacin de scripts
del lado del cliente, pero slo compatible
con Internet Explorer. Es por ello que su
utilizacin est desaconsejada a favor de
Javascript.

Est basado en Visual Basic, un popular


lenguaje para crear aplicaciones Windows.
Tanto su sintaxis como la manera de
trabajar estn muy inspirados en l. Sin
embargo, no todo lo que se puede hacer
en Visual Basic lo podremos hacer en
Visual Basic Script, pues este ltimo es
una versin reducida del primero.

El modo de funcionamiento de Visual


Basic Script para construir efectos
especiales en pginas web es muy similar
al utilizado en Javascript y los recursos a
los que se puede acceder tambin son los
mismos: el navegador.

FLASH

Flash es una tecnologa, y un programa,


para crear efectos especiales en pginas
web. Con Flash tambin conseguimos
hacer pginas dinmicas del lado del
cliente. Flash en realidad no es un
lenguaje; Sin embargo, si tuvieramos que
catalogarlo en algn sitio quedara dentro
del mbito de las pginas dinmicas de
cliente.

Para visualizar las "pelculas" Flash,


nuestro navegador debe tener instalado un
programita (plug-in) que le permita
visualizarlas.

CSS

CSS, es una tecnologa que nos permite


crear pginas web de una manera ms
exacta. Gracias a las CSS somos mucho
ms dueos de los resultados finales de la
pgina, pudiendo hacer muchas cosas que
no se poda hacer utilizando solamente
HTML, como incluir mrgenes, tipos de
letra, fondos, colores... Incluso podemos
definir nuestros propios estilos en un
archivo externo a nuestras pginas; as, si
en algn momento queremos cambiar
alguno de ellos, automticamente se nos
actualizarn todas las pginas vinculadas
de nuestro sitio.

CSS son las siglas de Cascading Style


Sheets, en espaol Hojas de estilo en
Cascada.

Lenguajes del lado servidor

CGI

Es el sistema ms antiguo que existe para


la programacin de las pginas dinmicas
de servidor. Actualmente se encuentra un
poco desfasado por diversas razones
entre las que destaca la dificultad con la
que se desarrollan los programas y la
pesada carga que supone para el servidor
que los ejecuta.

Los CGI se escriben habitualmente en el


lenguaje Perl, sin embargo, otros
lenguajes como C, C++ o Visual Basic
pueden ser tambin empleados para
construirlos.

PERL

Perl es un lenguaje de programacin


interpretado, al igual que muchos otros
lenguajes de Internet como Javascript o
ASP. Esto quiere decir que el cdigo de los
scripts en Perl no se compila sino que
cada vez que se quiere ejecutar se lee el
cdigo y se pone en marcha interpretando
lo que hay escrito. Adems es extensible a
partir de otros lenguajes, ya que desde
Perl podremos hacer llamadas a
subprogramas escritos en otros lenguajes.
Tambin desde otros lenguajes podremos
ejecutar cdigo Perl.

ASP

ASP (Active Server Pages) es la tecnologa


desarrollada por Microsoft para la
creacin de pginas dinmicas del
servidor. ASP se escribe en la misma
pgina web, utilizando el lenguaje Visual
Basic Script o Jscript (Javascript de
Microsoft).
PHP

PHP es el acrnimo de Hipertext


Preprocesor. Es un lenguaje de
programacin del lado del servidor
gratuito e independiente de plataforma,
rpido, con una gran librera de funciones
y mucha documentacin.

JSP

JSP es un acrnimo de Java Server Pages,


que en castellano vendra a decir algo
como Pginas de Servidor Java. Es, pues,
una tecnologa orientada a crear pginas
web con programacin en Java.

Con JSP podemos crear aplicaciones web


que se ejecuten en variados servidores
web, de mltiples plataformas, ya que Java
es en esencia un lenguaje multiplataforma.
Por tanto, las JSP podremos escribirlas
con nuestro editor HTML/XML habitual.

Lenguajes del lado cliente-servidor

DHTML

DHTML no es precisamente un lenguaje de


programacin. Ms bien se trata de una
nueva capacidad de la que disponen los
navegadores modernos, por la cual se
puede tener un mayor control sobre la
pgina que antes.

Cualquier pgina que responde a las


actividades del usuario y realiza efectos y
funcionalidades se puede englobar dentro
del DHTML, pero en este caso nos
referimos ms a efectos en el navegador
por los cuales se pueden mostrar y ocultar
elementos de la pgina, se puede
modificar su posicin, dimensiones, color,
etc.

DHTML nos da ms control sobre la


pgina, gracias a que los navegadores
modernos incluyen una nueva estructura
para visualizar en pginas web
denominada capa. Las capas se pueden
ocultar, mostrar, desplazar, etc.

Para realizar las acciones sobre la pgina,


como modificar la apariencia de una capa,
seguimos necesitando un lenguaje de
programacin del lado del cliente como
Javascript o VBScript.

En la actualidad, DHTML tambin puede


englobar la programacin en el servidor.

Dentro del concepto de DHTML se


engloban tambin las Hojas de Estilo en
Cascada o CSS (Cascade Style Sheets),
que veremos a continuacin.

XML

XML es una tecnologa en realidad muy


sencilla que tiene a su alrededor otras
tecnologas que la complementan y la
hacen mucho ms grande y con unas
posibilidades mucho mayores.

XML, con todas las tecnologas


relacionadas, representa una manera
distinta de hacer las cosas, ms avanzada,
cuya principal novedad consiste en
permitir compartir los datos con los que
se trabaja a todos los niveles, por todas
las aplicaciones y soportes.

LENGUAJES DE PROGRAMACIN ORIENTADO A EVENTOS

Los lenguajes de programacin orientado a eventos estn especialmente


indicados para aquellos que no tienen muchos conocimientos de los lenguajes de
programacin. Con este tipo de lenguaje de programacin se consiguen en muy
poco tiempo realizar sus propios programas utilizando interfaces grficas gracias
el efecto que producen una serie de eventos. Estos eventos ofrecen al usuario la
posibilidad de realizar una serie de acciones encaminadas a crear un determinado
programa.

Para poder logar este proceso es preciso que acten dos herramientas
conjuntamente. Una sera la herramienta que permite llevar a cabo el entorno
grafico en el que se desarrolla este proceso de programacin. Y la otra, un
lenguaje de programacin de alto nivel que nos ayuda a codificar todos estos
eventos. Con estas dos aplicaciones podemos desarrollar cualquier tipo de
aplicacin o programa que necesitemos.
Dentro de los lenguajes de programacin orientado a eventos tenemos que
mencionar al Visual Basic. Este lenguaje de programacin es uno de los que ms
adeptos tienen dentro de la programacin. Este lenguaje nos permite crear en muy
poco tiempo aplicaciones relativamente complejas. Es un lenguaje de cuarta
generacin, esto significa que una mayora de las tareas que realizamos con el se
consiguen sin escribircdigo. Lo logramos simplemente con operaciones grficas
que hacemos con el ratn sobre la pantalla de nuestra computadora.

Con los lenguajes de programacin orientado a eventos podemos crear programas


que una vez en funcionamiento se quedan a la espera de determinadas acciones
del usuario del programa, esto es lo que se conoce con el nombre de eventos.

Programacin textual o indirecta

En este caso no es necesaria la presencia del robot para realizar el programa,


puesto que este se lleva a cabo en un lenguaje informtico. El programa consiste
en un texto formado por un conjunto de instrucciones; cuando el programa sea
grabado en la memoria del robot, este realizar las acciones indicadas en el
mismo.

Este tipo de programacin permite realizar operaciones ms complejas y con


mayor grado de precisin. Adems, presenta la ventaja de que es posible
establecer relaciones entre el robot y su entorno. Para ello basta con introducir en
el programa los datos procedentes de los sensores de forma que el robot acte en
consonancia con los mismos, tal y como ocurre en los denominados robots
inteligentes.

A su vez, la programacin textual puede ser de dos tipos: explcita y especificativa.

La programacin textual explcita se corresponde con los llamados


lenguajes estructurados. Consiste en programar de forma secuenciada y
estructurada el conjunto de acciones que debe realizar el robot para llevar a cabo
la tarea encomendada. En dichas instrucciones pueden introducirse tambin
las caractersticas del medio.
La programacin textual especificativa est ms en consonancia con los
lenguajes de programacin orientados a objetos. En este caso, el programa gira
en torno a los elementos manipulados por el robot y las acciones que ha de
realizar con ellos, teniendo en cuenta el mbito en el que se desarrollan dichas
acciones.
Lenguaje de programacin esotrico

Un lenguaje de programacin esotrico o extico es un lenguaje de


programacin minimalista, cuya utilidad para la programacin de proyectos de
gran tamao es dudosa normalmente debido a su naturaleza ofuscada u otra
caracterstica que no es comn en otros lenguajes. Adems normalmente se usan
como prueba de concepto en la creacin de lenguajes de programacin Turing
completos.

En general estos lenguajes poseen una sintaxis muy bsica, con un alfabeto muy
restringido, lo que los hace especialmente peculiares en su implementacin. En su
creacin muchas veces ha primado la diversin por parte de los desarrolladores,
sobre la utilidad. Sin embargo, al mismo tiempo se trata de lenguajes que
funcionan como un desafo tanto para quienes los crean, como para aquellos que
intentan programar con ellos.

Ejemplos

Un lenguaje ejemplar de este tipo es P, creado por el informtico


terico italiano Corrado Bhm en 1964, y que se constituye como el primer
lenguaje imperativo de la programacin estructurada cuya pertenencia a la clase
de los Turing completos pudo ser demostrada sin necesidad del uso de la
instruccin GOTO.

INTERCAL, diseado para ser extremadamente difcil de entender.

Befunge, difiere de los lenguajes convencionales en que los programas


estn dispuestos en una parrilla bidimensional.

Whitespace, cuyas palabras clave consiste nicamente en espacios en


blanco, tabulador y lneas nuevas.

Brainfuck, su objetivo es hacer un lenguaje que fuera a la vez muy


simple, Turing completo y que requiriese un compilador pequeo.

Malbolge, se dise para ser el lenguaje ms difcil.


HQ9+, que consiste en slo cuatro instrucciones, cada una de un solo
carcter: H, Q, 9, y +

Unlambda, fue diseado para hacer la programacin difcil y sufrida.

Ook!, es una parodia de Brainfuck, el lenguaje est diseado


para orangutanes.

Oz' es un lenguaje de programacin multi-paradigma.

LOLCODE, cuyas palabras clave son abreviaturas bien comprimidas del


lenguaje utilizado por las imgenes de los Lolcat

Piet, cuyos programas son mapas de bits que se ven como arte abstracto.

También podría gustarte