Gladys Marilu Rivas Fajardo

Gladys Marilu Rivas Fajardo
Ingenieria en Sistemas
Universidad Mariano Galvez
Seccion "A"
Carné: 5190-11-5333

viernes, 13 de mayo de 2011

HISTORIA DE LAS COMPUTADORAS

Evolución Histórica de las Computadoras

El ábaco.- Es probable que el ábaco haya sido el primer dispositivo mecánico de contar. Se ha podido determinar que su antigüedad se remonta cuando menos a 5,000 años.
La Pascalina (1623 - 1662).- Blaise Pascal, Filósofo y matemático francés inventó la primer máquina mecánica de sumar, se le dio el nombre de pascalina y usaba ruedas de conteo impulsadas por engranes para sumar. Aún cuando el logro de pascal fue apreciado en toda europa, la pascalina fue un estrepitoso fracaso financiero, ya que pascal era el único que podía reparar ésta máquina, además que en esa época el trabajo en cálculos aritméticos costaba menos que la máquina.
Charles Babbage (1792 - 1662).- Avanzó el estado de Hardware de cálculo al inventar una máquina de diferencias, capaz de calcular tablas matemáticas, en 1834 mientras trabajaba en mejoras de esa máquina concibió la idea de una máquina analítica. Esta era en esencia una computadora de aplicación general. Los detallados diseños de Babbage describían las características de la Computadora Electrónica moderna. Babbage ya tenía los conceptos de memoria, impresoras, tarjetas perforadas y el control secuencial de programas.
Primera Tarjeta Perforada.- El telar para tejido inventado en 1801, y aún en uso se controla por medio de tarjetas perforadas. Lo inventó el francés JOSE MARIE ( 1752-1834). Se hacen perforaciones estratégicamente situados en tarjetas y éstas se colocan en secuencia para indicar un diseño especifico de tejido, Babbage intentó aplicar el concepto de tarjeta perforada a su máquina analítica.
En 1843 Lady Ada Augusta, sugirió que podrían prepararse las tarjetas para dar instrucciones a la máquina de babbage, a fin de que repitiera ciertas operaciones. Debido a ésta sugerencia algunos la consideran la primera programadora, ya que desconocemos has que punto se implantó su idea.
Surgimiento del procesamiento automatizado de datos.-La oficina del censo de E.U.A. no completó el censo de 1880 sino hasta 1888. La administración de la oficina llegó a la conclusión de que en poco tiempo el censo de 10 años requeriría mas de 10 años en realizarse. La oficina comisionó a Herman Hollerith, especialista en estadística para que aplicara sus conocimientos en el empleo de tarjetas perforadas y realizar el censo de 1890 con procesamiento de tarjetas perforadas y la máquina tabuladora de tarjetas perforadas de Hollerith, el censo concluyó en apenas dos años. Así empezó a surgir el procesamiento automatizado de datos.
ENIAC.- Reconocida como la primer computadora digital totalmente eléctrica y de uso general, marcó el inicio de la 1era generación de computadoras, podía realizar cálculos 1,000 veces mas rápidos que sus predecesoras electromecánicas. Pesaba 30 toneladas , ocupaba un espacio de 1,500 pies cuadrados y tenía mas de 180,000 bulbos y tubos de vacío.
Código Binario.- Éste es el 1pio fundamental que respalda el diseño de las computadoras digitales. Toda la información ( incluyendo las instrucciones) se convierte en números binarios formados por cadenas de los dígitos binarios O y 1, por ejemplo, cuando se oprime la tecla A en un CPU, ésta genera de manera automática un byte, es decir un número binario de 8 bits de longitud.
Bit = 1, O 1010 = 10
Byte = 8 bits 2 (3) 2 ( 2) 2( 1) 2 ( 0) 8 +2 = 10
Generaciones de las computadoras
1era Generación ( 1946-1959).- Se caracterizó por el aspecto mas prominente de la ENIAC, tubos de vacío durante la década de 1950, se construyeron varias otras notables computadoras, contribuyendo cada una con avances significativos al perfeccionamiento de las computadoras. Estos avances incluyeron aritmética binaria, acceso aleatorio y el concepto de programas almacenados.
2da Generación ( 1960- 1963).- Para la mayoría de las personas la invensión del transistor significó la existencia de pequeños radios portátiles. Para lo relacionado con los negocios del procesamiento de datos, marcó el inicio de la 2da generación de computadoras. Gracias al transistor, hubo computadoras mas poderosas, mas confiables y menos costosas que ocupaban menos espacio.
Características predominantes de esta generación:
·         El transistor
·         Compatibilidad limitada dentro de la línea de computadoras de un fabricante. Por lo general los programas escritos para una computadora requerían de modificaciones antes de que pudieran correr en una computadora diferente.
·         No existía compatibilidad entre fabricantes
·         Orientación constante al procesamiento secuencial en cinta.
·         Lenguajes simbólicos de programación de bajo nivel
·         Procedimientos por lotes
3era Generación ( 1964-1967).- Los circuitos integrados hicieron por la 3era generación los que los transistores por la 2da. Los problemas de compatibilidad de las computadoras de la 2da generación, quedaron casi eliminados en las de la 3era.
A mediados de la década de la 60´s, resultó evidente que casi toda instalación de computadoras podía esperar un rápido crecimiento.
Una importante característica de las computadoras de la 3era generación fue la compatibilidad con equipo mayor, lo cual significaba que una compañía podía adquirir una computadora a un vendedor y mejorar después cambiando una computadora mas poderosa sin tener que volver a diseñar ni programar los sistemas de información.
Las computadoras de la 3era., trabajan tan rápido que permiten corre mas de un programa al mismo tiempo ( multiprogramación) .
Fueron utilizados por 1era vez procesadores fabricados con circuitos integrados. Esta generación también presentó nuevas tecnologías en software de sistema, los sistemas operativos y los sistemas de manejo de base de datos.
4ta Generación ( 1970-1989) .- Es mas evolucionaria que revolucionaria, iniciando hacia el último cuarto de la década de 1970, la lógica de ésta computadoras, así como sus memorias, fueron construidas casi por completo a partir de circuitos integrados que contienen cantidades muy grandes de componentes electrónicos. La 4ta g. Comprende una amplia integración de pequeñas y grandes computadoras, unidas en medio de procesamiento distribuido y de automatización de oficinas. Esta generación se integra al usuario en el medio ambiente de la computadora, mediante lenguajes informales como los lenguajes de consulta, los generadores de reportes y los programas denominados amables con el usuario y la aparición del microprocesador.
5ta Generación .- Queda formal/ e establecida durante la década de los 90´s , las fibras ópticas, los vídeo discos y otras tecnologías que por el momento se encuentran en laboratorios.

CLASIFICACION DE UNA COMPUTADORA

CLASIFICACIÓN DE COMPUTADORAS
Las computadoras pueden clasificarse de acuerdo a:

  Tipo de Datos
·         Digitales.- Dispositivos de cálculo que procesan datos concretos, trabajan directamente contando números ( digitales) que representan cifras, letras y otros símbolos especiales.
·         Analógicas.- Ó analíticas, no calculan concretamente números, en cambio lo hacen con variables que están medidas en una escala y son registradas con un determinado grado de precisión. ( no tan exactas como digitales )
·         Híbridas.- Las características deseables de las máquinas analógicas y digitales son combinadas algunas veces para crear este tipo de sistemas de computo.
  Por Su Capacidad
·         Microcomputadoras.- Son las computadoras mas pequeñas,, menos costosas y mas populares en el mercado.
·         Minicomputadoras.- son mas pequeñas y más fáciles de mantenerse que una maxicomputadora ( MainFrame). Fueron diseñadas para tareas específicas como el manejo de la comunicación de datos, procesamiento de palabras y aplicaciones de multiusuarios.
·         Maxicomputadoras.- son grandes y rápidos sistemas, capaces de controlar varios cientos de dispositivos de entrada y salida al mismo tiempo. Son usadas en universidades, hospitales, etc. Por su gran capacidad de pensamiento.
·         Supercomputadoras.- Son las más rápidas y costosas computadoras, pueden correr varios cálculos simultaneamente, procesando en un minuto lo que tomaría semanas o meses en una PC.
TERMINOS COMPUTACIONALES
Buffer.- Area de almacenamiento que conserva información temporal/e.
En los periféricos, los buffers son unidades de memoria reservadas para conservar informaciones intercambiadas con la computadora.
Bus.- Ruta ( canal) común entre dispositivos de hardware: el término bus, puede referirse a una ruta interna común entre componentes dentro de una computadora o una red de comunicaciones que utilice un canal común ( cable, alambre etc.) entre todas las terminales y computadoras.
Lo mas común es el empleo de dos bus de datos denominados bus de direcciones y bus de datos. El bus de direcciones se utiliza para seleccionar la localidad de los datos y el de datos para su trasferencia.
Comando.- Directivas del usuario; los comandos son elementos del lenguaje dentro del software.
Protocolo de Comunicaciones.- Un protocolo es un conjunto de características del software, hardware y procedimientos que permiten a un sistema ( computadora terminal) intercambiar mensajes con otro mediante una red de comunicaciones.
Puerto.- Interfase de canal de comunicaciones; el número de puertos en la computadora, determina el nº de canales de comunicación físicos que pueden conectarse.
Paralelo.- Las interfases paralelas son utilizadas en los canales multilínea; un byte transferido a través de un canal de interfaz paralelo necesita 8 líneas ( trayectorias) una para cada bit.
Serial .- Transmisión sobre un canal de una sola línea. En la trasmisión en serie los bits van uno después de otro

ARQUITECTURA DE UNA COMPUTADORA

ARQUITECTURA BASICA DE LAS COMPUTADORAS
Una PC tiene todos los componentes funcionales que se encuentran en los sistemas mas grandes, está organizada para realizar las funciones de entrada, de almacenamiento, aritmética-lógica, control y salida. Algunas microcomputadoras de aplicación especial pueden reunir todas éstas aplicaciones dentro de una pantalla de silicio, pero las PC´s son por lo regular mas grandes y utilizan varias pastillas montadas en una tarjeta 1pal de circuito o tarjeta matriz .
Existen varias pastillas de memoria de acceso directo ( RAM) que se encarga de la función de almacenamiento primario. General/e se utilizan pastillas de memoria de solo lectura (ROM) para almacenar permanente/e datos o instrucciones programadas. Otras pastillas adicionales realizan funciones de cronometría, entrada/salida y otras funciones de apoyo.
Los diversos componentes de la tarjeta 1pal de circuitos de la unidad de proceso de la PC están conectadas por un conjunto de líneas paralelas conductoras de la electricidad llamada BUSES. Se utilizan diversos conjuntos de éstas líneas de conexión internas para diferentes propósitos y reciben distintos nombres. Estos buses internos constituyen la interconexión eléctrica entre los componentes del procesador y los dispositivos de interfaz que se utilizan con el equipo periférico.
Así, las PC´s están divididas en dos partes esenciales, las unidades de entrada y salida del procesador.
La 1era se refiere a los medios de comunicación con el hombre, y la 2da está dividida a su vez en tres unidades
  La de Almacenamiento de datos e instrucciones llamada de memoria , la cual ha evolucionado al grado de que en la actualidad se están estructurando otros medios como plasma y neuronas.
  El procesador, el cual también es conocido como CPU
  La unidad Aritmética que es donde se ejecutan las operaciones aritméticas y lógicas.
Las microcomputadoras están diseñadas y construidas con varios microprocesadores, siendo uno el central y los otros sirven para controlar todas y cada una de las unidades periféricas que se agregan al computador, también sirven para darle mayor velocidad a ciertas operaciones.
Componentes de un sistema computacional
Se manejan conceptos de una computadora:
Software.- Este concepto incluye aspectos tales como el sistema operativo de cada computadora, lenguajes de control, programas y todo tipo de rutinas o instrucciones necesarias para la operación de la máquina.
Hardware.- Representa el aspecto físico, partes y unidades qque comprende la computadora. Los básicos son:
  CPU ( unidad central de proceso)
  Unidades de entrada o de proceso
  Unidades de Salida
  Unidades de entrada/ salida
La función de unidad de proceso ( cpu) es donde se desarrollan propiamente todos los procesos en forma interna y está compuesta por 3 partes:
·         Memoria de almacenamiento primario
·         La unidad de control
·         La unidad aritmético- lógica
Memoria de almacenamiento primario­.- Tanto datos como instrucciones enviadas por la unidad de entrada deben ser almacenados en la memoria o almacenamiento primario, antes de que puedan ser sometidos a cualquier proceso.
El almacenamiento 1mario lo forman posiciones de memoria llamadas byetes, en cada byte puede almacenarse un carácter proveniente de un registro o instrucciónde un programa; a cada byta lo forman a su vez un conjunto de bites, éstos son impulsos magnéticos producidos para configurar un carácter leído.
Byte.- medida de capacidad de 8 bits
Bit.- es la unidad de información que se puede representar electrónicamente.
La memoria puede ser RAM ( random acces memory) o ROM ( read only memory); (memoria de acceso aleatorio o 1mario )(disco duro.. disquette ... alm. Secundario).
Unidad Aritmético Lógica.- Es la sección del CPU donde se desarrolla todo tipo de operaciones, previamente los datos almacenados en la memoria son situados en ésta área por la unidad de control y de acuerdo con las instrucciones de un programa ( también almacenadas en memoria) , la Unit. Arit. Logica lleva a cabo las operaciones de comparación , movimiento y cálculos que se producen como consecuencia, posteriormente los resultados pasa a la memoria de salida.
La Unidad de Control.- Ésta sección del CPU controla todas las unidades del sistema y coordina las funciones de las unidades de entrada para el almacenamiento de los datos; almacena éstos en la memoria o almacenamiento 1mario; reallizadas las funciones de la unidad art. Lógica, coloca los resultados nueva/e en el almacenamiento y prepara las unidades de salida.
Unidades de Entrada.- Son las unidades que pueden leer los datos en diferentes formas en que éstos se encuentran dentro de los archivos.
La Unidad de Salida.- Son las máquinas que reciben la información procesada en el CPU y la traduce a un medio legible para el usuario.
Estas máquinas o dispositivos al igual que los de entrada, forman parte del equipo periférico de la computadora.
Organización de la información
Registro.- Es una colección de campos.
Campo.- colección de caracteres
Carácter.- 8 bits
Registro nombre xxxxxxxxx dirección xxxxxxx tel xxxxxxxx cp xxxxxxx ( x = carácter)
Archivo.- Colección de registros
Estructura jerárquica de directorios
Esto es aplicable a cualquier sistema operativo:
C:/ directorio raíz ( padre)
------------------------------------subdirectorio (dir) hijo .............1) 2) 3) .......
------------------------------------subdirectorio ( dir) hijo
clasificación del software
se clasifica en dos:
·         para uso particular ( sistemas hechos) empresa en particular
·         para uso en general ( paquetería)

LENGUAJE DE PROGRAMACION


 ¿Qué es un lenguaje de programación?.

Un conjunto de sintaxis y reglas semánticas que definen  los programas del computador. Es una técnica estándar de comunicación para entregarle instrucciones al computador. Un lenguaje le da la capacidad al programador de especificarle al computador, qué tipo de datos actúan y que acciones tomar bajo una variada gama de circunstancias, utilizando un lenguaje relativamente próximo al lenguaje humano.
Un programa escrito en un lenguaje de programación necesita pasar por un proceso de compilación, interpretación o intermedio, es decir, ser traducido al lenguaje de máquina para que pueda ser ejecutado por el ordenador.

Los lenguajes de programación pueden ser clasificados de acuerdo a diversos criterios:

   Lenguajes interpretados (Interpretes) como Basic, Dbase.
   Lenguajes compilados (Compiladores) como C, C++, Clipper.
   Lenguajes interpretados con recolectores de basura (Maquina Virtual) como Smalltalk, Java, Ocaml.
   Lenguajes Scripts (Motor de ejecución) como Perl, PhP.

Clasificación de los Lenguajes de Programación


Declarativos


Se les conoce como lenguajes declarativos en ciencias computacionales aquellos lenguajes de programación en los cuales se le indica a la computadora que es lo que se desea obtener o que es lo que se esta buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Algunos ejemplos de lenguajes declarativos son el Datatrieve, SQL y las expresiones regulares.

Siglas de Structured Query Language (Lenguaje Estructurado de Consultas). Es un lenguaje declarativo que aúna características del Álgebra y el Cálculo Relacionales que nos permite lanzar consultas contra una Base de Datos para recuperar información de nuestro interés, almacenada en ella.

Ejemplos de consultas SQL:
  SELECT Nombre From Tabl_fich_personales where Edad >=18;
  Muestra el Campo "Nombre" de todos los individuos mayores de 18 años de la tabla
  "Tabl_fich_personales"

El concepto de expresiones regulares (Regular expressions  en inglés) se refiere a una familia de lenguajes compactos y potentes para la descripción de conjuntos de cadenas de caracteres. Numerosos editores de texto y otras utilidades (especialmente en el sistema operativo UNIX), como por ejemplo sed y awk, utilizan estos lenguajes para buscar ciertas estructuras en el texto y, por ejemplo, remplazarlas con alguna otra cadena de caracteres.

Imperativos


En ciencias de la computación se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cómo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo:
  Paso 1, solicitar número.
  Paso 2, multiplicar número por dos.
  Paso 3, imprimir resultado de la operación.
  Paso 4, etc,
Algunos ejemplos de lenguajes imperativos son: BASIC, C, C++, Java, Clipper, Dbase, C# y Perl.

Generaciones de los Lenguajes


Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.

Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las siguientes:

Primera generación: Los primeros ordenadores se programaban directamente en código binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.

Segunda generación: Los lenguajes simbólicos, así mismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.

Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.

Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.

Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.

 

Historia y Características de algunos Lenguajes


Ada

Lenguaje de programación diseñado por Jean Ichbiah de Cii Honeywell Bull por encargo del Departamento de Defensa de los EE.UU. para unificar el uso de los lenguajes de programación en los proyectos que le fuesen entregados. Es un lenguaje diseñado con la seguridad en mente y es multipropósito, pudiendo llegar desde la facilidad de Pascal a la flexibilidad de C pero con una filosofía orientada a la reducción de errores.
Su nombre conmemora a la condesa Ada Lovelace, hija de Lord Byron, a quien se considera la primera programadora de la Historia, por su relación con Charles Babbage, creador de la máquina analítica. El Departamento de Defensa de los Estados Unidos (DoD) y los ministerios equivalentes de varios países europeos exigen la utilización de este lenguaje en los proyectos realizados bajo su patrocinio. También es usado en otros entornos en los que también se necesita una gran seguridad como la gestión del tráfico aéreo (en empresas como Boeing o la española Indra).
 
Smalltalk
Diseñado por Alan Kay durante los años setenta en el Palo Alto Reasearch Institute de Xerox (conocido como Xerox Parc). Smalltalk era un elemento de la primera computadora personal con interfaz gráfica el "Alto" (que nunca fue llevado al mercado pero de cuyas ideas nació el Macintosh).
Smalltalk es considerado el primero de los lenguajes orientados a objetos (OOP). En Smalltalk TODO es un objeto.. aun los números enteros. Smalltalk se basó en ideas de Simula (un lenguaje de simulaciones).
.

Java

Plataforma de software desarrollada por Sun Microsystems. Esta plataforma ha sido desarrollada de tal manera que los programas desarrollados para ella puedan ejecutarse de la misma forma en diferentes tipos de arquitecturas y dispositivos computacionales.
La plataforma Java consta de tres partes:
  • El lenguaje de programación
  • Máquina virtual de Java
  • API Java


C Más Más

C++ (pronunciado "C plus plus" o "C más más", por algunos programadores de habla hispana) es un lenguaje de programación, diseñado a mediados de los ochenta, por Bjarne Stroustrup, como extensión del lenguaje de programación C.
Es un lenguaje híbrido, que se puede compilar y resulta más sencillo de aprender para los programadores que ya conocen C. Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes como ROOT (http://root.cern.ch/) (enlace externo). Las principales características del C++ son abstracción (encapsulación), el soporte para programación orientada a objetos (polimorfismo) y el soporte de plantillas o programación genérica (Templates). Las plantillas se las define de la manera siguiente: template <parámetros> declaración X y se las instancia con X<parámetros>.
Pero añade otra serie de propiedades que se encuentran más difícilmente en otros lenguajes de alto nivel:
  • Posibilidad de redefinir los operadores
  • Indentificación de tipos en tiempo de ejecución (RTTI)
El nombre C++ fue propuesto por Rick Masciatti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En el C++, "C++" significa "uno más de C" y se refiere a que C++ es una extensión del C.
Algunos dicen que "C++" todavía significa "C", porque "++" en este caso es el operador de la postincrementación, es decir, aumenta el valor de la expresión a la que se refiere, después, en las instrucciones siguientes. Por esto el valor de la expresión en este momento permanece original.

Pascal

Pascal es un lenguaje de programación de alto nivel, desarrollado por Niklaus Wirth. Se convirtió en uno de los lenguajes extensamente usados en lo cursos de introducción a la programación, pues fue bien recibido como lenguaje de enseñanza para estudiantes universitarios. Pascal es un lenguaje con técnicas de programación estructurada, dicha programación hace programadores disciplinados.
Sus primeras versiones datan de 1970. Es un lenguaje de programación estructurado creado por Niklaus Wirth, un profesor del Instituto tecnológico de Zurich, que lo creó pensando en un lenguaje didáctico que enseñase la programación como "una disciplina sistemática basada en determinados conceptos fundamentales". Estos conceptos más tarde se tornarían motivo de controversia entre los que creen que este lenguage tiene utilidad limitada a los medios academicos, como Brian W. Kernighan.
A partir de los años setenta se convirtió en el sucesor de ALGOL en el entorno universitario. Pascal permite construir programas muy legibles.

Delphi
Delphi es un entorno de programación visual basado en una versión moderna del lenguaje de programación Pascal. Como entorno visual, la programación en Delphi consiste en diseñar las pantallas de que se compone el programa colocando todos sus componentes (botones, campos de texto, etc.), asociando después código a ellos. El lenguaje utilizado por Delphi es una extensión de Pascal denominada Object Pascal, que básicamente añade al Pascal tradicional soporte para la programación orientada a objetos (habitualmente llamada POO).
 

Ocaml

El lenguaje Objective CAML, también llamado Ocaml u O'Caml, es un lenguaje de programación avanzado de la familia de los lenguajes ML, desarrollado y distribuido por el INRIA en Francia. Ocaml admite los paradigmas de programación imperativa, programación funcional y programación orientada a objetos.
Ocaml nace de la evalución del lenguaje CAML (http://www.pps.jussieu.fr/~cousinea/Caml/caml_history.html), abreviación de Categorical Abstract Machine Language, al integrarse la programación con objetos.
El código fuente en Ocaml se compila en código para una máquina virtual o en código nativo para diferentes arquitecturas que incluyen IA32, IA64, PowerPC, AMD64, Sparc, Alpha, HP/PA, MIPS y StrongARM. Este último compilador produce código comparable en eficiencia al producido por compiladores como el del lenguaje C/C++ (http://shootout.alioth.debian.org/).
Ocaml dispone de un análisis de tipos estático con inferencia de tipos, valores funcionales de primera clase, polimorfismo paramétrizado, llamada por patrones, manejo de excepciones, recolección de basura y otras características avanzadas

Haskell

Hacia 1950, John McCarthy diseñó el lenguaje LISP (List Processing) que utilizaba las listas como tipo básico y admitía funciones de orden superior. Este lenguaje se ha convertido en uno de los lenguajes más populares en el campo de la inteligencia Artificial. Sin embargo, para que el lenguaje fuese práctico, fue necesario incluir características propias de los lenguajes imperativos como la asignación destructiva y los efectos laterales que lo alejaron del paradigma funcional. Actualmente ha surgido una nueva corriente defensora de las características funcionales del lenguaje encabezada por el dialecto Scheme, que aunque no es puramente funcional, se acerca a la definición original de McCarthy.

Lisp

Después de Fortran es el segundo lenguaje de programación de alto nivel. LISP fue creado por John McCarthy y sus colaboradores en el MIT.
El elemento fundamental en LISP es la lista, en el sentido más amplio del término, pues tanto los datos como los programas son listas. De ahí viene su nombre, pues LISP es un acrónimo de "LIStProcessing".
Los lenguajes de este tipo se llaman "aplicativos" o "funcionales", porque se basan en la aplicación de funciones a sus datos.
En LISP se distinguen dos tipos fundamentales de elementos:
  • Átomos: son datos elementales y pueden pertenecer a varios tipos: números, caracteres, cadenas de caracteres y símbolos.
  • Listas: son secuencias de átomos o de listas encerradas entre paréntesis. Además, existe una lista especial, "nil", que es la lista nula, que no tiene ningún elemento.
En LISP, una función se expresa como una lista.
Algunas de las funciones predefinidas de LISP tienen símbolos familiares (+ para la suma, * para el producto), pero otras son más exóticas, especialmente dos que sirven precisamente para manipular listas, descomponiéndolas en sus componentes.
Sus nombres ("car" y "cdr") son un poco extraños, reliquias de tiempos pasados y de la estructura de los ordenadores de segunda generación, "car" devuelve la cabeza de una lista y "cdr" su cola o resto.
LISP sigue una filosofía de tratamiento no-destructivo de los parámetros, de modo que la mayoría de las funciones devuelven un lista resultado de efectuar alguna transformación sobre la que recibieron, pero sin alterar esta última.
Uno de los motivos por los que LISP es especialmente adecuado para la IA es el hecho de que el código y los datos tengan el mismo tratamiento (como listas); esto hace especialmente sencillo escribir programas capaces de escribir otros programas según las circunstancias.
 
Prolog
La Programación Lógica es un Paradigma de Programación basado en la Lógica. Los programas construidos un lenguaje lógico están construidos únicamente por expresiones lógicas, es decir, que son ciertas o falsas, en oposición a un expresión interrogativa (una pregunta) o expresiones imperativas (una orden). Un ejemplo de lenguaje lógico es Prolog (Programación lógica).

Perl
Perl (Practical Extraction and Report Language) es un lenguaje de programación desarrollado por Larry Wall (lwall at netlabs.com) a partir otras herramientas de UNIX como son: ed,grep,awk,c-shell, para la administración de tareas propias de sistemas UNIX.
No establece ninguna filosofía de programación concreta. No se puede decir que sea orientado a objetos, modular o estructurado aunque soporta directamente todos estos paradigmas y su punto fuerte son las labores de procesamiento de textos y archivos.
No es ni un compilador ni un intérprete, esta en un punto intermedio, cuando mandamos a ejecutar un programa en Perl, se compila el código fuente a un código intermedio en memoria que se optimiza como si se fuera a elaborar un programa ejecutable pero es ejecutado por un motor, como si se tratase de un interprete.
Lenguaje de programación basado en scripts portable a casi cualquier plataforma. Es muy utilizado para escribir CGIs.
 
PHP
PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje de programación de scripts, concebido en el tercer trimestre de 1994 por Rasmus Lerdorf. Se utiliza principalmente para la programación de CGIs para páginas web, destaca por su capacidad de ser embebido en el código HTML. Además, existe un compilador comercial (el Zend Optimizer).

PHP/FI
El analizador sintáctico fue reescrito a mediados de 1995 y fue nombrado PHP/FI version 2. FI viene de otro programa que Rasmus había escrito y que procesaba los datos de formularios. Así que combinó las "Herramientas para páginas web personales", el "intérprete de formularios", añadió soporte para mSQL y PHP/FI vio la luz. PHP/FI creció a gran velocidad y la gente empezó a contribuir en el código.

SQL

Siglas de Structured Query Language (Lenguaje Estructurado de Consultas). Es un lenguaje declarativo que aúna características del Álgebra y el Cálculo Relacionales que nos permite lanzar consultas contra una Base de Datos para recuperar información de nuestro interés, almacenada en ella.

UML

Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modelling Language) es el lenguaje de modelado de sistemas de software más conocido en la actualidad; aún cuando todavía no es un estándar oficial, está apoyado en gran manera por la OMG.
El UML cuenta con varios tipos de modelos, los cuales muestran diferentes aspectos de las entidades representadas.

Tipos de modelo

  • Funcional: Muestra la funcionalidad del sistema desde el punto de vista del usuario, incluye:
    • Diagramas de caso de uso
  • Objetos: Muestra la estructura y la subestructura del sistema usando objetos, atributos, operaciones y asociaciones, incluye:
    • Diagramas de clase
  • Dinámico: Muestra el comportamiento interno del sistema, incluye:
    • Diagramas de secuencia
    • Diagramas de actividad
    • Diagramas de estado