sábado, 27 de julio de 2013

Lenguajes de Programación

Lenguajes de programación más conocidos en la historia de la computación 

Estos son algunos de los lenguajes de programación que han marcado la historia, conozcamos un poco acerca de ellos:



Lenguaje FORTRAN


Formula Trasnslating System, es un lenguaje de programación de alto nivel, está especialmente adaptado al cálculo numérico y a la computación científica, desarrollado por IBM en 1957 al el PC IBM 704, es uno de los lenguajes más populares en el área de la computación de alto rendimiento y es el lenguaje usado para programas que evalúan el desempeño (Benchmark) y el ranking de las supercomputadoras más rápidas del mundo. 



Lenguaje COBOL


COmmon Business-Oriented Language, Lenguaje Común Orientado a Negocios, con el objetivo de crear un lenguaje programación Universal para ser usado en cualquier computadora.

Inicio su creación  en el año 1959, duro poco más de 6 meses siendo aprobado en el año 1960. En la creación de este lenguaje, participaron fabricantes de computadoras y el departamento de defensa de los estados unidos.
Con la ayuda de los usuarios se añadieron varias funcionalidades, en el año 1968 salió la primera versión  ANSI del lenguaje.
Cobol fue dotado de capacidades de auto-documentación, gestión de archivos y datos para la época. Para comienzos de los años ochenta se fue quedando obsoleto respecto a los nuevos paradigmas de programación.

Pese a que muchas personas creen que el lenguaje Cobol está en desuso, la realidad es que casi todos los sistemas que requieren gran capacidad de procesamiento por lotes, tanto las entidades bancarias como otras empresas con sistemas Mainframes utilizan Cobol, esto permite garantizar la compatibilidad de los sistemas antiguos con los más modernos. 


Lenguaje Basic


Beginner's All-purpose Symbolic Instruction Code (Código simbólico de instrucciones de propósito general para principiantes. Es un lenguaje de alto nivel fue diseñado en el año 1964 en Estados Unidos con el objetivo de programar computadores para estudiantes y profesores, fue desarrollado inicialmente como una herramienta de enseñanza, Basic sigue siendo popular hasta el día de hoy en dialectos altamente modificados y en nuevos lenguajes como VisualBasic, o Gambas en GNU/Linux. El diseño de Basic se rigió por ser fácil de usar, ser un leguaje de propósito general (No Orientado), ser interactivo, provee mensajes de error claro y amigable, no requiere conocimiento avanzado para usarlo. 


Lenguaje PASCAL


Es un lenguaje desarrollado entre los años 1968 – 1969 y publicado en 1970, el objetivo principal fue facilitar el aprendizaje de programación a estudiantes, utiliza programación estructurada, Pascal se utilizó para construir aplicaciones de todo tipo, es un programa altamente rápido, el código está dividido en porciones fácilmente legibles. En el año 1980, reescribieron el compilador y se convirtió en Turbo Pascal para la IBM PC.



Lenguaje SQL


Sus siglas en inglés (structured query language), es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones, una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de obtener información de interés, así como hacer cambios en ella.
Los orígenes del lenguaje SQL están ligados a los de las bases de datos relacionales, en 1970 E.F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados.

Antes que el SQL, existió su predecesor SEQUEL. El SQL pasa a ser el leguaje por excelencia de los diversos sistemas de gestión de bases de datos relacionales, fue estandarizado en 1986 por el ANSI dando lugar a la primera versión Estándar de este leguaje  “SQL-86” o “SQL1”.

En la actualidad el Lenguaje SQL es el estándar de Facto de la mayoría de los SGBD comerciales. Actualmente las versiones de este lenguaje han sido:
1986 SQL-86, 1989 SQL-89, SQL-92, SQL:99, SQL:2003, SQL:2006, SQL:2008.

SQL es un lenguaje declarativo de alto nivel, que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros y no a registros individuales permite una alta productividad.






Lenguaje C


Es un lenguaje creado en 1972 en los laboratorios Bell como evolución del anterior lenguaje B. al igual que B, C es un lenguaje orientado a la implementación de sistemas operativos concretamente UNIX, C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas aunque también se utiliza para crear aplicaciones.

C es un lenguaje débilmente tipificado, de medio nivel pero dispone de estructuras de lenguajes de alto nivel.  La primera estandarización en ANSI fue en 1989, luego en 1990 fue ratificado como estándar ISO.

Uno de los objetivos de diseño del lenguaje C es que solo sean unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje sin que haga falta un soporte intenso en tiempo de ejecución.



Lenguaje ADA


Es un lenguaje orientado a objetos fue diseñado por encarga del Departamento de Defensa de los Estados unidos en el año 1970, es un lenguaje multipropósito orientado a Objetos y concurrente, pudiendo llegar desde la facilidad de Pascal hasta la flexibilidad de C++.

Ada se usa principalmente en entornos en los que se necesita una gran seguridad y fiabilidad como la defensa,  la aeronáutica, gestión de tráfico aéreo y la industria aeroespacial. El lenguaje se convirtió en un estándar de ANSI en 1997, ADA ha sido utilizado por la NASA en sistemas VAX.






Lenguaje C++


Fue diseñado a mediados de los años 1980 por BjarneStroustrop, la intención de su creación fue extender al exitoso lenguaje C con mecanismos que permitan la manipulación de objetos, en este sentido el Lenguaje C++ es un lenguaje Hibrido.

Actualmente existe un estándar denominado ISO C++ al que se han adherido la mayoría de fabricantes  de compiladores más modernos. Una particularidad del C++ es la posibilidad de redefinir los operadores y de poder crear nuevos tipos que se comporten como tipos fundamentales.

La expresión C++  significa incremento y se refiere a que C++ es una extensión de C.




Lenguaje MATLAB


MATrix LABoratory, "laboratorio de matrices", es una herramienta de software matemático que ofrece un entorno de desarrollo integrado IDE, con un lenguaje de programación propio Lenguaje M, está disponible para plataformas Unix, Windows y Mac Os X.

Matlab fue creado en 1984 con la idea de emplear paquetes de subrutinas escritas en Fortran. El lenguaje de programación fue creado en 1970 para proporcionar un sencillo acceso al software de matrices sin tener que usar Fortran.

Es un software muy usado en universidad, centros de investigación y desarrollo, su uso es generalizado en ámbitos académicos y empresariales.

Matlab es un programa de cálculo numérico orientado a matrices, por lo tanto, es más eficiente si se diseñan los algoritmos en términos de matrices y vectores.







Lenguaje Java


Fue originalmente desarrollado por James Gosling  de la empresa Sun Microsystem, la cual fue adquirida por compañía Oracle y publicado en 1995 como un componente fundamental de la plataforma JAVA propiedad de Sun Microsystems. Su sintaxis deriva mucho de C y de C++ pero tiene menos facilidades de bajo nivel que cualquiera de ellos.

A las aplicaciones construidas en Java se pueden ejecutar en cualquier máquina virtual de java sin importar la arquitectura de la computadora.

Java es el lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener pocas dependencias de implementación, su intención es que los desarrolladores escriban el programa una vez y lo ejecuten en cualquier dispositivo.

Java es a partir del 2012 uno de los lenguajes más populares en uso.



Fuentes de Información: 


  • Rosen, Saul, (editor), Programming Systems and Languages, McGraw-Hill, 1967
  • Sammet, Jean E.Programming Languages: History and Fundamentals, Prentice-Hall, 1969
  • Sammet, Jean E., "Programming Languages: History and Future", Communications of the ACM, of Volume 15, Number 7, July 1972

jueves, 25 de julio de 2013

Generaciones de las computadores 1951 - hasta la fecha

Generaciones del PC

La computadora u ordenador, no es un invento de alguien en particular, sino el resultado evolutivo de ideas y realizaciones de muchas personas relacionadas con áreas tales como la electrónica, la mecánica, los materiales semiconductores, la lógica, el álgebra y la programación.


Estos son algunos de los desarrollos durante la historia de las computadoras:

1952: Shannon desarrolla el primer ratón eléctrico capaz de salir de un laberinto, considerada la primera red neural.

1954: Se desarrolla el lenguaje de programación de alto nivel FORTRAN.

1960: Se desarrolla COBOL, el primer lenguaje de programación de alto nivel transportable entre modelos diferentes de computadoras.

1960Aparece ALGOL, el primer lenguaje de programación estructurado y orientado a los procedimientos.

1961Kenneth Iverson inventa el lenguaje de programación APL en IBM.

1964: Se desarrolla el lenguaje BASIC (el Dartmouth BASIC), John George Kemeny y Thomas Eugene Kurtz en el Dartmouth College.

1969: Nace el sistema operativo UNICS en los laboratorios Bell de AT&T por un grupo de empleados de dicho laboratorio, entre los que se encuentran Ken Thompson, Dennis Ritchie y Douglas Mcllroy.

1970: Se publica el primer modelo de base de datos relacional, por E.F. Codd.

1970: El primer cable de fibra óptica fue comercialmente producido por Corning Glass Works, Inc.

1972: Ken Thompson y Dennis M. Ritchie crean el lenguaje de programación C en los Laboratorios Bell.

1975: Se funda la empresa Microsoft.

1981: Apple presenta el primer computador personal que se vende a gran escala, el apple II.

1986: El lenguaje SQL es estandarizado por ANSI.

1990: Tim Berners-Lee ideó el hipertexto para crear el World Wide Web (www) una nueva manera de interactuar con Internet. También creó las bases del protocolo de transmisión HTTP, el lenguaje de documentos HTML y el concepto de los URL.

1990: Guido van Rossum crea el lenguaje de programación Python.

1991: Comienza a popularizarse la programación orientada a objetos.

1994: Es diseñado el PHP, originalmente en lenguaje Perl, seguidos por la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf.

1999: Se publica la primera versión de MSN Messenger.

2001: Microsoft desarrolla, como parte de su plataforma .NET, el lenguaje de programación C#, que después fue aprobado como un estándar por la ECMA e ISO.

Primera Generación (1951 - 1958)

Las computadoras de la primera Generación emplearon bulbos para procesar información. Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas.


Eckert y Mauchly contribuyeron al desarrollo de computadoras de la 1era Generación formando una compañía privada y construyendo UNIVAC I, que el Comité del censo utilizó para evaluar el censo de 1950. La IBM tenía el monopolio de los equipos de procesamiento de datos a base de tarjetas perforadas

La computadora más exitosa de la primera generación fue la IBM 650, de la cual se produjeron varios cientos. Esta computadora que usaba un esquema de memoria secundaria llamado tambor magnético, que es el antecesor de los discos actuales. 

Segunda Generación (1959 - 1964)

El invento del transistor hizo posible una nueva generación de computadoras, más rápidas, más pequeñas y con menores necesidades de ventilación, utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el almacenamiento primario. Estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales podían almacenarse datos e instrucciones.

Los programas de computadoras también mejoraron. El COBOL (COmmon Busines Oriented Languaje) desarrollado durante la 1era generación estaba ya disponible comercialmente, este representa uno de los más grandes avances en cuanto a portabilidad de programas entre diferentes computadoras; es decir, es uno de los primeros programas que se pueden ejecutar en diversos equipos de cómputo después de un sencillo procesamiento de compilación. Los programas escritos para una computadora podían transferirse a otra con un mínimo esfuerzo.

Estas son algunas características de la segunda generación:

  • Se mejoraron los programas de computadoras que fueron desarrollados durante la primera generación.
  • Se desarrollaron nuevos lenguajes de programación como COBOL y FORTRAN, los cuales eran comercialmente accsesibles.
  • La marina de los Estados Unidos desarrolla el primer simulador de vuelo, "Whirlwind I".


Algunas de las computadoras que se construyeron ya con transistores fueron la IBM 1401, las Honeywell 800 y su serie 5000, UNIVAC M460, las IBM 7090 y 7094, NCR 315, las RCA 501 y 601, Control Data Corporation con su conocido modelo CDC16O4, y muchas otras, que constituían un mercado de gran competencia, en rápido crecimiento. En esta generación se construyen las supercomputadoras Remington Rand UNIVAC LARC, e IBM Stretch (1961).


 


Tercera Generación (1964 - 1971)

Las computadoras de la tercera generación emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrónicos, en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas y eran energéticamente más eficientes.

Antes del advenimiento de los circuitos integrados, las computadoras estaban diseñadas para aplicaciones matemáticas o de negocios, pero no para las dos cosas. Los circuitos integrados permitieron a los fabricantes de computadoras incrementar la flexibilidad de los programas, y estandarizar sus modelos.

 La IBM 360 una de las primeras computadoras comerciales que usó circuitos integrados, podía realizar tanto análisis numéricos como administración ó procesamiento de archivos. 

Se empiezan a utilizar los medios magnéticos de almacenamiento, como cintas magnéticas de 9 canales, enormes discos rígidos, etc. Algunos sistemas todavía usan las tarjetas perforadas para la entrada de datos, pero las lectoras de tarjetas ya alcanzan velocidades respetables.



Algunas características relevantes de esta generación son:
  • Emerge la industria del "software".
  • Surge la multiprogramación.
  • Las computadoras pueden llevar a cabo ambas tareas de procesamiento o análisis matemáticos.

Cuarta Generación (1971 - 1981)


Dos mejoras en la tecnología de las computadoras marcan el inicio de la cuarta generación: el reemplazo de las memorias con núcleos magnéticos, por las de chips de silicio y la colocación de muchos más componentes en un Chip: producto de la microminiaturización de los circuitos electrónicos. El tamaño reducido del microprocesador y de chips hizo posible la creación de las computadoras personales (PC).

Esta generación de computadoras se caracterizó por grandes avances tecnológicos realizados en un tiempo muy corto. En 1977 aparecen las primeras microcomputadoras, entre las cuales, las más famosas fueron las fabricadas por Apple Computer, Radio Shack y Commodore Busíness Machines. IBM se integra al mercado de las microcomputadoras con su Personal Computer (figura 1.15), de donde les ha quedado como sinónimo el nombre de PC, y lo más importante; se incluye un sistema operativo estandarizado, el MS- DOS (MicroSoft Disk Operating System).



Los sistemas operativos han alcanzado un notable desarrollo, sobre todo por la posibilidad de generar gráficos a gran des velocidades, lo cual permite utilizar las interfaces gráficas de usuario (Graphic User Interface, GUI), que son pantallas con ventanas, iconos (figuras) y menús desplegables que facilitan las tareas de comunicación entre el usuario y la computadora, tales como la selección de comandos del sistema operativo para realizar operaciones de copiado o formato con una simple pulsación de cualquier botón del ratón (mouse) sobre uno de los iconos o menús.


Quinta Generación (1982 - 1989)

Cada vez se hace más difícil la identificación de las generaciones de computadoras, porque los grandes avances y nuevos descubrimientos ya no nos sorprenden como sucedió a mediados del siglo XX. Hay quienes consideran que la cuarta y quinta generación han terminado, y las ubican entre los años 1971-1984 la cuarta, y entre 1984-1990 la quinta. Ellos consideran que la sexta generación está en desarrollo desde 1990 hasta la fecha.

Hay que mencionar dos grandes avances tecnológicos, que sirvan como parámetro para el inicio de dicha generación: la creación en 1982 de la primera supercomputadora con capacidad de proceso paralelo, diseñada por Seymouy Cray, quien ya experimentaba desde 1968 con supercomputadoras, y que funda en 1976 la Cray Research Inc.

Las computadoras de esta generación contienen una gran cantidad de microprocesadores trabajando en paralelo y pueden reconocer voz e imágenes. También tienen la capacidad de comunicarse con un lenguaje natural e irán adquiriendo la habilidad para tomar decisiones con base en procesos de aprendizaje fundamentados en sistemas expertos e inteligencia artificial.

El propósito de la Inteligencia Artificial es equipar a las Computadoras con "Inteligencia Humana" y con la capacidad de razonar para encontrar soluciones.  Otro factor fundamental del diseño, la capacidad de la Computadora para reconocer patrones y secuencias de procesamiento que haya encontrado previamente, (programación Heurística) que permita a la Computadora recordar resultados previos e incluirlos en el procesamiento, en esencia, la Computadora aprenderá a partir de sus propias experiencias usará sus Datos originales para obtener la respuesta por medio del razonamiento y conservará esos resultados para posteriores tareas de procesamiento y toma de decisiones. 



Sexta Generación (1990 - hasta la fecha)

Las computadoras de esta generación cuentan con arquitecturas combinadas Paralelo / Vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo; se han creado computadoras capaces de realizar más de un millón de millones de operaciones aritméticas de punto flotante por segundo (teraflops); las redes de área mundial (Wide Area Network, WAN) seguirán creciendo desorbitadamente utilizando medios de comunicación a través de fibras ópticas y satélites, con anchos de banda impresionantes. Las tecnologías de esta generación ya han sido desarrolla das o están en ese proceso. Algunas de ellas son: inteligencia / artificial distribuida; teoría del caos, sistemas difusos, holografía, transistores ópticos, etcétera.