Está en la página 1de 22

Autor: Luis Heladio Garzn Rodrguez

UNIDAD I

INTRODUCCIN A LOS PRADIGMAS DE PROGRAMACIN


OBJETIVO GENERAL
Propender porque el estudiante se apropie del conocimiento de conceptos sobre
programacin y los paradigmas de programacin, fundamentales en su formacin
como ingeniero.

OBJETIVOS ESPECIFICOS

Comprender los conceptos fundamentales de la programacin y su importancia.


Conocer sobre los lenguajes de programacin la evolucin histrica, clasificacin, y
sus diferencias.
Conocer los atributos de un buen lenguaje de programacin.
Comprender los modelos bsicos de los paradigmas de programacin.
Diferenciar los paradigmas de programacin y su importancia.
Profundizar mediante la investigacin de los conceptos aqu tratados de parte del
estudiante.

CONCEPTOS FUNDAMENTALES DE PROGRAMACIN


Es necesario conocer conceptos sobre programacin para consolidar fundamentos, que
permitan comprender para desempearse con xito en el mbito de la programacin
de computadores, como parte del proceso de aprendizaje, para asimilar y
familiarizarse con palabras y conceptos que sern parte del bagaje de conocimientos
necesarios en esta disciplina.
1. CONCEPTOS BASICOS
Datos
Informacin
Programa
Lenguaje de programacin
Interpretador
Compilador
Software
Procesamiento de datos
1.1 DATOS
Los datos son la materia prima de la informacin. Los son atributos o caractersticas
relacionadas con un individuo, objeto o suceso.
Son ejemplos de datos: nombre, descripcin, fecha de nacimiento, estatura, cantidad
de horas laboradas, peso etc.

Autor: Luis Heladio Garzn Rodrguez

Es necesario clasificar los datos que se va a utilizar en un programa, con el fin de


optimizar la utilizacin de la memoria del computador. Para ello es necesario tener en
cuenta criterios como:
a. Utilizacin: Identificar claramente que papel desempeara el dato dentro del
programa. Analizar si realizara alguna operacin aritmtica con el.
b. Contenido: Analizar que valores posibles puede almacenar el dato.
c. Tamao: Para todos los datos es necesario tener en cuenta el nmero de bytes
que puede ocupar. Esto implica tener en cuenta el rango de valores que puede
aceptar de acuerdo a la clasificacin que se elija. Esto puede variar de acuerdo
al lenguaje de programacin utilizado. Esta practica es muy importante porque
ayuda en el propsito de administrar adecuadamente la memoria principal del
computador.
Los datos en su forma bsica o simple se clasifican en:
Numricos
Carcter
Lgicos
Datos Numricos
Dato numrico es aquel cuyo valor y contenido esta compuesto por dgitos numricos.
Un dato numrico puede participar en operaciones aritmticas.
Pero los datos numricos se clasifican a su vez en:
http://msdn.microsoft.com/es-es/library/ae55hdtk(VS.80).aspx
http://www.aulaclic.es/access2002/b_3_2_2.htm
Enteros
Reales
Se puede encontrar otras clasificaciones en los datos numricos, dependiendo del
lenguaje de programacin
Otros sitios de inters

http://www.tecn.upf.edu/~vlopez/docencia/castellano/todoshtml/PIt4cas/node9.html
http://www.tecn.upf.edu/~vlopez/docencia/castellano/todoshtml/PIt4cas/node14.html
Datos Carcter o cadena
Se considera que es de este tipo de dato a los datos cuyo valor esta compuesto por
caracteres, que pueden formar una cadena que contenga uno o mas. Tambin se
conocen con el nombre de datos alfanumricos, por que su valor contiene una
combinacin de letras, nmeros y/o smbolos especiales.
Aunque se puede realizar operaciones aritmticas entre cadenas, su resultado no ser
el esperado de acuerdo al operador escogido. Por ejemplo sean las cadenas dato_1 y
dato_2, se desea realizar una suma de sus contenidos y almacenarlo en dato_3.
1. Supongamos que se asigna valores a los datos: dato_1 = 145
862

y dato_2 =

Autor: Luis Heladio Garzn Rodrguez

2. Ahora si se propone la instruccin suma asignando a dato_3 el resultado:


dato_3 = dato_1 + dato_2
3. Lo que realmente se obtiene como valor almacenado en dato_3 no es la suma
de 145 mas 862, sino la cadena 145862, lo que en programacin se conoce
como concatenar cadenas de caracteres.
Profundice mas al respecto.
Datos Estructurados
Este pertenece al tipo de datos definidos por el usuario. En el que se permite
configurar una combinacin de datos de diferente tipo, que no esta predefinido en el
lenguaje de programacin.

En el paradigma de programacin estructurada se les nombraba como registros. En el


paradigma de programacin orientada a objetos, se conocen como objetos.
Es importante profundizar mas sobre este tipo de dato y sus variantes de acuerdo al
paradigma de programacin y el lenguaje de programacin.
1.2 INFORMACIN
Es el resultado que se obtiene del tratamiento de datos a travs de procedimientos
manuales o automatizados mediante aplicativos de software, que ofrecen solucin a
necesidades o solicitudes especificas, que permitan el entendimiento de alguna
situacin o sirvan para la toma de decisiones.
En este link encontrar mas sobre la definicin de informacin
http://es.wikipedia.org/wiki/Informaci%C3%B3n
Es necesario e importante que investigue mas definiciones al respecto
1.3 PROGRAMA
Un programa es un conjunto de instrucciones, rdenes u operaciones, escritas en un
lenguaje de programacin ordenadas lgica y secuencialmente, elaborada o diseado
por una persona para dar solucin a una necesidad o problema especifico, con el fin
producir resultados o informacin, que el ordenador es capaz de entender y realizar en
el orden correcto. El programa debe ser de fcil utilizacin.
Los programas se pueden escribir o codificar en diferentes lenguajes de programacin.
1.4 LENGUAJE DE PROGRAMACIN
Los programas que ejecutan los ordenadores tienen que escribirse siguiendo unas
normas determinadas de manera que el ordenador entienda de qu instrucciones
consta y de qu manera tiene que ejecutarlas. Este conjunto de normas se denomina
lenguaje de programacin. De la misma manera que las personas se comunican entre
ellas mediante un lenguaje, los lenguajes de programacin permiten la comunicacin
entre las personas y los ordenadores, y tambin entre ordenadores.

Autor: Luis Heladio Garzn Rodrguez

Existe una multitud de lenguajes diferentes, cada uno pensado y adaptado a una
necesidad especfica. Los hay desde los ms prximos al funcionamiento fsico del
ordenador, los lenguajes de bajo nivel, hasta los que intentan reproducir modelos de la
realidad, con diferentes grados de abstraccin, y sin tener en cuenta el hardware que
pueda haber, los lenguajes de alto nivel.
1.4.1 Lenguajes de bajo nivel
1.4.1.1

Lenguaje mquina

El lenguaje mquina consiste en el conjunto de instrucciones que un determinado


procesador es capaz de entender y ejecutar. Cada procesador tiene su propio lenguaje
mquina y son notables las diferencias entre los distintos modelos de procesadores.
Las instrucciones se refieren a movimientos de datos entre las distintas partes de la
CPU del ordenador: la memoria, los registros, canales de entrada/salida, etc. y es
necesario especificar las direcciones concretas y el nmero de bytes que hay que
operar. Es decir, especifican exactamente qu tiene que hacer el ordenador, pero es
enormemente complicado y difcil de utilizar. Es el nico lenguaje que entiende
realmente el ordenador, de manera que cualquier otro tiene que traducirse a lenguaje
mquina.
1.4.1.2

Lenguaje ensamblador

El lenguaje ensamblador puede considerarse de bajo nivel porque est orientado al


lenguaje mquina. Sus instrucciones son muy similares a las del lenguaje mquina,
pero, en vez de cdigos y nmeros en binario, utiliza smbolos mnemotcnicos y cifras
decimales. De esta manera, el significado de cada instruccin es ms evidente y, por lo
tanto, ms fcil de recordar y utilizar que la sucesin de ceros y unos del lenguaje
mquina. Cada modelo de ordenador tiene su propio lenguaje ensamblador. Una
herramienta denominada ensamblador convierte los cdigos de lenguaje ensamblador
en un programa binario en un proceso bastante sencillo denominado ensamblaje.
1.4.2 Lenguajes de alto nivel
Los lenguajes de alto nivel estn ms orientados al problema que tienen que resolver
que a la mquina. Por esta razn, son independientes del ordenador y, por lo tanto,
pueden ser utilizados en cualquier tipo de mquina.
Un programa escrito en un lenguaje de alto nivel, programa fuente, debe traducirse al
lenguaje mquina del ordenador que tiene que ejecutarlo. Existen dos maneras
diferentes de realizar esta traduccin:

Interpretacin que se lleva a trmino con un intrprete del lenguaje en


cuestin. Este programa lee cada instruccin del programa fuente, la traduce a
cdigo mquina y hace que la ejecute el ordenador de manera inmediata. Es un
proceso relativamente lento y, por tanto, se utiliza para aplicaciones pequeas
y que no requieren gran velocidad. Algunos lenguajes interpretados conocidos
son BASIC con sus variantes, lenguajes de procesamiento de comandos de los
sistemas operativos o lenguajes de acceso a bases de datos como SQL.

Autor: Luis Heladio Garzn Rodrguez

SQL

SQL (Structured Query Language) es un lenguaje no estrictamente de


programacin. Se trata de un lenguaje para interrogar y procesar informacin en
una base de datos relacional.
Fue desarrollado por IBM para las bases de datos de sus mainframes.
Los mandos SQL se pueden utilizar para trabajar interactivamente con una base
de datos o para insertarlos en un lenguaje de programacin, para hacer de
interfaz con una base de datos.
Algunos de los sistemas de gestin de bases de datos que utilizan SQL son DB2,
SQL/DS, Oracle, Sybase, SQLbase, INFORMIX e Ingres.
El siguiente ejemplo de SQL selecciona clientes con un lmite de crdito de, por lo
menos, 100.000 u.m. y los ordena de ms a menos crdito:
SELECT NOMBRE, CIUDAD, CODIGOPOSTAL
FROM CLIENTE
WHERE LIMITECREDITO >= 100000
ORDER BY LIMITECREDITO DESC

Compilacin. Un programa denominado compilador traduce todo el


programa fuente a cdigo mquina, con el que se obtiene el programa
objeto, que puede ejecutarse tantas veces como sea necesario sin tener que
traducir cada vez. El proceso de compilacin es tedioso y lento y se debe
renovar cada vez que se hace un cambio en el programa fuente, pero, a
cambio, el programa objeto se ejecuta a la velocidad ms alta posible. Es la
opcin adecuada para aplicaciones complejas.
Los lenguajes ms utilizados caen dentro de esta categora, por ejemplo
FORTRAN, COBOL, IMS, Pascal, C y C++.

FORTRAN
El lenguaje FORTRAN (Formula Translation) data de los aos cincuenta y todava
se utiliza en determinados mbitos.
Su punto fuerte es el clculo matemtico, especialmente con coma flotante, es
decir, la computacin con nmeros reales, de gran precisin. En cambio, no
dispone de construcciones por programacin modular ni de estructuras de control
avanzadas.
A lo largo de los aos se ha estandarizado varias veces, y las versiones ms
conocidas son FORTRAN I, FORTRAN II, FORTRAN IV, FORTRAN 77 y,
actualmente, FORTRAN 90.
Ha sido el lenguaje ms utilizado para clculos cientficos complejos, modelos de
ingeniera, estadstica y procesamiento de seal. Tambin es muy adaptable a

Autor: Luis Heladio Garzn Rodrguez

hardware especializado, como por ejemplo superordenadores y ordenadores


paralelos.
Un ejemplo de clculo matemtico con FORTRAN:
PROGRAM Rad
! Simple FORTRAN program
REAL P,R,C
IF (.NOT. (R = 0.0)) THEN
P = 3.1415926
R = 2.5
C=P*R
PRINT *, "C = ", C
END IF
END
COBOL

COBOL (Common Business-Oriented Language) es un lenguaje orientado a la


resolucin de las necesidades de bancos y otras entidades financieras,
administraciones, fbricas o cualquier gran organizacin que tenga que gestionar
un volumen de datos importante.
COBOL tiene una sintaxis recargada que intenta parecerse al lenguaje ingls. Uno
de sus puntos fuertes es la generacin de informes, ya que permite especificar
una gran variedad de formatos de salida.
Un programa en COBOL consta de cuatro divisiones:

Identificacin: permite identificar el programa, su objetivo, el autor y otros


datos similares.
Entorno: enumera los recursos fsicos que el programa puede necesitar para
facilitar, as, la portabilidad entre ordenadores.
Datos: declara los datos del programa.
Procedimientos: indica cmo se tienen que procesar los datos.

COBOL se defini en 1960 y ha tenido varias revisiones. La ms actual incluye


caractersticas de orientacin a objetos y estructuras de control sofisticadas en un
intento de modernizar el lenguaje y no perder toda la inversin en software
realizada, ya que se calcula que es el lenguaje con que se han programado ms
lneas de cdigo.
Los programas en COBOL acostumbran a ser bastante largos y sobrecargados, ya
que cualquier pequeo procedimiento requiere muchas lneas. A continuacin se
presenta un ejemplo simplificado para calcular comisiones de vendedores:
IDENTIFICATION DIVISION.
PROGRAM-ID. COMISION-VENDEDOR.
AUTHOR. DEPT-INFO.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.

Autor: Luis Heladio Garzn Rodrguez

SELECT FICHERO-VENDEDORES ASSIGN TO DISK


ACCESS MODE IS RANDOM ORGANIZATION IS RELATIVE
RELATIVE KEY IS NUMERO.
SELECT FICHERO-VENTAS ASSIGN TO TAPE RESERVE NO AREAS
ACCESS MODE IS SEQUENTIAL ORGANIZATION IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD FICHERO-VENDEDORES LABEL RECORD IS STANDARD
RECORDING MODE IS V
RECORD CONTAINS 30 TO 60 CHARACTERS
DATA RECORD IS VENDEDORES.
01 VENDEDORES
02 NOMBRE PICTURE X(50).
02 NUMERO PICTURE 9(10).
FD FICHERO-VENTAS LABEL RECORD IS STANDARD
RECORDING MODE IS F
RECORD CONTAINS 8
DATA RECORD IS VENTA.
01 VENTA PICTURE 9(8).
WORKING STORAGE SECTION.
77 PCT PICTURE 9(6).
77 TOTAL PICTURE 9(6).
PROCEDURE DIVISION.
INICIO.
OPEN INPUT FICHERO-VENDEDORES INPUT FICHERO-VENTAS.
CLAVE.
ADD 1 TO NUMERO.
LECTURA.
READ FICHERO-VENDEDORES INVALID KEY GO TO FINAL-PROG.
READ FICHERO-VENTAS AT END GO TO FINAL-PROG.
CALCUL.
DIVIDE VENTA INTO 100 GIVING PCT.
MULTIPLY PCT BY 40 GIVING TOTAL.
RESULTADO.
DISPLAY NUMERO UPON PRINTER.
DISPLAY TOTAL UPON PRINTER.
GOTO CLAVE.
FINAL-PROG.
CLOSE FICHERO-VENDEDORES AND FICHERO-VENTAS.
STOP RUN.
IMS

El sistema IMS (Information Management System) se utiliza para consultar bases


de datos; tuvo una gran expansin en los aos setenta. Se trata de un producto
de IBM para las bases de datos de mainframes sobre el sistema MVS.
IMS/DB (IMS/Data Base) es la base de datos que funciona en un entorno de
proceso por lotes.

Autor: Luis Heladio Garzn Rodrguez

IMS/DC (IMS/Data Communications) es un programa necesario cuando se utiliza


interactivamente, y tambin permite acceder a bases de datos DB2.
PASCAL

Pascal es un lenguaje diseado inicialmente para ensear a programar. Como tal


lenguaje educativo, presenta una estructura perfectamente acadmica de la
programacin estructurada. Requiere una programacin detallada: todos los
tipos, datos y subrutinas se tienen que declarar antes de utilizarlos. Est
fuertemente estructurado en bloques, y cada uno de los cuales permite declarar
datos y funciones y tambin otros bloques de nivel inferior. As se pueden
estructurar los datos y los procedimientos en tantos niveles como resulte
necesario.
Es un lenguaje apropiado para aplicaciones genricas, aunque en muchas reas
se ha sustituido por lenguajes orientados a objetos como C++ y Java.
C
C es, probablemente, uno de los lenguajes ms utilizados actualmente. Es un
lenguaje estructurado, pero tambin permite una programacin de bajo nivel, lo
cual lo hace adecuado para sistemas operativos (como Unix) y como software de
control de perifricos, aunque se utiliza en todo un tipo de aplicaciones, incluso
en las de ms alto nivel, como por ejemplo, libreras grficas.
C permite escribir rpidamente un cdigo muy optimizado y ms portable que en
ensamblador.
El lenguaje C dispone de un conjunto completo de operadores aritmticos,
estructuras de datos sencillas, subrutinas, estructuras de control convencionales,
punteros en memoria, un potente procesador de macros y un amplio conjunto de
libreras. Tiene un primer nivel de modularizacin, de manera que los datos
pueden tener un mbito global o local en la funcin donde se han definido.
Tambin es un lenguaje fuertemente tipificado, es decir, que requiere declarar
todos los datos con su tipo.
Las distintas versiones de C se estandarizaron en 1990 en el denominado ANSI-C.
Ejemplo de programa que cuenta el nmero de caracteres de un texto y escribe
el resultado por pantalla:
#include <stdio.h>
main(int argc, char *argv[])
{
int cmp;
for( cmp = 0; argv[0][cmp]!=0; cmp++ );
printf("%d caracteres\n", cmp);
}
C++

Autor: Luis Heladio Garzn Rodrguez

C++ es la evolucin a orientacin a objetos del lenguaje C. Tiene una sintaxis


muy parecida a la de C, con varias extensiones para soportar clases, herencia y
otras caractersticas de orientacin a objetos.
C++ evolucion rpidamente para convertirse en un lenguaje independiente;
actualmente es muy popular para el desarrollo de aplicaciones.
C++ ofrece muchas de las estructuras de programacin orientada a objetos:
herencia mltiple, tipificacin estricta, memoria dinmica, patrones genricos,
polimorfismo, control de excepciones y sobrecarga de operadores.
Como derivado de C, dispone de todas sus propiedades, pero tambin ha
heredado sus defectos, como por ejemplo, los punteros en memoria.
C++ es uno de los lenguajes orientados a objetos ms utilizados y de los ms
perfeccionados. A pesar de esto, no tiene algunas de las caractersticas que se
consideran imprescindibles en un lenguaje orientado a objetos de ltima
generacin (concurrencia, persistencia y garbage collection), aunque sus
compiladores pueden generar programas muy compactos y que se ejecutan con
mucha eficiencia.
Como todos los lenguajes de programacin orientada a objetos, su estructura
principal es la que define una clase, es decir, el tipo de un objeto.
A continuacin se presenta un ejemplo de clase:

class cercle: public forma


{
int radi;// datos de la clase
float area()// mtodos de la clase
{ ... }
}
Y un sencillo programa que escribe un mensaje de saludo por pantalla:
#include <iostream.h>
#include <String.h>
main(int argc, char *argv[])
{
String *s;
s = new String("Hola!");
cout << *s << endl;
cout << "Longitud del texto:" << s->length() << endl;
}
ltimamente han aparecido algunos lenguajes que se alejan de este modelo en
diferentes sentidos. Todos ellos se utilizan en la programacin en entornos
relacionados con Internet, que presentan caractersticas especiales.

Autor: Luis Heladio Garzn Rodrguez

El lenguaje Java, por ejemplo, tiene un modo de traduccin a lenguaje mquina


mixto. En una primera fase se compila en un cdigo mquina universal que
posteriormente es interpretado y ejecutado por un programa especfico. Este
programa puede utilizarse desde cualquier navegador de Internet, y permite
distribuir programas objetos por red que pueden ejecutarse en cualquier
ordenador.
Java
Java es un lenguaje desarrollado por Sun orientado a objetos con una sintaxis
parecida a la de C++.
Tiene un conjunto de prestaciones bastante amplio: herencia, tipificacin de
datos estricta, modularidad, control de excepciones, polimorfismo, concurrencia,
carga dinmica de libreras, garbage collection y una amplia coleccin de libreras
estndar. En cambio, no incluye algunas caractersticas que podran comprometer
su simplicidad y seguridad, como punteros, herencia mltiple, sobrecarga de
operadores o un preprocesador de macros.
Como lenguaje orientado a objetos, su estructura fundamental es la clase, que se
lleva hasta las ltimas consecuencias: en Java no puede haber datos o funciones
globales, todas deben estar asociadas a una clase. Las clases se pueden agrupar
en paquetes que facilitan mucho la portabilidad de sus aplicaciones. Todos los
paquetes estn organizados en una estructura jerrquica que evita la aparicin de
distintas variantes para la misma funcionalidad.
Java se compila en un cdigo independiente de la plataforma, bytecode, que
posteriormente es interpretado por una aplicacin, la "mquina virtual de Java".
Hay una definicin formal del bytecode que asegura la portabilidad.
Java, adems de resultar adecuado para programar aplicaciones normales,
permite desarrollar programas hospedados en servidores web. Estos programas
se llaman applets. Tienen la capacidad de ser distribuidos por la red en forma de
bytecode y poderse ejecutar en cualquier plataforma. Presentan varias
restricciones para evitar problemas de seguridad.
El mayor inconveniente de Java es que tiene un rendimiento bajo, ya que, al
tener que ser interpretado por la mquina virtual, su velocidad de ejecucin es
lenta.
A continuacin, se presenta un ejemplo de applet escrito en Java:
import java.applet.*;
import java.awt.*;
public class AppletHola extends Applet
{
// Este mtodo visualiza el mensaje
public void paint(Graphis g)
{

g.drawString("Hola!",25,50);

Autor: Luis Heladio Garzn Rodrguez

}
Para poder visualizar este applet en un servidor, hay que incluirlo en una pgina
web utilizando HTML.
Otro tipo de lenguajes es el grupo formado por HTML, XML, ASP, etc. Algunos, como
HTML y XML, no son tanto lenguajes para programar como para dar formado a
documentos para ser visualizados en un navegador. Con el tiempo, han desarrollado
mecanismos para integrar en el propio documento pequeos programas con lenguajes
como Java y similares. Por otra parte, ASP es un lenguaje enfocado a generar
documentos en HTML de manera automtica.
HTML
HTML (HyperText Markup Language) no es exactamente un lenguaje de
programacin, es un lenguaje para dar formato a documentos web.
Las pginas web se escriben con etiquetas de HTML insertadas en el texto. Estas
etiquetas definen prrafos, tipos de letras y elementos grficos, as como enlaces
a otras pginas web. Por otro lado, permite incluir pequeos programas en forma
de applets escritos con lenguajes de programacin, como Java o JavaScript. Estos
programas aaden animaciones y objetos mviles a las pginas web y les dan un
aspecto muy dinmico.
HTML es una derivacin simplificada de SGML (Standard Generalized Markup
Language) que se utiliza en la publicacin de documentos. Un subconjunto de
SGML, conocido como XML, permite ampliar HTML con etiquetas definidas por el
programador. Se espera que sea el nuevo estndar para documentos de web.
A continuacin, se muestra una pgina web para visualizar el applet que se ha
puesto como ejemplo en JAVA:
<HTML><HEAD>
<TITLE> El applet Hola </TITLE>
</HEAD>
<BODY>
<APPLET code="AppletHola" width=150 height=100>
</APPLET>
</BODY></HTML>
El mecanismo CGI script (Common Gateway Interface script) consiste en pequeos
programas escritos en lenguajes denominados de scripting como Perl o Tcl, pero
tambin en C o C++, con la funcin de hacer de puente entre pginas web y otros
programas del servidor web.
Sirve, por ejemplo, para que los datos entrados en una pgina web se puedan enviar
al servidor remoto y hacer una bsqueda en una base de datos y, a continuacin,
enviar los resultados de nuevo hacia el usuario.
El programa CGI, que se denomina script, reside en el servidor.

Autor: Luis Heladio Garzn Rodrguez


Los CGI scripts han sido el primer mecanismo que ha permitido a las pginas web
interactuar con bases de datos u otras aplicaciones. Sin embargo, a medida que
Internet ha evolucionado, se han desarrollado otras herramientas para hacer ms
eficiente este procedimiento. Un ejemplo es el lenguaje ASP (Active Server Pages) de
Microsoft.
ASP consiste en un programa que el servidor puede ejecutar para generar pginas
HTML que se envan al cliente. Puesto que el programa ASP se ejecuta cada vez que el
cliente pide la pgina, sta puede incluir informacin dinmica y actualizada.
Hay otro gnero de lenguajes que se alejan del esquema que entiende un programa
como una secuencia de instrucciones. Normalmente, son lenguajes interpretados con
la particularidad de que el proceso de interpretacin es el responsable de aplicar el
modelo en que se basa el lenguaje. Los ms conocidos son Prolog y Lisp.

Prolog modela el problema como un conjunto de reglas y restricciones, de cuya


aplicacin sale la solucin.
Lisp se basa nicamente en el concepto de funciones como una operacin que
hay que realizar sobre unos operandos (o argumentos) y que da un resultado,
que a su vez puede utilizarse como un argumento para otra funcin.

Ambos lenguajes se utilizan para investigacin y desarrollo en inteligencia artificial.


1.5 SOFTWARE
Se entiende por software el conjunto de programas (o instrucciones) que el procesador
del ordenador va ejecutando secuencialmente y que permiten, bsicamente, controlar
el hardware. En realidad, la funcionalidad que aporta el software en un sistema
informtico se sita en todos los niveles, desde el ms bsico, consistente en hacer
funcionar el hardware, hasta el nivel del usuario.
En el nivel ms bsico, el software controla las diferentes unidades del procesador, la
memoria y los perifricos y todas las seales elctricas que permiten conectarlo entre
s.
En el nivel ms alto, tiene la funcin de presentar al usuario una interfaz que le facilite
su interaccin con el ordenador. Esta interfaz tiene que disearse de manera que
permita a la persona trabajar con objetos de alto nivel y que tengan alguna relacin
con su mundo real. De esta manera, no necesita estar pendiente de los numerosos
detalles tcnicos necesarios para que el hardware funcione. Es el software el que
enlaza ambos niveles. Esta capacidad de permitir abstraer al usuario de los detalles del
hardware es fundamental para poder trabajar con eficiencia con un sistema
informtico.
Entre ambos niveles hay varias piezas de software organizadas en capas de manera
que cada una aade un nivel ms de abstraccin entre el hardware y el nivel del
usuario. Puede apreciarse una divisin entre el software que realiza las funciones ms
genricas y bsicas del sistema, llamado de infraestructura bsica y el software de
aplicaciones, que se centra en la resolucin de las necesidades concretas de los
usuarios.

Software de infraestructura bsica


Software de aplicaciones
Sistema operativo
Ofimtica

Autor: Luis Heladio Garzn Rodrguez

1.5.1 Software de infraestructura bsica


Es el que realiza las funciones ms bsicas de un sistema de informacin, que cuentan
no slo el control del hardware, sino de todos aquellos subsistemas que forman una
base sobre la cual las aplicaciones de usuario puedan funcionar. Bsicamente, es lo
que se conoce como sistema operativo, pero tambin incluye otras piezas utilizadas
por la mayora de las aplicaciones como, por ejemplo, el sistema de correo electrnico
o el de acceso a bases de datos.
Toda organizacin necesita incluir muchos productos de software de infraestructura
bsica. Los riesgos de intentar desarrollar en la organizacin estos productos son muy
grandes, ya que son tecnolgicamente complejos y requeriran un grado de
especializacin elevado y, por lo tanto, el coste de desarrollo sera muy importante.
Por esto, lo recomendado es adquirir productos de mercado. No slo resulta ms
econmico, sino que tambin las empresas fabricantes verifican su calidad, garantizan
la compatibilidad con otros productos y son capaces de seguir el ritmo de evolucin de
la tecnologa, ya que tienen todos sus recursos dedicados a esto.
1.5.2 Software de aplicaciones
Al contrario que el software de infraestructura bsica, el de aplicaciones necesita en su
diseo y construccin conocer cmo es el usuario y su manera de actuar, de entender
la organizacin y lo que espera obtener de los sistemas informticos.
La utilizacin de paquetes comerciales para cubrir las necesidades del software de
aplicaciones es recomendable, aunque no siempre es posible, ya que muchas
caractersticas pueden ser especficas de la organizacin. En estos casos, la
organizacin tiene que asumir el desarrollo del software especfico.
1.5.3 Sistema operativo
El sistema operativo comprende la capa ms bsica del software de infraestructura.
Provee las funciones clsicas que permiten a las aplicaciones abstraerse de los detalles
del hardware:

Control del procesador y de la memoria.


Ejecucin de programas y control de procesos. El sistema operativo se encarga
de crear y destruir procesos y de asignar recursos a cada uno de ellos, como
por ejemplo el tiempo de proceso, la memoria y la comparicin de los
perifricos. Cuando hay varios procesos ejecutndose al mismo tiempo
(multiproceso), el sistema operativo tiene que arbitrar una manera ordenada y
equilibrada para que cada proceso acceda a los diferentes recursos en orden y
sin excluir a los otros procesos.
Controladores de los perifricos. El sistema operativo tiene que generar las
seales necesarias para controlar a los perifricos y ofrecer una manera de
acceso adecuada para las aplicaciones.

Autor: Luis Heladio Garzn Rodrguez

Sistema de ficheros. Es la abstraccin (en ficheros y directorios) que utilizan los


sistemas operativos para organizar el espacio de almacenamiento de los discos
y otros soportes de informacin y permitir un acceso adecuado por parte de las
aplicaciones.
Control de usuarios. En sistemas que permiten un uso diferenciado para
usuarios diferentes (multiusuario), es necesario establecer mtodos para
identificar a cada usuario y para permitir a cada uno realizar las operaciones y
acceder a los recursos que tengan autorizados.

ltimamente, tambin se incluyen en el sistema operativo funciones de ms alto nivel


que se han convertido en estndares:

Controlador de las comunicaciones por red, correo electrnico y acceso a


Internet.
Herramientas de administracin. Los administradores del sistema son las
personas encargadas de mantener y gestionar los recursos del sistema
operativo. Las herramientas de administracin facilitan su trabajo en temas
como la gestin de los usuarios y recursos y la monitorizacin del rendimiento
del sistema.
Compiladores y libreras dinmicas. Muchos sistemas ofrecen herramientas y
mtodos estndar para ayudar en la programacin de aplicaciones.
Control de la interfaz grfica. La gestin de todos los objetos (ventanas, mens,
iconos, etc.) que aparecen en una pantalla es bastante compleja, as como su
utilizacin por parte de las aplicaciones. Los sistemas que ofrecen una interfaz
de uso para las aplicaciones tambin son una gran ayuda para los
programadores.

Todos estos mecanismos proporcionan un nivel de funcionalidad que simplifica mucho


el desarrollo de aplicaciones, ya que permite a los analistas y programadores
concentrarse en lo que es esencial en la aplicacin.
A lo largo del tiempo se ha desarrollado una multitud de sistemas
operativos con orientaciones muy diferentes. Como tantos otros temas en
informtica, los sistemas operativos a menudo se presentan en familias
que los fabricantes van haciendo que evolucionen a lo largo del tiempo.
Una de las lneas de sistemas operativos ms conocidas es el sistema por
excelencia de los PC. Se trata del sistema Windows, desarrollado por
Microsoft. Esta lnea empez con el MS-DOS. Era un sistema bastante
limitado y con una interfaz nicamente de texto. Cuando Microsoft vio que
era necesario ampliarlo y aadirle una interfaz grfica, desarroll
Windows, que hasta el momento presenta varias versiones: 3.11, 95/98 y
Milenium en la versin domstica y NT y 2000 en la profesional.
El sistema operativo de los Macintosh presenta una evolucin ms lineal
que Windows, puesto que desde el primer momento ya tena un entorno
grfico. Actualmente, coexisten las versiones 8, 9 y 10.
En el campo de las workstations, el sistema ms utilizado es Unix, que
presenta diferentes versiones segn los fabricantes. Es un sistema
operativo con gran nmero de funcionalidades y con una gran flexibilidad
que le ha permitido adaptarse perfectamente a los ordenadores ms
avanzados. Siempre han existido versiones de Unix para la arquitectura

Autor: Luis Heladio Garzn Rodrguez

PC, pero ltimamente ha aparecido una versin que ha ganado gran


popularidad: Linux.
1.5.4 Ofimtica

Se entiende por software de ofimtica un conjunto de herramientas pensadas para


facilitar toda una serie de tareas administrativas habituales en oficinas: creacin de
documentos, esquemas grficos, clculos financieros y otros, archivos de datos,
gestin de la agenda, etc. Las ms importantes son los procesadores de textos,
editores grficos, hojas de clculo y bases de datos. Una caracterstica importante es
que todas estas herramientas estn diseadas para trabajar en coordinacin. As, por
ejemplo, utilizan mens y combinaciones de teclas iguales para las mismas funciones o
permiten al usuario traspasar textos y grficos de una a otra de una manera fcil y
rpida. Por otra parte, la generalizacin de las redes ha impuesto otras herramientas
como estndares dentro de las oficinas: el correo electrnico, que est desplazando al
fax, y los navegadores de Internet.

El paquete de oficina ms popular es el Microsoft Office.

El procesador de textos es una herramienta que facilita la creacin y edicin de


documentos. Tambin se conoce como editor de textos. Permite la manipulacin de
documentos con textos y muchos ellos tambin admiten trabajar con varios tipos
de grficos. Segn su sofisticacin, tienen varios formatos para el texto: tipo y
tamao de letra, negrita, subrayado, colores, etc. Muchos disponen de
herramientas y funciones auxiliares como correctores ortogrficos, diseo de tablas
o generadores automticos de ndices.

Las herramientas de diseo grfico son herramientas especializadas en la creacin


de documentos con alto contenido grfico, como psters para exposiciones o
transparencias y diapositivas para presentaciones. Los tipos de grficos que
incluyen van desde dibujos lineales a imgenes digitalizadas. Algunos de los ms
sencillos es Power Point, que pertenece al paquete de Microsoft Office. Otros ms
sofisticados son Corel Draw y Photoshop.
Existen herramientas de diseo grfico muy especializadas en varios campos de la
ingeniera que permiten disear componentes electrnicos, piezas mecnicas,
edificios, etc. Disponen de numerosas funciones de manipulacin de objetos
grficos de dos y tres dimensiones y tambin de generacin de vistas o escenas 3
D. Una de las ms utilizadas, sobre todo en arquitectura, es Autocad.

Las hojas de clculo son programas que sirven para calcular y visualizar tablas de
cifras. La zona de trabajo es una cuadrcula de filas y columnas que definen celdas
donde se coloca la informacin. Tambin permiten hacer grficas de los datos. La
caracterstica que les da una gran potencia es incluir frmulas basadas en los datos
de las celdas y una funcin de reclculo automtico de manera que, cuando se
modifica un dato, todas las frmulas que dependen del mismo se vuelven a
calcular. Las hojas de clculo ms conocidas son Microsoft Excel y Lotus 1-2-3.

Autor: Luis Heladio Garzn Rodrguez

Las bases de datos son conjuntos ordenados de informacin. La informacin se


organiza en tablas, y cada fila de las mismas se denomina registro y contiene
varios campos. Las diferentes tablas que pueden formar la base de datos pueden
relacionarse entre s mediante un sistema de punteros e ndices. Esto permite
buscar informacin relacionada, pero repartida en varias tablas. Las bases de datos
que utilizan este esquema de organizacin se denominan relacinales.
Por extensin, tambin se conocen como bases de datos los programas que
gestionan y permiten acceder a la informacin que se almacena, pero el nombre
ms exacto sera gestor de bases de datos.

Existen gestores de bases de datos de distinta complejidad. Los ms sencillos tienen


una capacidad reducida (pero suficiente para muchas aplicaciones de oficina), como
por ejemplo Microsoft Access. Las ms completas gestionan grandes volmenes de
datos con eficiencia, rpido acceso e implementan mecanismos de integridad de los
datos frente a accesos simultneos de varios usuarios y sistemas de seguridad contra
la prdida de informacin. Quiz una de las ms conocidas es Orculo.
1.6 El procesamiento de datos
Procesar informacin quiere decir realizar una serie de operaciones, tanto aritmticas
como de almacenamiento y transmisin de datos para solucionar un problema, ya sea
de clculo cientfico, comercial o de cualquier tipo.
Estas operaciones pueden hacerse manualmente o con mquinas. Hasta hace
relativamente poco tiempo, todos estos clculos se hacan manualmente (incluso
exista el oficio de calculador, una persona especializada en realizar operaciones
matemticas con rapidez y correccin).
En el siglo XIX aparecieron las primeras mquinas de calcular mecnicas y en la
segunda mitad del siglo XX, las calculadoras electrnicas y los ordenadores.
El uso de mquinas, sean del tipo que sean, proporciona una mayor rapidez y fiabilidad
en la obtencin de los datos deseados.
Tradicionalmente, el clculo numrico, tanto aplicado a la ciencia, la ingeniera o a las
finanzas, ha sido la causa del desarrollo de la computacin: a medida que las
mquinas de calcular han ganado potencia, se han podido plantear clculos cada vez
ms complejos.
Paralelamente a la creciente complejidad de los clculos numricos pudo plantearse la
toma de decisiones que tena en cuenta ms variables y, adems, con ms rapidez: los
tradicionales archivos de papel dejaron paso a los actuales sistemas de bases de datos
y a los sistemas automticos de ayuda a la toma de decisiones.
La miniaturizacin de los circuitos electrnicos, que conserva una gran potencia de
clculo, ha permitido incorporar sistemas de control a mquinas de todo tipo, que se
destinan a controlar todo tipo de procesos industriales, desde lneas de produccin de
cualquier artculo, hasta control de entornos donde parmetros como temperatura,
presin, radiacin, etc. requieren una gran precisin y seguridad. Por ejemplo, un

Autor: Luis Heladio Garzn Rodrguez

ordenador puede comprobar caractersticas de los productos que se estn produciendo,


y si no son las deseadas, encontrar que falla en la produccin y corregirlo.
En este campo aparecieron las primeras aplicaciones prcticas del concepto de robot,
entendido como un dispositivo mecnico capaz de realizar un trabajo especializado de
manera automtica. Las imgenes de robots como seres artificiales de amplias
capacidades an son un concepto futurista, aunque la tcnica de la robtica y la
informtica cada vez lo estn acercando ms.

Un ltimo campo en que el procesamiento de la informacin es de gran ayuda es el de


la creatividad y el arte. No es slo una herramienta que facilita la creacin de todo tipo
de manifestaciones artsticas (libros, revistas, publicidad, cuadros, msica...), sino que
incluso ha propiciado nuevos gneros artsticos, como los sistemas multimedia que
combinan en un nico producto sonido, imagen y otros medios de comunicacin.

HISTORIA DE LOS LENGUAJES DE PROGRAMACIN


La historia de los lenguajes de computadores se remonta al tiempo de la creacin de
las primeras maquinas, concebidas para la automatizacin de procesos, y su evolucin
se puede decir se ha sido consecuencia de la misma evolucin que han sufrido las
computadoras.
En este sentido es importante resaltar que los lenguajes de programacin se clasifican
por generaciones o por el nivel.
Las generaciones estn relacionadas con la evolucin de las computadoras.
Revise los link colocados a continuacin para profundizar sobre el tema
http://web.usal.es/~mlperez/programacion_archivos/trabajos_2006_2007/tema2_AL_Alvarez_et_al.pdf

http://www.desarrolloweb.com/articulos/2358.php

ATRIBUTOS DE UN BUEN LENGUAJE DE PROGRAMACIN


Un buen lenguaje de programacin debe satisfacer caractersticas como:
Integridad conceptual
Claridad
Simplicidad
Unidad
Legibilidad
Las diferencias
Ortogonalidad.

semnticas

deben

verse

reflejadas

en

diferencias

sintcticas

Capacidad de combinar varias caractersticas del lenguaje de todas las formas posibles,
y que cada una de esas combinaciones tenga significado

Autor: Luis Heladio Garzn Rodrguez

Pocas excepciones y casos especiales que recordar


Aspecto negativo: Combinaciones incoherentes o ineficientes
Naturalidad para la aplicacin

Un lenguaje debe suministrar estructuras de datos, operaciones, y estructuras de


control apropiadas al tipo de problemas al que se aplicar, as como una sintaxis en la
que se puedan expresar de forma natural las soluciones a tales problemas
Soporte para la abstraccin
Facilidad para la verificacin de programas
Entorno de programacin
Portabilidad de los programas
Homogeneidad en el tratamiento externo e interno de los conceptos
Coste de uso
Coste de ejecucin de programas
Coste de traduccin
Coste de creacin, prueba y uso de programas
Coste de mantenimiento de programas
Buena definicin
Sintaxis y semntica sean precisas, in ambiguas, legibles, comprensibles
y, a ser posible, formales

MODELOS BASICOS DE PARADIGMAS DE LOS LENGUAJES DE


PROGRAMACIN
Se entiende por paradigma de programacin un modelo que sirve como una gua al
programador para disear aplicaciones. Se pueden referir tanto a mtodos de
programacin como a maneras de estructurar la informacin y los diferentes
elementos que componen una aplicacin.
Su potencia reside en que se han utilizado muchas veces en aplicaciones distintas, lo
cual ha permitido descartar a los que no son adecuados y mejorar los que ofrecan
buenas soluciones. Para un programador, seguir estos modelos representa una
garanta de la calidad del producto final y una mayor eficiencia, ya que trabajar con
un mtodo sobradamente comprobado.

Modelo Von Neumann


Programacin estructurada
Programacin orientada a objetos
Modelo cliente-servidor

Modelo Von Neumann

El modelo Von Neumann, propuesto por el matemtico del mismo nombre, define las
bases de la computacin y de los ordenadores actuales. Propone que los programas y
datos se representen en cdigo binario, que haya un centro de control que ejecute el
programa secuencialmente o con saltos segn indiquen las instrucciones y que acceda
y trabaje con los datos almacenados en dispositivo de memoria.

Autor: Luis Heladio Garzn Rodrguez

Muchos lenguajes siguen este esquema con ms o menos nivel de abstraccin,


notablemente los lenguajes ms conocidos. Algunos de los que se apartan del modelo
Von Neumann son los lenguajes funcionales (Lisp) y lgicos (Prolog).

Programacin estructurada o modular

Esta tcnica propone una


agrupan en estructuras de
la propia forma en que se
o funciones ms pequeas

estructura lgica para escribir un programa. Los datos se


manera que las relaciones entre ellos queden reforzadas por
agrupan. Los procedimientos grandes se rompen en rutinas
y modulares.

Se desaconsejan las instrucciones de saltos incondicionales, los famosos GOTO, porque


oscurecen el flujo de control del programa, al no quedar constancia de cmo se ha
llegado hasta aquel punto. En cambio, cuando desde un programa se llama a una
funcin, el sistema de control registra el punto del programa desde donde se hace el
llamamiento para poder volver al mismo cuando la funcin acaba. Finalmente, las
rutinas que tratan con datos relacionados pueden agruparse en mdulos. As, el
objetivo final es descomponer un programa en mdulos, lo cual facilita su verificacin y
depuracin, ya que cada uno puede probarse por separado.
Esta organizacin es imprescindible para poder desarrollar aplicaciones de cierta
complejidad y tamao. Los lenguajes ms antiguos (por ejemplo FORTRAN, COBOL o
BASIC) requieren una disciplina por parte del programador para utilizar un esquema
modular. En cambio, todos los lenguajes posteriores imponen, por su estructura
sintctica, la organizacin del cdigo en funciones y, por lo tanto, modular.

Programacin orientada a objetos

La evolucin del modelo de programacin modular es la programacin orientada a


objetos. Sin duda, es una de las tcnicas ms complejas. De hecho, ms que una
tcnica representa una manera nueva de encarar la programacin.
Antes de la orientacin a objetos, un programa era, como ya se ha explicado, una
secuencia lgica de instrucciones que segua el ordenador. Por lo tanto, el nfasis se
pona en las instrucciones, en la manera en que tenan que tratarse los datos. En
cambio, la programacin orientada a objetos se concentra en los datos,
estructurndolos en objetos claramente definidos y en cmo tienen que manipularse.
Los programas se construyen en trminos de los objetos que define el problema, y
utilizan funciones o mtodos que operan con estos objetos.
En resumidas cuentas, un objeto representa un concepto del problema con un conjunto
de datos y de mtodos. Los datos del objeto slo se pueden manipular con los mtodos
definidos. De esta manera, un objeto pasa a ser una estructura compacta con unos
puntos de acceso muy definidos y permite, por lo tanto, ser utilizado en diferentes
aplicaciones con gran facilidad. Esta capacidad de reutilizar un cdigo representa un
gran ahorro de tiempo de programacin.
Otro beneficio de este esquema es que se puede definir un objeto en trminos de
otros, de manera que el nuevo objeto puede aprovechar los datos y mtodos de los ya
existentes, con lo cual se consigue, de nuevo, reutilizar cdigo. Este mecanismo se
llama herencia.

Autor: Luis Heladio Garzn Rodrguez

La gran mayora de los lenguajes modernos siguen el modelo de orientacin a objetos.


Tal es el caso de los ya mencionados C++ y Java, y tambin otros lenguajes como
Javascript o Perl.

Modelo cliente-servidor

La idea principal del modelo cliente-servidor es que existe un repositorio central, como
por ejemplo una base de datos, cuya informacin se distribuye bajo pedido al conjunto
de nodos que acceden al mismo. La clave del funcionamiento de este modelo es que el
repositorio de informacin est centralizado de manera que los cambios que se hacen
se propagan automticamente a los clientes que piden la informacin en cuestin.
El ordenador donde reside la informacin y el software que la distribuye recibe el
nombre de servidor, mientras que la mquina que se comunica con el servidor, obtiene
la informacin y la visualiza para el usuario final recibe el nombre de cliente.
La construccin de aplicaciones basadas en el modelo cliente-servidor es relativamente
sencilla. A pesar de esto, hay que tener en cuenta algunos problemas que aparecen
cuando un solo servidor tiene que atender las peticiones de muchos clientes de manera
simultnea. Se refieren tanto a problemas de acceso concurrente a los datos como a
problemas de velocidad.
Cuando un servidor tiene que atender peticiones de consulta de informacin de
diferentes clientes al mismo tiempo, tiene que asegurar que se atiende a todos por
igual y que ninguno debe esperar mucho ms tiempo que los dems.
Los clientes, por otro lado, tambin pueden hacer peticiones para modificar los datos
del servidor o para aadir otros nuevos. En este caso, el servidor tiene que asegurar
que los datos de un cliente no se sobre-escriban a los de otro, o que mientras se hace
una modificacin no se pierda ningn dato, es decir, el servidor tiene que asegurarse
de la coherencia de sus propios datos. Por esto, los clientes modifican los datos en
operaciones denominadas transacciones, en las que se asegura que todas las
modificaciones se hacen completamente o que si hay una cancelacin, no se realiza
ninguna y los datos quedan intactos.
El problema de la velocidad aparece cuando centenares de clientes quieren acceder al
mismo servidor y ste, literalmente, no da abasto. Para solucionar este problema hay
diversas opciones:

La ms inmediata es utilizar mquinas de ms potencia, pero a la larga esto


siempre acaba resultando insuficiente.
Una mejor solucin es optimizar el software del servidor para reducir al mximo
los posibles retrasos, o para pasar al lado del cliente procesamientos de los
datos que no sean estrictamente para su acceso o modificacin. ste es un
buen mtodo porque cada vez ms los ordenadores clientes suelen disponer de
ms capacidad de clculo.

Las aplicaciones basadas en el modelo cliente-servidor pueden llegar a tener gran


complejidad, por lo cual se estructuran en varias capas, de manera que cada una
resuelve una pequea parte del problema y el conjunto ofrece la solucin global.
Actualmente, este modelo se emplea en un gran nmero de aplicaciones, desde
sistemas bancarios, de crdito y financieros hasta la distribucin de cualquier tipo de
datos. La red Internet sera el ejemplo ms claro.

Autor: Luis Heladio Garzn Rodrguez

NUEVOS PARADIGMAS DE PROGRAMACIN


Un paradigma de programacin provee (y determina) la visin y mtodos de un
programador en la construccin de un programa o subprograma.
Diferentes paradigmas resultan en diferentes estilos de programacin y en diferentes
formas de pensar la solucin de problemas (una aplicacin se construye con la solucin
de mltiples problemas).
Tipos de paradigmas de programacin ms comunes:
El paradigma imperativo o por procedimientos es considerado el ms comn y
est representado, por ejemplo, por el C o por BASIC.
El paradigma funcional est representado por la familia de lenguajes (en particular
Scheme), ML o Haskell.
El paradigma lgico un ejemplo es PROLOG.
El paradigma orientado a objetos un lenguaje completamente orientado a objetos
es Smalltalk.
Paradigma imperativo o por procedimientos
Describe la programacin como una secuencia instrucciones o comandos que cambian
el estado de un programa. El cdigo mquina en general est basado en el paradigma
imperativo.
La programacin en el paradigma imperativo consiste en determinar qu datos son
requeridos para el clculo, asociar a esos datos unas direcciones de memoria, y
efectuar paso a paso una secuencia de transformaciones en los datos almacenados, de
forma que el estado final represente el resultado correcto.
Ejemplos de lenguajes imperativos:

BASIC
C
C#
C++
Fortran
Pascal

Autor: Luis Heladio Garzn Rodrguez


Java
Perl
PHP
Lua

Paradigma Funcional
La Programacin funcional es un paradigma de programacin declarativa basado en la
utilizacin de funciones matemticas.
El objetivo del paradigma 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, y evitando el concepto de
estado del cmputo. La secuencia de computaciones llevadas a cabo por el programa
se regira nica y exclusivamente por la reescritura de definiciones ms amplias a otras
cada vez ms concretas y definidas, usando lo que se denominan definiciones dirigidas.
Todo esto con el objetivo de familiarizar a los estudiantes con un lenguaje elegante en
el cual se pueda manejar ms fcilmente y as los programas sean menos extensos y
complejos.
Otro de los objetivos primordiales de dicho paradigma es buscar satisfacer las
necesidades del usuario con respecto a operaciones matemticas y convertirse en un
lenguaje ms expresivo.
Paradigma Lgico
La programacin lgica consiste en la aplicacin del corpus de conocimiento sobre
lgica para el diseo de lenguajes de programacin; no debe confundirse con la
disciplina de la lgica computacional.
La programacin lgica comprende dos paradigmas de programacin: la programacin
declarativa y la programacin funcional. La programacin declarativa gira en torno al
concepto de predicado, o relacin entre elementos. La programacin funcional se basa
en el concepto de funcin (que no es ms que una evolucin de los predicados), de
corte ms matemtico.
Paradigma Orientado a Objetos
La Programacin Orientada a Objetos (POO u OOP segn sus siglas en ingls) es un
paradigma de programacin que usa objetos y sus interacciones para disear
aplicaciones y programas de computadora. Est basado en varias tcnicas, incluyendo
herencia, modularidad, polimorfismo y encapsulamiento. Su uso se populariz a
principios de la dcada de 1990. Actualmente son muchos los lenguajes de
programacin que soportan la orientacin a objetos.
La programacin orientada a objetos es una nueva forma de programar que trata de
encontrar una solucin a estos problemas. Introduce nuevos conceptos, que superan y
amplan conceptos antiguos ya conocidos.