domingo, 14 de diciembre de 2014

PROCEDIMIENTOS ALMACENADOS



PROCEDIMIENTOS ALMACENADOS  CON PARAMETROS DE
ENTRADA, SALIDA y VARIABLES LOCALES

1. Crear un procedimiento almacenado que devuelva en un parámetro de tipo
out, el nombre del representante de un determinado cliente (código). Debe
utilizar variable(s) local(es).

CREATE DEFINER=`root`@`localhost` PROCEDURE `Nombre_representante_x_cliente`
(in pcliente int(11),out pnombre varchar(50))
BEGIN
declare clave int;
select CodigoEmpleadoRepVentas
into clave
from clientes
where CodigoCliente=pcliente;
select Nombre
into pnombre
from empleados
where CodigoEmpleado=clave;


2. Crear un procedimiento almacenado que devuelva en un parámetro out,
cuantas veces se ha pedido un determinado producto. Para ello debe
proporcionar el nombre del producto y utilizar variables locales.


 CREATE DEFINER=`root`@`localhost` PROCEDURE `veces_pedido_un_producto`
(in pnombre varchar (70),out ptotal int)
BEGIN
Declare clave varchar (15);
select CodigoProducto
into clave
from productos
where Nombre=pnombre;

select count(*)
into ptotal
from detallepedidos
where CodigoProducto=clave;

END




 3. Crear un procedimiento almacenado que devuelva en un parámetro out, la
descripción de la gama de un determinado producto. Debe utilizar variables
locales.
CREATE DEFINER=`root`@`localhost` PROCEDURE `descripcion_gama_x_producto`
(in pnombre varchar (70),out pdescripcion text)
BEGIN
Declare clave text;
select gama
into clave
from productos
where nombre=pnombre;
select DescripcionTexto
into pdescripcion
from gamasproductos
where DescripcionTexto=clave;
18:01:55          call descripcion_gama_x_producto ('Washingtonia Robusta',@total)       Error Code: 1172. Result consisted of more than one row        0.000 sec

4. Crear un procedimiento almacenado que devuelva en un parámetro out, el
nombre del empleado que es jefe de un determinado empleado (in).


CREATE DEFINER=`root`@`localhost` PROCEDURE `jefe_de_empleado`
(in pcodE int(11), out pcodJ varchar(50))
begin
declare clave int(11);
select CodigoEmpleado
into clave
from empleados
where codigoempleado=pcodE;

select Nombre
into pcodJ
from empleados
where CodigoJefe=clave;







5. Crear un procedimiento almacenado que a partir de un nombre de producto
devuelve en un parámetro de tipo out cuantos pedidos se han hecho de él
mismo.
CREATE DEFINER=`root`@`localhost` PROCEDURE `cuantas_piezas_nombre`
(in pnombre varchar(70), out pcant int(11))
BEGIN
declare clave varchar(15);
select CodigoProducto
into clave
from productos
where Nombre=pnombre;
 select sum(cantidad)
into pcant
from detallepedidos
where CodigoProducto=clave;
call cuantas_piezas_nombre ('Lonicera Pileata',@total);
select @total;------ '32'--------


6. Crear un procedimiento almacenado que calcule en un parámetro de tipo out,
para un nombre de cliente, cuánto dinero le queda por pagar. Para ello debe
sumar el total de sus pedidos y restarle el total de sus pagos realizados.

7. Crear un procedimiento almacenado que dado un código de cliente, devuelva
en un parámetro de tipo out la ciudad de la oficina de su representante.


8. Crear un procedimiento almacenado que devuelva la lista de clientes que lleva
un determinado representante.

lunes, 3 de noviembre de 2014

Lenguajes de programación: Historia y Evolución


Lenguajes de programación: Historia y Evolución
INTRODUCCIÓN
Los ordenadores no hablan nuestro idioma, son maquinas y como tales, necesitan un lenguaje especifico pensado por el hombre para ellas. Pronto aparecieron lenguajes de programación que hacen posible la comunicación con el microprocesador
Estos lenguajes permiten, por un lado, escribir las operaciones que son necesarias de un modo parecido a como se escribiría convencionalmente (redactar adecuadamente el algoritmo) y, por el otro, traducir el algoritmo al lenguaje máquina (proceso conocido como compilación) con lo que se le confiere al programa la capacidad de corre (ser ejecutado) en el ordenador. El ordenador es en realidad tan sólo una máquina virtual, capaz de resolver todos los problemas que los usuarios seamos capaces de expresar mediante un algoritmo (programa).
Hay muchos tipos de lenguajes de programación con su propia gramática, Por ejemplo, existen algunos creados especialmente para aplicaciones científicas o matemáticas (BASIC, FORTRAN, PASCAL, etc. ); otros, en cambio, se orientan al campo empresarial y al manejo de textos y ficheros (COBOL, PL/1, etc. ), o muy relacionados con el lenguaje máquina del ordenador (como el C y el ASSEMBLER).
Los ordenadores se programaban en lenguaje máquina pero las dificultades que esto conllevaba, junto con la enorme facilidad de cometer errores, hicieron concebir, en la década de los 40, la posibilidad de usar lenguajes simbólicos. Los primeros en aparecer fueron los ensambladores
DEFINICIONES
Es complicado definir qué es:
Un lenguaje de programación es una notación para escribir programas, a través de los cuales podemos comunicarnos con el hardware y dar así las órdenes adecuadas para la realización de un determinado proceso. Un lenguaje está definido por una gramática o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados Conjunto de normas “lingüísticas” (palabras y símbolos) que permiten escribir un programa y que éste sea entendido por el ordenador y pueda ser trasladado a ordenadores similares para su funcionamiento en otros sistemas.
Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los lenguajes de programación deben tener instrucciones que pertenecen a las categorías ya familiares de entrada/salida, calculo/manipulación, de textos, lógica/comparación, y almacenamiento/recuperación.

HISTORIA
Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de Cambridge e inventor ingles, que al principio del siglo XIX predijo muchas de las teorías en que se basan los actuales ordenadores. Con él colaboro Ada Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquélla supuesta maquina de Babagge, en tarjetas perforadas.
Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And Calculator), su programación se basaba en componentes físicos, o sea, que se programaba, cambiando directamente el Hardware de la maquina, exactamente lo que sé hacia era cambiar cables de sitio para conseguir así la programación de la maquina. La entrada y salida de datos se realizaba mediante tarjetas perforadas.
LAS TENDENCIAS DE LOS LENGUAJES DE PROGRAMACIÓN
El "Implementador del lenguaje" es la persona o grupo que desarrolla un compilador o interprete para un lenguaje sobre una maquina particular o tipos de maquinas
Hay, al menos, dos formas fundamentales desde las que pueden verse o clasificarse los lenguajes de programación: por su nivel y por principales aplicaciones.
Los "Lenguajes Declarativos" son los más parecidos al castellano o ingles en su potencia expresiva y funcionalidad están en el nivel más alto respecto a los otros.
Los lenguajes de " Alto Nivel" son los más utilizados como lenguaje de programación. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fácilmente legible y comprensible por otros programadores.
Los "Lenguajes Ensambladores" y los "Lenguajes Maquina" son dependientes de la maquina. Cada tipo de máquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado.
Los siguientes tres segmentos del programa equivalentes exponen las distinciones básicas entre lenguajes maquina, ensambladores de alto nivel:
La programación de un lenguaje de alto nivel o en un lenguaje ensamblador requiere, por tanto, algún tipo de interfaz con el lenguaje máquina para que el programa pueda ejecutarse. Las tres interfaces más comunes: un "ensamblador”, un "compilador" y un "interprete". El ensamblador y el compilador traducen el programa a otro equivalente en el lenguaje X de la maquina "residente" como un paso separado antes de la ejecución. Por otra parte, el intérprete ejecuta directamente las instrucciones en un lenguaje Y de alto nivel, sin un paso de procesamiento previo.
La compilación es, en general, un proceso más eficiente que la interpretación para la mayoría de los tipos de máquina. Esto se debe principalmente a que las sentencias dentro de un "bucle" deben ser reinterpretadas cada vez que se ejecutan por un intérprete. Con un compilador. Cada sentencia es interpretada y luego traducida a lenguaje maquina solo una vez.
Existen cinco estilos de programación y son los siguientes:
Orientados a Objetos.
Imperativa: Entrada, procesamiento y salidas de Datos.
Funcional: "Funciones", los datos son funciones, los resultados pueden ser un valor o una función.
Lógico: {T, F} + operaciones lógicas (Inteligencia Artificial).
Concurrente: Aún está en proceso de investigación.
El programador, diseñador e implementador de un lenguaje de programación deben comprender la evolución histórica de los lenguajes para poder apreciar por que presentan características diferentes
CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIÓN
LENGUAJE MÁQUINA:
El lenguaje máquina es el único que entiende directamente la computadora, ya que está escrito en lenguajes directamente inteligibles por la máquina (computadora), utiliza el alfabeto binario, que consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios). Sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y, las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código maquina. Fue el primer lenguaje utilizado en la programación de computadoras, pero dejo de utilizarse por su dificultad y complicación,
Ventajas del lenguaje máquina: posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.
Desventajas del lenguaje máquina: dificultad y lentitud en la codificación. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes máquina.
LENGUAJES DE BAJO NIVEL (ensamblador):
Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje ensamblador es el primer intento de sustituir el lenguaje maquina por otro más similar a los utilizados por las personas.
Estos programas de ensamble o ensambladores también permiten a la computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio código maquina. Un programa de instrucciones escrito en lenguaje ensamblador por un programador se llama programa fuente
El lenguaje de bajo nivel es el lenguaje de programación que el ordenador puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecución, pues no necesita un intérprete que traduzca cada línea de instrucciones.
Visto a muy bajo nivel, los microprocesadores procesan exclusivamente señales electrónicas binarias.
Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son, a menudo, difíciles de aprender
Ventajas del lenguaje ensamblador frente al lenguaje máquina: mayor facilidad de codificación y, en general, su velocidad de cálculo, ahorran tiempo y requieren menos atención a detalles
Desventajas del lenguaje ensamblador: dependencia total de la maquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas).
Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos.
LENGUAJES DE ALTO NIVEL:
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables.
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC
Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores (lenguaje máquina, lenguajes de bajo nivel o ensamblador) con los siguientes objetivos, entre otros:
Lograr independencia de la maquina
Incluir rutinas de uso frecuente, como las de entrada / salida, funciones matemáticas, manejo de tablas, etc.,
Ventajas de los lenguajes de alto nivel: el tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Las modificaciones y puestas a punto de los programas son más fáciles. Reducción del costo de los programas. Transportabilidad. Permiten tener una mejor documentación. Son más fáciles de mantener.
Desventajas de los lenguajes de alto nivel: incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. Aumento de la ocupación de memoria. El tiempo de ejecución de los programas es mucho mayor.
Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso, además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. Una clasificación muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofía con que fueron concebidos, es la siguiente:
·       Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada).
·       Lenguajes declarativos. Los programas se construyen mediante descripciones de funciones o expresiones lógicas (Lisp, Prolog).
·       Lenguajes orientados a objetos. El diseño de los programas se basa más en los datos y su estructura. La unidad de proceso es el objeto y en él se incluyen los datos (variables) y las operaciones que actúan sobre ellos (Smalltalk, C++).
·       Lenguajes orientados al problema. Diseñados para problemas específicos, principalmente de gestión, suelen ser generadores de aplicaciones.
·       Lenguajes naturales. Están desarrollándose nuevos lenguajes con el principal objetivo de aproximar el diseño y construcción de programas al lenguaje de las personas.
Otra clasificación que se puede hacer es la de atendiendo al desarrollo de los lenguajes desde la aparición de las computadoras, que sigue un cierto paralelismo con las generaciones establecidas en la evolución de las mismas:
·       Primera generación. Lenguajes maquina y ensambladores.
·       Segunda generación. Primeros lenguajes de alto nivel imperativo (FROTRAN, COBOL).
·       Tercera generación. Lenguajes de alto nivel imperativo. Son los más utilizados y siguen vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA).
·       Cuarta generación. Orientados básicamente a las aplicaciones de gestión y al manejo de bases de datos (NATURAL, SQL).
·       Quinta generación. Orientados a la inteligencia artificial y al procesamiento de los lenguajes naturales (LISP, PROLOG).
Para la mejor compresión se harán unas definiciones:
Programa: es un conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos, para resolver un problema.
Código fuente: esta creado en algún lenguaje de alto nivel, por lo que es entendido 100% por el ser humano. Este debe estar complementado por su documentación o manuales donde se indica el desarrollo lógico del mismo.
Código objeto: es creado por los compiladores y nos sirve como enlace entre el programa fuente y el ejecutable.
ALGUNOS LEGUAJES DE PROGRAMACIÓN DE ALTO NIVEL
A continuación se presentan varios de los más conocidos y utilizados, lenguajes de alto nivel.
FORTRAN
Abreviatura de FORmula TRANslator (traductor de formulas), fue definido alrededor del año 1955 en Estados Unidos por la compañía IBM. Es el más antiguo de los lenguajes de alto nivel. Antes de él, todos los programas se escribían en lenguaje ensamblador o en lenguaje máquina. Es un lenguaje especializado en aplicaciones técnicas y científicas. Se caracteriza por su potencia en los cálculos matemáticos, pero está limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes.
COBOL
Es el lenguaje más utilizado en las aplicaciones de gestión, creado en 1960 por un comité denominado CODASYL, a fin de disponer de un lenguaje universal para aplicaciones comerciales, como expresa su nombre (COmmnon Business Oriented Language).
Sus características más destacables son las siguientes: se asemeja al lenguaje natural (inglés), es autodocumentado y ofrece grandes facilidades en el manejo de archivos, así como en la edición de informes escritos. Puede emplear términos comúnmente utilizados en los negocios.
PL/I
Fue creado a comienzos de los años sesenta por IBM para ser usado en sus equipos del sistema 360. Inspirándose en los lenguajes ALGOL, COBOL y FORTRAN
BASIC
El lenguaje BASIC fue diseñado por los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College (Estados Unidos) en 1965, con el objetivo principal de proporcionar a los principiantes un lenguaje fácil de aprender, como se indica en su nombre Beginner's All-purpose Symbolic Instruction Code (Código de instrucciones simbólico de propósito general para principiantes).
PASCAL
Fue creado por el matemático suizo Nicklaus Wirth en 1970, basándose en el lenguaje ALGOL, en cuyo diseño había participado en los años sesenta.
C
Este lenguaje fue creado en 1972 por Dennis Ritchie a partir del trabajo elaborado por su colega de los laboratorios Bell Telephone, Ken Thompson. Estos habían diseñado con anterioridad el sistema operativo UNIX, y su intención al desarrollar el lenguaje C fue la de conseguir un lenguaje idóneo para la programación de sistemas que fuese independiente de la maquina, con el cual escribir su sistema UNIX.
ADA
Es el último intento de obtener un único lenguaje para todo tipo de aplicaciones, e incluso los últimos avances de técnicas de programación.
Entre las características del lenguaje se encuentran la compilación separada, los tipos abstractos de datos, programación concurrente, programación estructurada, libertad de formatos de escritura, etc. Como principal inconveniente presenta su gran extensión. Los escritores lo llamaron inflexible e ineficiente, en tanto que sus favorecedores lo consideraban un gran avance en la tecnología del software.
FORTH
Lenguaje de cuarta generación, creado en 1970, es un lenguaje estructurado e interpretado de fácil ampliación y ofrece una alta funcionalidad en un espacio reducido. Es un lenguaje de alto nivel del cual derivan en la actualidad casi todos los lenguajes empleados en los robots.
LENGUAJE C++
Se pronuncia “ce plus plus”. Fue desarrollada por Bjarme Stroustrup en los Bell Laboratories a principios de la década de los 80. C++ introduce la programación orientada al objeto en C. Es un lenguaje extremadamente poderoso y eficiente. C++ es un super conjunto de C, para aprender C++ significa aprender todo de C, luego aprender programación orientada al objeto y el uso de éstas con C++.
DELPHI
Es un entorno de programación visual orientado a objetos para desarrollo rápido de aplicaciones (RAD) de propósito general, incluyendo aplicaciones cliente/servidor.
Delphi tiene las siguientes características:
·       Rendimiento - con el mejor y más rápido compilador del mundo.
·       Empresa e Internet - soluciones cliente y servicio
·       Desarrollo de aplicaciones rápidas (RAD).
·       Reusabilidad de componentes, un verdadero entorno orientado a objetos.
·       Manejo de Base de Datos escalables.
·       Arquitectura multinivel abierta y dimensionable.
·       Diseminación de información de base de datos en la Web a una gran velocidad.
JAVA
Es un lenguaje de programación para crear programas seguros, portátiles, orientados a objetos interactivos, para mejorar la entrega de información a través de Internet, etc.
JAVASCRIPT
Este lenguaje de programación originalmente fue llamado LIVESCRIPT, pero luego fue renombrado con el nombre de JAVASCRIPT, con la idea de capitalizar la fama de Java, lenguaje desarrollado por Sun Microsystems. Éste es un complemento ideal del lenguaje HTML, al permitir a la página realizar algunas tareas por si misma, sin necesidad de estar sobrecargando el servidor del cual depende; JAVASCRIPT es un lenguaje diseñado especialmente para ejecutarlo en internet.
HTML
El lenguaje HTML, sirve para realizar esas atractivas páginas Web. Se trata de un sistema de marcas que permite enlazar al mismo tiempo texto, sonidos y gráficos dentro del mismo documento, con otros dentro del servidor o incluso con otros servidores WWW. Es decir, es un editor para combinar textos, imágenes e incluso sonido y ahora también imágenes en movimiento. Es, en definitiva, la forma de manejar y presentar la información en la red.
El lenguaje HTML es el usado actualmente para escribir textos Hypermediales en el web.
Tres normas fundamentales:
1.- HTML simplemente texto
Lo primero es saber que un documento HTML es un archivo de texto simple, luego, se puede editar con cualquier editor de textos.
2.- No importan los Tabs ni los saltos de línea
Los intérpretes HTML no toman en cuenta las tabulaciones, los saltos de líneas ni los espacios en blanco extra
3.- Existen 3 caracteres especiales:
·       < menor que, se usa para indicar el comienzo de un comando HTML
·       >mayor que, se usa para indicar el término de un comando HTML.
·       & Ampersand, se usa para escribir caracteres especiales (símbolos matemáticos, comerciales, así como el signo menor que y el mayor que entre otros) en un documento.
PHP
Lenguaje que se acopla al HTML (páginas web) para definir procedimientos que ha de realizar el servidor de web, por ejemplo procesar un formulario, enviar o extraer datos de una base de datos (acoplándose también con un lenguaje de tipo SQL), enviar una u otra página web según determinadas condiciones prefijadas por el programador, etc.
SQL
Lenguaje desarrollado especialmente para facilitar la consulta de bases de datos (BD), acotando progresivamente la búsqueda (de ahí el nombre de "Sequential Query Language").
Existen hoy numerosas aplicaciones de administración de bases de datos que recurren al SQL (Las más conocidas, potentes - y caras - son Oracle e Informix).


ASP
EVOLUCION DE LOS LENGUAJES DE PROGRAMACIÓN
periodo
Influencias
Lenguajes
1950 - 55
Ordenadores primitivos
Lenguajes ensamblador


Lenguajes experimentales


de alto nivel
1956 - 60
Ordenadores pequeños,
FORTRAN

caros y lentos
ALGOL 58 y 60

Cintas magnéticas
COBOL

Compiladores e interpretes
LISP

Optimización del código

1961 - 65
Ord. grandes y caros
FORTRAN IV

Discos Magnéticos
COBOL 61 Extendido

Sistemas operativos
ALGOL 60 Revisado

Leng. de propósito general
SNOBOL


APL ( como notación sólo)
1966 - 70
Ordenadores de diferentes
PL/I

tamaños, velocidades, costes
FORTRAN 66 (estandard)

Sistemas de almacenamiento
COBOL 65 (estandard)

masivo de datos (caros)
ALGOL 68

S.O. multitarea e
SNOBOL4

interactivos
SIMULA 67

Compil. con optimización
BASIC

Leng. estandard ,
APL/360

flexibles y generales

1971 - 75
Micro ordenadores


Sistemas de almacenamiento
PASCAL

masivo de datos pequeños
COBOL 74

y baratos
PL /I

Progr. estructurada


Ingeniería del software


Leng. sencillos

1976 - 80
Ord. baratos y potentes
ADA

Sistemas distribuidos
FORTRAN 77

Prog. tiempo-real
PROLOG

Prog. interactiva
C

Abstracción de datos


Prog. con fiabilidad


y fácil mantenimiento


Todo este desarrollo de las computadoras y de los lenguajes de programación, suele divisarse por generaciones y el criterio que se determinó para determinar el cambio de generación no está muy bien definido, pero resulta aparente que deben cumplirse al menos los siguientes requisitos:
·       La forma en que están construidas.
·       Forma en que el ser humano se comunica con ellas.
Primera Generación
 En 1951 aparece la UNIVAC (NIVersAl Computer), fue la primera computadora comercial, que disponía de mil palabras de memoria central y podían leer cintas magnéticas, se utilizó para procesar el censo de 1950 en los Estados Unidos.

Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características:
·       Estas máquinas estaban construidas por medio de tubos de vacío.
·       Eran programadas en lenguaje de máquina. 1
Segunda Generación
Cerca de la década de 1960Las características de la segunda generación son las siguientes:
·       Están construidas con circuitos de transistores.
·       Se programan en nuevos lenguajes llamados lenguajes de alto nivel.
Tercera generación
En la década de los 1960
Las características de esta generación fueron las siguientes:
·       Su fabricación electrónica está basada en circuitos integrados.
·       Su manejo es por medio de los lenguajes de control de los sistemas operativos.
Cuarta Generación
Aquí aparecen los microprocesadores que es un gran adelanto de la microelectrónica,
En 1976 Steve Wozniak y Steve Jobs inventan la primera microcomputadora de uso masivo y más tarde forman la compañía conocida como la Apple que fue la segunda compañía más grande del mundo, antecedida tan solo por IBM; y esta por su parte es aún de las cinco compañías más grandes del mundo.

Quinta Generación
Japón lanzó en 1983 el llamado "programa de la quinta generación de computadoras", que pueden resumirse de la siguiente manera:
·       Procesamiento en paralelo mediante arquitecturas y diseños especiales y circuitos de gran velocidad.
·       Manejo de lenguaje natural y sistemas de inteligencia artificial.
El futuro previsible de la computación es muy interesante, y se puede esperar que esta ciencia siga siendo objeto de atención prioritaria de gobiernos y de la sociedad en conjunto.