martes, 7 de octubre de 2014

C

El lenguaje de programación C fue creado por Brian Kernighan y Dennis
Ritchie a mediados de los años 70. La primera implementación del mismo la realizó
Dennis Ritchie sobre un computador DEC PDP-11 con sistema operativo UNIX. C es
el resultado de un proceso de desarrollo que comenzó con un lenguaje anterior, el
BCPL, el cual influyó en el desarrollo por parte de Ken Thompson de un lenguaje
llamado B, el cual es el antecedente directo del lenguaje C. El lenguaje C es un
lenguaje para programadores en el sentido de que proporciona una gran flexibilidad de
programación y una muy baja comprobación de incorrecciones, de forma que el
lenguaje deja bajo la responsabilidad del programador acciones que otros lenguajes
realizan por si mismos. Así, por ejemplo, C no comprueba que el índice de referencia
de un vector (llamado array en la literatura informática) no sobrepase el tamaño del
mismo; que no se escriba en zonas de memoria que no pertenecen al área de datos del
programa, etc.
El lenguaje C es un lenguaje estructurado, en el mismo sentido que lo son otros
lenguajes de programación tales como el lenguaje Pascal, el Ada o el Modula-2, pero
no es estructurado por bloques, o sea, no es posible declarar subrutinas (pequeños
trozos de programa) dentro de otras subrutinas, a diferencia de como sucede con otros
lenguajes estructurados tales como el Pascal. Además, el lenguaje C no es rígido en la
comprobación de tipos de datos, permitiendo fácilmente la conversión entre diferentes
tipos de datos y la asignación entre tipos de datos diferentes, por ejemplo la expresión
siguiente es válida en C:
float a; /*Declaro una variable para numeros reales*/
int b; /*Declaro otra variable para numero enteros*/
b=a; /*Asigno a la variable para entera el numero real*/
Todo programa de C consta, básicamente, de un conjunto de funciones, y una
función llamada main, la cual es la primera que se ejecuta al comenzar el programa,
llamándose desde ella al resto de funciones que compongan nuestro programa.
Desde su creación, surgieron distintas versiones de C, que incluían unas u otras
características, palabras reservadas, etc. Este hecho provoco la necesidad de unificar el
lenguaje C, y es por ello que surgió un standard de C, llamado ANSI-C, que declara
una serie de características, etc., que debe cumplir todo lenguaje C. Por ello, y dado
que todo programa que se desarrolle siguiendo el standard ANSI de C será fácilmente
portable de un modelo de ordenador a otro modelo de ordenador, y de igual forma de
un modelo de compilador a otro, en estos apuntes explicaremos un C basado en el
standard ANSI-C.

Al igual que B, 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.

Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.

La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas.
Uno de los objetivos de diseño del lenguaje C es que sólo sean necesarias 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. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes.

En parte a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en un amplio abanico de plataformas (más que cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Un programa escrito cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos computadores.

C se desarrolló originalmente (conjuntamente con el sistema operativo Unix, con el que ha estado asociado mucho tiempo) por programadores para programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha usado en contextos muy alejados de la programación de software de sistema, para la que se diseñó originalmente.
l desarrollo inicial de C se llevó a cabo en los Laboratorios Bell de AT&T entre 1969 y 1973; según Ritchie, el periodo más creativo tuvo lugar en 1972. Se le dio el nombre "C" porque muchas de sus características fueron tomadas de un lenguaje anterior llamado "B".

Hay muchas leyendas acerca del origen de C y el sistema operativo con el que está íntimamente relacionado, Unix. Algunas de ellas son:

El desarrollo de C fue el resultado del deseo de los programadores de jugar con Space Travel. Habían estado jugando en el mainframe de su compañía, pero debido a su poca capacidad de proceso y al tener que soportar 100 usuarios, Thompson y Ritchie no tenían suficiente control sobre la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un PDP-7 de la oficina que no se utilizaba; pero esa máquina no tenía sistema operativo, así que decidieron escribir uno. Finalmente decidieron portar el sistema operativo del PDP-11 que había en su oficina, pero era muy costoso, pues todo el código estaba escrito en lenguaje ensamblador. Entonces decidieron usar un lenguaje de alto nivel y portátil para que el sistema operativo se pudiera portar fácilmente de un ordenador a otro. Consideraron usar B, pero carecía de las funcionalidades necesarias para aprovechar algunas características avanzadas del PDP-11. Entonces empezaron a crear un nuevo lenguaje, C.
La justificación para obtener el ordenador original que se usó para desarrollar Unix fue crear un sistema que automatizase el archivo de patentes. La versión original de Unix se desarrolló en lenguaje ensamblador. Más tarde, el lenguaje C se desarrolló para poder reescribir el sistema operativo.
En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador. (Algunos casos anteriores son el sistema Multics, escrito en PL/I, y Master Control Program para el B5000 de Burroughs, escrito en ALGOL en 1961).

El C de Kernighan y Ritchie
En 1978, Ritchie y Brian Kernighan publicaron la primera edición de El lenguaje de programación C, también conocido como La biblia de C. Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en este libro recibe habitualmente el nombre de "el C de Kernighan y Ritchie" o simplemente "K&R C" (La segunda edición del libro cubre el estándar ANSI C, descrito más abajo).

Kernighan y Ritchie introdujeron las siguientes características al lenguaje:

El tipo de datos struct.
El tipo de datos long int.
El tipo de datos unsigned int.
Los operadores =+ y =- fueron sustituidos por += y -= para eliminar la ambigüedad sintáctica de expresiones como i=-10, que se podría interpretar bien como i =- 10 o bien como i = -10.

BIBLIOGRAFIA:http://informatica.uv.es/estguia/ATD/apuntes/laboratorio/Lenguaje-C.pdf
http://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)

Ensambladores

El lenguaje ensamblador, o assembler (assembly language en inglés), es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente son portátiles.

Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al código de máquina del computador objetivo. El ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola declaración generalmente da lugar a muchas instrucciones de máquina.

Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de depuración. Particularmente, la mayoría de los ensambladores modernos incluyen una facilidad de macro (descrita más abajo), y son llamados macro ensambladores.

Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, alto rendimiento, o un uso de recursos controlado y reducido. También es utilizado en el desarrollo de controladores de dispositivo (en inglés, device drivers) y en el desarrollo de sistemas operativos, debido a la necesidad del acceso directo a las instrucciones de la máquina. Muchos dispositivos programables (como los microcontroladores) aún cuentan con el ensamblador como la única manera de ser manipulados.
El lenguaje ensamblador es el lenguaje de programación utilizado para escribir programas informáticos de bajo nivel, y constituye la representación más directa del Código máquina específico para cada arquitectura de computadoras legible por un programador. Aun hoy se utiliza en la programación de handler o manipuladores de dispositivos de hardware.
Lenguaje
Un programa escrito en lenguaje ensamblador consiste en una serie de Instrucciones que corresponden al flujo de órdenes ejecutables que pueden ser cargadas en la Memoria de un sistema basado en Microprocesador. Por ejemplo, un Procesador x86 puede ejecutar la siguiente instrucción Binaria como se expresa en código de máquina:
Binario: 10110000 01100001 (Hexadecimal: 0xb061)
La representación equivalente en lenguaje ensamblador es más fácil de recordar:
MOV al, 061h.
El lenguaje simbólico que se utiliza para codificar los programas origen que se procesan por el ensamblador es llamado lenguaje ensamblador.
Este lenguaje es una colección de símbolos mnemónicos que representan: operaciones (mnemónicos de instrucciones para la máquina o de directrices para el ensamblador), nombres simbólicos, operadores y símbolos especiales.

El lenguaje ensamblador proporciona códigos de operación de los mnemónicos para todas las instrucciones de la máquina contenidas en la lista de instrucciones.

Además, el lenguaje ensamblador contiene mnemónicos directrices, los cuales especifican acciones auxiliares que se llevan a cabo por el ensamblador.

Estas directrices no siempre son traducidas a lenguaje maquina.

Un programador escribe el programa origen en lenguaje ensamblador utilizando cualquier editor de textos o procesador de palabras que sea capaz de producir una salida de texto en ASCII.

Una vez que el código origen ha sido escrito, el archivo origen es ensamblado mediante su procesamiento a través de algún ensamblador.
Los operadores son iguales a los utilizados en el lenguaje de programación C:

+ suma
- resta
* multiplicación
/ división
% residuo después de división
& and
I or
^ or exclusiva
Las expresiones son evaluadas de izquierda a derecha y las expresiones con paréntesis no están previstas. La aritmética es realizada con precisión de enteros en complemento a dos con signo.
  Lenguaje
El lenguaje ensamblador refleja directamente la arquitectura y las instrucciones en lenguaje de máquina de la CPU, y pueden ser muy diferentes de una arquitectura de CPU a otra. Cada arquitectura de microprocesador tiene su propio lenguaje de máquina, y en consecuencia su propio lenguaje ensamblador ya que este se encuentra muy ligado a la estructura del hardware para el cual se programa. Los microprocesadores difieren en el tipo y número de operaciones que soportan; también pueden tener diferente cantidad de registros, y distinta representación de los tipos de datos en memoria. Aunque la mayoría de los microprocesadores son capaces de cumplir esencialmente las mismas funciones, la forma en que lo hacen difiere y los respectivos lenguajes ensamblador reflejan tal diferencia.

Ensamblado.
La transformación del lenguaje ensamblador en código máquina la realiza un programa ensamblador, y la traducción inversa la puede efectuar un desensamblador. A diferencia de los lenguajes de alto nivel, aquí hay usualmente una correspondencia 1 a 1 entre las instrucciones simples del ensamblador y el lenguaje de máquina. Sin embargo, en algunos casos, un ensamblador puede proveer "pseudo instrucciones" que se expanden en un código de máquina más extenso a fin de proveer la funcionalidad necesaria y simplificar la programación. Por ejemplo, para un código máquina condicional como "si X mayor o igual que", un ensamblador puede utilizar una pseudoinstrucción al grupo "haga si menor que", y "si = 0" sobre el resultado de la condición anterior. Los Ensambladores más completos también proveen un rico lenguaje de macros que se utiliza para generar código más complejo y secuencias de datos.

BIBLIOGRAFIA:http://www.ecured.cu/index.php/Lenguaje_ensamblador

Lisp

LENGUAJE DE PROGRAMACIÓN LISP
El LISP es un lenguaje de programación creado por el profesor John McCarthy a finales de los años 50. John McCarthy quiso desarrollar un lenguaje que mostrara la información estructurada en listas en las que se pudieran gestionar esta. De ahí el nombre que le dio a este lenguaje, Lisp (List-Processing), porque fue creado principalmente para el procesamiento de listas.

Con el trascurso del tiempo el Lisp dio origen a varios dialectos. Entre los más importantes podemos citar a: el MACLISP, COMMONLISP, INTERLISP, ZETALISP, etc. De todos ellos el COMMONLISP se esta consolidando como el estándar. Del Lisp posteriormente surgió otro lenguaje de programación importante como es el Logo.

El Lisp es un lenguaje funcional que se apoya en la utilización de funciones matemáticas para el control de los datos. Pero el elemento fundamental en el Lisp es la lista. Y desde el punto de vista más amplio del término. Cada función del lisp y cada programa que generemos con él vienen dado en forma de lista. Por esta razón los datos no se pueden diferenciarse sintácticamente de los programas.
A este tipo de lenguaje se les denomina aplicativos o funcionales porque se basan en la aplicación de funciones a los datos. El lisp diferencia dos tipos de elementos básicos: El átomo, datos elementales de varios tipos como números, símbolos, caracteres y cadenas de caracteres. Y las Listas, entre las que podemos nombrar a un en especial. La lista “nil”, que es una lista nula que no tiene ningún elemento.

El Lisp trata a los elementos o paramentos que le introducimos de manera no destructiva, de forma que la mayoría de las funciones nos devuelven una lista que es el resultado de alguna transformación de otra que recibió, pero sin cambiar a esta (la que recibió).

Una de las razones por las que el Lisp esta especialmente dotado para la programación en inteligencia artificial (IA), es precisamente, porque su código y todos los datos tienen la misma estructura, en forma de lista. El lisp fue uno de los primeros lenguajes en manejar las excepciones con los comandos catch y throw.
Lisp (o LISP) es una familia de lenguajes de programación de computadora de tipo multiparadigma con una larga historia y una sintaxis completamente entre paréntesis.

Especificado originalmente en 1958 por John McCarthy y sus colaboradores en el Instituto Tecnológico de Massachusetts, Lisp es el segundo lenguaje de programación de alto nivel más viejo con un extenso uso hoy en día; solamente FORTRAN es más viejo.

Al igual que FORTRAN, Lisp ha cambiado mucho desde sus comienzos y han existido un gran número de dialectos en su historia. Hoy, los dialectos Lisp de propósito general más ampliamente conocidos son Common Lisp y Scheme.

Lisp fue creado originalmente como una notación matemática práctica para los programas de computadora, basada en el cálculo lambda de Alonzo Church. Se convirtió rápidamente en el lenguaje de programación favorito en la investigación de la inteligencia artificial (AI). Como uno de los primeros lenguajes de programación, Lisp fue pionero en muchas ideas en ciencias de la computación, incluyendo las estructuras de datos de árbol, el manejo de almacenamiento automático, tipos dinámicos, y el compilador auto contenido.

El nombre LISP deriva del "LISt Processing" (Proceso de LIStas). Las listas encadenadas son una de las estructuras de datos importantes de Lisp, y el código fuente de Lisp en sí mismo está compuesto de listas. Como resultado, los programas Lisp pueden manipular el código fuente como una estructura de datos, dando lugar a los macro sistemas que permiten a los programadores crear una nueva sintaxis de lenguajes de programación de dominio específico empotrados en Lisp.

La intercambiabilidad del código y los datos también da a Lisp su instantáneamente reconocible sintaxis. Todo el código del programa es escrito como expresiones S o listas entre paréntesis. Una llamada de función o una forma sintáctica es escrita como una lista, con la función o el nombre del operador en primer lugar, y los argumentos a continuación. Por ejemplo, una función f que toma tres argumentos puede ser llamada usando (f x y z).
Historia[editar]
Lisp fue inventado por John McCarthy en 1958 mientras estaba en el Instituto Tecnológico de Massachusetts (MIT). McCarthy publicó su diseño en 1960 en un artículo de Communications of the ACM titulado "funciones recurrentes de expresiones simbólicas y su cómputo por la máquina, parte I"1 (la "parte II" nunca fue publicada). Allí mostró que con algunos operadores simples y una notación para las funciones, uno puede construir un lenguaje turing completo para los algoritmos.

Desde 1955 ó 1956, el Information Processing Language fue el primer lenguaje de AI y ya había incluido muchos de los conceptos, tales como proceso por lista y recurrencia, que vinieron a ser usados en Lisp.

La notación original de McCarthy usaba "expresiones M" en corchetes que serían traducidas a expresiones S. Como un ejemplo, la expresión M car[cons[A,B]] es equivalente a la expresión S (car (cons A B)). Una vez Lisp fue implementado, los programadores rápidamente eligieron usar expresiones S y las expresiones M fueron abandonadas. las expresiones M emergieron otra vez con los intentos efímeros del MLISP2 de Horace Enea y el CGOL de Vaughan Pratt.

Lisp fue implementado primero por Steve Russel en un computador IBM 704. Russell había leído el artículo de McCarthy, y se dio cuenta (para la sorpresa de McCarthy) que la función eval del Lisp podía ser implementada en código de máquina. El resultado fue un intérprete de Lisp funcional que podía ser usado para correr programas Lisp, o más correctamente, "evaluar expresiones Lisp".

Dos rutinas de lenguaje ensamblador para el IBM 704 se convirtieron en las operaciones primitivas para descomponer listas: car (contenido del registro de dirección) y cdr (contenido del registro del decremento). Los dialectos del Lisp todavía usan el car y cdr (pronunciado /ˈkɑr/ y /ˈkʊdər/) para las operaciones que retornan el primer elemento y el resto de la lista respectivamente.

El primer compilador completo de Lisp, escrito en Lisp, fue implementado en 1962 por Tim Hart y Mike Levin en el MIT.3 Este compilador introdujo el modelo Lisp de compilación incremental, en el cual las funciones compiladas e interpretadas pueden entremezclarse libremente. El lenguaje en los memos de Hart y Levin es mucho más cercano al estilo moderno del Lisp que el anterior código de McCarthy.
Innovaciones del lenguaje:Lisp fue el primer lenguaje de programación homoicónico: la representación primaria del código del programa es el mismo tipo de estructura de la lista que también es usada para las principales estructuras de datos. Como resultado, las funciones de Lisp pueden ser manipuladas, alteradas o aún creadas dentro de un programa Lisp sin un extensivo análisis sintáctico (parsing) o manipulación de código de máquina binario. Esto generalmente es considerado una de las ventajas primarias del lenguaje con respecto a su poder expresivo y hace al lenguaje favorable a la evaluación metacircular.

La ubicua estructura IF THEN ELSE, ahora admitida como un elemento esencial de cualquier lenguaje de programación, fue inventada por McCarthy para el uso en el Lisp, donde vio su primera apariencia en una forma más general (la estructura cond). Fue heredada por ALGOL, que la popularizó.

Lisp influenció profundamente a Alan Kay, el líder de investigación del Smalltalk y a su vez Lisp fue influenciado por Smalltalk, adoptando las características de la programación orientada a objetos (clases, instancias, etc.) a finales de los años 1970.

En gran parte debido a sus requerimientos de recursos con respecto al temprano hardware computacional (incluyendo los primeros microprocesadores), Lisp no se hizo tan popular fuera de la comunidad de AI, como lo fueron FORTRAN y el descendiente del lenguaje ALGOL, el lenguaje C. Lenguajes más nuevos como Java y Python han incorporado algunas versiones limitadas de algunas de las características de Lisp, pero no pueden necesariamente brindar la coherencia y la sinergia de los conceptos completos encontrados en el Lisp. Debido a su conveniencia para aplicaciones mal definidas, complejas y dinámicas, Lisp están disfrutando actualmente de un cierto resurgimiento del interés popular.
BIBLIOFRAFIA:http://www.larevistainformatica.com/Lisp.htm

Cobol

Juego de caracteres.
COBOL permite utilizar casi todos los caracteres que permite el teclado, además de distinguir entre
mayúsculas y minúsculas. Un carácter a mencionar por su utilidad y porque en otros lenguajes no es usado
sería el espacio.
El lenguaje COBOL (acrónimo de COmmon Business-Oriented Language, Lenguaje Común Orientado a Negocios) fue creado en el año 1959 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.
En la creación de este lenguaje participó la comisión CODASYL, compuesta por fabricantes de ordenadores, usuarios y el Departamento de Defensa de Estados Unidos en mayo de 1959. La definición del lenguaje se completó en poco más de seis meses, siendo aprobada por la comisión en enero de 1960. El lenguaje COBOL fue diseñado inspirándose en el lenguaje Flow-Matic de Grace Hopper y el IBM COMTRAN de Bob Bemer, ya que ambos formaron parte de la comisión.

Gracias a la ayuda de los usuarios COBOL evolucionó rápidamente y fue revisado de 1961 a 1965 para añadirle nuevas funcionalidades. En 1968 salió la primera versión ANSI del lenguaje, siendo revisada posteriormente en 1974 (COBOL ANS-74), 1985 (COBOL ANS-85, ampliado en 1989 con funciones matemáticas, finalizando el estándar actual más usado, conocido como COBOL-ANSI), y en 2002 (COBOL ANS-2002). Desde el año 2007 se viene preparando una nueva revisión del lenguaje.

Además, existe una versión conocida como COBOL ENTERPRISE, actualizada regularmente y lanzada en 1991, usada generalmente en sistemas Host.

En el 2011 se actualizó con Visual COBOL.1 Existen otras versiones de COBOL como NetCobol de la casa matriz GT Software, al igual que isCOBOL de la casa matriz Veryant.
COBOL fue dotado de unas excelentes capacidades de autodocumentación.
Una buena gestión de archivos y una excelente gestión de los tipos de datos para la época, a través de la conocida sentencia PICTURE para la definición de campos estructurados. Para evitar errores de redondeo en los cálculos que se producen al convertir los números a binario y que son inaceptables en temas comerciales, COBOL puede emplear y emplea por defecto números en base diez. Para facilitar la creación de programas en COBOL, la sintaxis del mismo fue creada de forma que fuese parecida al idioma inglés, evitando el uso de símbolos que se impusieron en lenguajes de programación posteriores.
Pese a esto, a comienzos de los ochenta se fue quedando anticuado respecto a los nuevos paradigmas de programación y a los lenguajes que los implementaban. En la revisión de 1985 se solucionó, incorporando a COBOL variables locales, recursividad, reserva de memoria dinámica y programación estructurada.

En la revisión de 2002 se le añadió orientación a objetos, aunque desde la revisión de 1974 se podía crear un entorno de trabajo similar a la orientación a objetos, y un método de generación de pantallas gráficas estandarizado.

Antes de la inclusión de las nuevas características en el estándar oficial, muchos fabricantes de compiladores las añadían de forma no estándar. En la actualidad este proceso se está viendo con la integración de COBOL con Internet. Existen varios compiladores que permiten emplear COBOL como lenguaje de scripting y de servicio web. También existen compiladores que permiten generar código COBOL para la plataforma .

BIBLIOGRAFIA:http://es.wikipedia.org/wiki/COBOL
http://www.di-mare.com/adolfo/cursos/2007-2/pp-Cobol-PL1.pdf

Fortran


Su nombre proviene del ingles de: FORmula TRANslator. Es un lenguaje de programación para el desarrollo de aplicaciones matemáticas y científicas, fue el primer lenguaje de programación de alto nivel. Estos lenguajes de alto nivel tienen entre otras las ventajas que pueden utilizarse en cualquier computadora y son más afines al lenguaje humano.

Uno de los lenguajes de programación orientado a procedimientos es el FORTRAN. Un lenguaje orientado a procedimiento es aquel en el que el programador al escribir el programa lo hace con un orden determinado para resolver el problema. Estos lenguajes tienen la ventaja de que con una sola instrucción propia hacen referencia a varias del lenguaje de máquina.

El FORTRAN nace en los años 50, se utiliza principalmente para aplicaciones científicas y el análisis numérico. Durante toda su vida ha pasado por varias versiones, inicialmente fue un lenguaje imperativo, actualmente en sus últimas versiones comprobamos que es un lenguaje de programación orientado a objetos y a procedimientos.

El FORTRAN fue bien acogido en la comunidad científica por su excelente rendimiento en todo este tipo de aplicaciones. Por ello lo utilizaron para el desarrollo de programas de cómputo intensivo. Posteriormente se le incluyo la aritmética de números complejos lo mejoro notablemente.

Algunos expertos opinan que el FORTRAN se acabará extinguiendo, pero comprobamos que actualmente se sigue usando. Una de las razones por la que aun no se ha extinguido es porque a las compañías que han invertido muchísimo dinero en el desarrollo de un determinado software, no les es rentable traducirlo a otro lenguaje de programación porque es una labor muy tediosa y cara.
El FORTRAN desde sus inicios dominó el área de la programación y se ha mantenido su desarrollo y aplicación por más de 50 años en distintos segmentos de la ciencia y técnica. El FORTRAN uno de los lenguajes más usados en la Computación de alto rendimiento, además se utiliza para el desarrollo de programas que evalúan el desempeño y el posicionamiento de los Supercomputadores. Este lenguaje fue propiedad absoluta de IBM hasta 1961, al pasar el tiempo se fue extendiendo a computadoras de otros fabricantes. Al igual que otros lenguajes de programación, FORTRAN tiene varias versiones, las cuales añaden mejor funcionalidad al mismo.
El nacimiento de este lenguaje se debe principalmente a John Backus en unión de Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre, todos ellos de la nómina de IBM, quienes en 1954 presentan el informe titulado “Preliminary Report, Specifications for the IBM Mathematical FORmula TRANslating System, FORTRAN.” Debido al avance de la investigación el equipo de Backus anuncia que en 6 meses IBM tendrá el compilador FORTRAN, este hecho tardó 2 años, es en 1956 cuando Backus y equipo presentan a la directiva de IBM una alternativa al Lenguaje ensamblador para la computadora IBM 704.
Se caracteriza por su potencia en los cálculos matemáticos, pero esta limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes. Es un lenguaje notorio, por la facilidad con que permite expresar una ecuación. FORTRAN fue diseñado teniendo en cuenta el uso de la Tarjeta perforada de 80 columnas, por lo que el orden de las instrucciones debía ser secuencial, es decir la programación de los algoritmos era lineal, para producir cualquier alteración del orden de la lógica, se introduce la instrucción Goto. Debido al desarrollo de los métodos de programación el FORTRAN también fue evolucionado de versión en versión, se le han incorporado nuevas funciones.
Versiones

Hasta 1961 se mantuvo como monopolio de IBM, pero posteriormente se fue implementando en ordenadores de otros fabricantes. A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la adoptada en 1966 por el ANSI (American National Standards Institute) en español, Instituto Nacional Estadounidense de Estándares, en la que se definieron nuevas reglas del lenguaje y se logró la independencia del mismo con respecto a la máquina; es decir, comenzó la portabilidad del lenguaje. A mediados de los años setenta las computadoras o mainframe se distribuían con FORTRAN 66 incorporado. Por tanto era posible escribir programas en FORTRAN en cualquier sistema y poder trasladarse a otros con la seguridad de que pudieran trabajar de igual forma que en el sistema original. Esta versión se denominó FORTRAN IV o FORTRAN 66, y se hizo tan popular en los años 60, que se volvió el primer lenguaje de programación en ser regularizado oficialmente en 1972.

En 1977 apareció una nueva versión mas evolucionada que se llamó FORTRAN V o Fortran 77. Está reflejada en el documento ANS X3.9-1978: Programming Language Fortran y define dos niveles del lenguaje denominados Fortran 77 completo y Fortran 77 básico, siendo el segundo un subconjunto del primero. Incluye, además, instrucciones para el manejo de cadenas de caracteres y de archivos, así como otras para la utilización de técnicas de programación estructurada. Estas características hacen que el lenguaje también sea válido para determinadas aplicaciones de gestión.Fortran 77, entre otras mejoras, facilita la programación estructurada con bloques "IF (...) THEN/ELSE/ENDIF". En 78, una extensión introduce a DO WHILE/END DO.

Fortran 90 incorpora los módulos, la recursividad y sobrecargas de operadores, además nuevos tipos de datos. Se considera una actualización importante para poner a FORTRAN al nivel de los otros lenguajes modernos. La escritura se hace finalmente en formato libre.


BIBLIOGRAFIA:http://www.ecured.cu/index.php/Fortran

html


HTML, siglas de HyperText Markup Language («lenguaje de marcas de hipertexto»), hace referencia al lenguaje de marcado para la elaboración de páginas web. Es un estándar que sirve de referencia para la elaboración de páginas web en sus diferentes versiones, define una estructura básica y un código (denominado código HTML) para la definición de contenido de una página web, como texto, imágenes, entre otros. Es un estándar a cargo de la W3C, organización dedicada a la estandarización de casi todas las tecnologías ligadas a la web, sobre todo en lo referente a su escritura e interpretación.

El lenguaje HTML basa su filosofía de desarrollo en la referenciación. Para añadir un elemento externo a la página (imagen, vídeo, script, entre otros.), este no se incrusta directamente en el código de la página, sino que se hace una referencia a la ubicación de dicho elemento mediante texto. De este modo, la página web contiene sólo texto mientras que recae en el navegador web (interpretador del código) la tarea de unir todos los elementos y visualizar la página final. Al ser un estándar, HTML busca ser un lenguaje que permita que cualquier página web escrita en una determinada versión, pueda ser interpretada de la misma forma (estándar) por cualquier navegador web actualizado.

Sin embargo, a lo largo de sus diferentes versiones, se han incorporado y suprimido diversas características, con el fin de hacerlo más eficiente y facilitar el desarrollo de páginas web compatibles con distintos navegadores y plataformas (PC de escritorio, portátiles, teléfonos inteligentes, tabletas, etc.). Sin embargo, para interpretar correctamente una nueva versión de HTML, los desarrolladores de navegadores web deben incorporar estos cambios y el usuario debe ser capaz de usar la nueva versión del navegador con los cambios incorporados. Usualmente los cambios son aplicados mediante parches de actualización automática (Firefox, Chrome) u ofreciendo una nueva versión del navegador con todos los cambios incorporados, en un sitio web de descarga oficial (Internet Explorer). Un navegador no actualizado no será capaz de interpretar correctamente una página web escrita en una versión de HTML superior a la que pueda interpretar, lo que obliga muchas veces a los desarrolladores a aplicar técnicas y cambios que permitan corregir problemas de visualización e incluso de interpretación de código HTML. Así mismo, las páginas escritas en una versión anterior de HTML deberían ser actualizadas o reescritas, lo que no siempre se cumple. Es por ello que ciertos navegadores aún mantienen la capacidad de interpretar páginas web de versiones HTML anteriores. Por estas razones, aún existen diferencias entre distintos navegadores y versiones al interpretar una misma página web.
¿Qué es HTML?
HTML es el lenguaje con el que se definen las páginas web. Básicamente se trata de un conjunto de
etiquetas que sirven para definir la forma en la que presentar el texto y otros elementos de la página.
El HTML se creó en un principio con objetivos divulgativos. No se pensó que la web llegara a ser un área
de ocio con carácter multimedia, de modo que, el HTML se creó sin dar respuesta a todos los posibles
usos que se le iba a dar y a todos los colectivos de gente que lo utilizarían en un futuro. Sin embargo,
pese a esta deficiente planificación, si que se han ido incorporando modificaciones con el tiempo, estos
son los estándares del HTML. Numerosos estándares se han presentado ya. El HTML 4.01 es el último
estándar a febrero de 2001.
El HTML es un lenguaje de programación muy fácil de aprender, lo que permite que cualquier persona,
aunque no haya programado en la vida pueda enfrentarse a la tarea de crear una web. HTML es fácil y
pronto podremos dominar el lenguaje. Más adelante se conseguirán los resultados profesionales gracias
a nuestras capacidades para el diseño y nuestra vena artista.
Una vez conocemos el concepto de HTML os vamos a adelantar algunas cosas más. Este lenguaje se
escribe en un documento de texto, por eso necesitamos un editor de textos para escribir una página
web. Así pues, el archivo donde está contenido el código HTML es un archivo de texto, con una
peculiaridad, que tiene extensión .html o .htm (es indiferente cuál utilizar). De modo que cuando
programemos en HTML lo haremos con un editor de textos, lo más sencillo posible y guardaremos
nuestros trabajos con extensión .html, por ejemplo mipagina.html
Por adelantar un poco cómo se utiliza el HTML os diremos que el lenguaje consta de etiquetas que tienen
esta forma <B> o <P>. Cada etiqueta significa una cosa, por ejemplo <B> significa que se escriba en
negrita (bold) o <P> significa un párrafo, <A> es un enlace, etc. Casi todas las etiquetas tienen su
correspondiente etiqueta de cierre, que indica que a partir de ese punto no debe de afectar la etiqueta.
Por ejemplo </B> se utiliza para indicar que se deje de escribir en negrita. Así que el HTML no es más
que una serie de etiquetas que se utilizan para definir la forma o estilo que queremos aplicar a nuestro
documento.

HTML.svg
BIBLIOGRAFIA:http://186.42.96.211:8080/jspui/bitstream/123456789/104/3/Diseno.Y.Programacion.de.Paginas.Web%20%5Bwww.e-book-tutoriales.blogspot.com%5D.pdf
http://es.wikipedia.org/wiki/HTML

java

Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados.2 3

El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.

La compañía Sun desarrolló la implementación de referencia original para los compiladores de Java, máquinas virtuales, y librerías de clases en 1991 y las publicó por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con las especificaciones del Proceso de la Comunidad Java, Sun volvió a licenciar la mayoría de sus tecnologías de Java bajo la Licencia Pública General de GNU. Otros también han desarrollado implementaciones alternas a estas tecnologías de Sun, tales como el Compilador de Java de GNU y el GNU Classpath.
Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.

El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.

Es frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la de que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de café caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos.class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras.
En el diseño de Java se prestó especial atención a la seguridad. Existen varios niveles de seguridad en
Java, desde el ámbito del programador, hasta el ámbito de la ejecución en la máquina virtual.
Con respecto al programador, Java realiza comprobación estricta de tipos durante la compilación,
evitando con ello problemas tales como el desbordamiento de la pila. Pero, es durante la ejecución donde
se encuentra el método adecuado según el tipo de la clase receptora del mensaje; aunque siempre es
posible forzar un enlace estático declarando un método como final.
Todas las instancias de una clase se crean con el operador new(), de manera que un recolector de basura
se encarga de liberar la memoria ocupada por los objetos que ya no están referenciados. La máquina
virtual de Java gestiona la memoria dinámicamente.

BIBLIOGRAFIA:http://www3.uji.es/~belfern/pdidoc/IX26/Documentos/introJava.pdf
http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)

lunes, 6 de octubre de 2014

clipper




Clipper es un lenguaje de programación procedural e imperativo creado en 1985  por nantucket corporation  y vendido posteriormente a computer  associates , la que lo comercializó como CA-Clipper. En un principio Clipper se creó como un compilador  para el sistema gestor interprete  de bases de datos dbase  III (de hecho las versiones estacionales de Nantucket incluían una etiqueta que lo indicaba así), pero con el tiempo el producto evolucionó y maduró, convirtiéndose en un lenguaje compilado más poderoso que el original, no sólo por sus propias implementaciones sino también por las ampliaciones desarrolladas por terceros en c, ensamblador pascal , de los que fue heredando características. Esto lo convirtió en la herramienta líder de desarrollo de aplicaciones de bases de datos relacionales bajo sistema operativo ms-dos, sobre todo programas de gestión, contabilidad y facturación (sage-sp, líder del mercado español, lo usa para contraplus yfacturaplus), agendas comerciales y programas de tarificación (aproximadamente el 80%taplus de las compañías de seguros de España  lo utilizaron en los programas de sus agentes).
El Clipper es un dialecto que se creo con finalidad de mejorar el rendimiento del dBase. El Clipper surgió del lenguaje C y del lenguaje Ensamblador, pero mejorando a estos dos lenguajes en que todos los programas creados por Clipper pueden compilarse y enlazarse.

Pero con el transcurso de los años el Clipper se fue perfeccionando y se convirtió en uno de los mejores lenguajes de programación para la gestión de bases de datos. Esto fue debido no solo gracias a su propio desarrollo, sino también por la aportación de otros lenguajes de los que ha heredado algunas características. Entre estos lenguajes de programación destacaremos el lenguaje C y el Pascal.

De esta forma el Clipper se ha convertido en uno de los lenguajes de programación más potentes en aplicaciones para bases de datos bajo el entorno de MS-Dos. Concretamente en el desarrollo de aplicaciones para contabilidad, facturación, agendas comerciales y programas de tarificación.

Actualmente el Clipper se esta involucrando en varios proyectos. En proyectos de distribución de software libre como el Clip, Harbour, xHarbour. Pero también en otras distribuciones de software comerciales. Todo este desarrollo del Clipper se lo debe a todas las características heredadas del lenguaje C. Que entre otras cosas lo hace compatible con la mayor parte de los formatos y extensiones de bases de datos
     


pascal


Pascal es un lenguaje de programación  desarrollado por el profesor suizo niklaus  wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico para convertirse en una herramienta para la creación de aplicaciones de todo tipo.
Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipado. Esto implica que:
El código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo estilo de programación monolítica.
El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.
El nombre de Pascal fue escogido en honor al matemático francés Blaise pascal 
Blaise Pascal fue un filósofo, matemático y físico francés, considerado una de las mentes privilegiadas de la historia intelectual de Occidente y el primero en establecer las bases de lo que serían las calculadoras y los ordenadores actuales.pascal invento la primera calculadora, para ayudar a su padre con las cuentas . la maquina, llamada pascalina, era similar alas calculadoras mecánicas de 1940 . el diseño de esta calculadora era complicado,por que en aquélla época ,la moneda en Francia no seguía el sistema decimal. se fabricaron 50 maquinas  pero no se vendieron muy bien y dejaron de fabricarse.tras de las contribuciones   importantes de pascal son la deducción del llamado "principio de pascal", que establece  los líquidos trasmiten presiones con la misma intensidad en todas las direcciones, y sus  investigaciones sobre las cantidades infinitesimales. pascal  creía que el progreso humano se estimulaba con la acumulación de los descubrimientos científicos.
pascal fue uno de los mas eminentes matemáticos y físicos de su época .
 pascal murió el 19 de agosto de 1662 en parís, a los 39 años, a causa de un tumor cerebral.  
       
BIBLIOGRAFIA:http://es.wikipedia.org/wiki/Pascal_(lenguaje_de_programaci%C3%B3n)

C++



 C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne  stroustrup.
con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos , el C++ es un lenguaje híbrido.
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, tales como ROOT.
Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos  que se comporten como tipos fundamentales.
El nombre C++ fue propuesto por Rick mascitti  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 C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.
PARADIGMAS DE PROGRAMACIÓN
Según los conceptos en que se basa un lenguaje de programación tenemos distintas maneras de
aproximarnos a la resolución de los problemas y diferentes estilos de programación. Podemos
clasificar los lenguajes de programación en varios tipos:
— Imperativos
— Orientados a Objetos
— Funcionales
— Lógicos.
con los datos de un tipo podemos realizar determinadas operaciones
pero, ¿cómo las expresamos en un lenguaje de programación? Para resolver este problema
aparecen lo que llamamos operadores. Podemos decir que un operador es un símbolo o
conjunto de símbolos que representa la aplicación de una función sobre unos operandos.
Cuando hablamos de los operandos no sólo nos referimos a variables, sino que hablamos de
cualquier elemento susceptible de ser evaluado en alguna forma. Por ejemplo, si definimos una
variable entera podremos aplicarle operadores aritméticos (+, -, *, /), de asignación (=) o
relacionales (>, <, …), si definimos una variable compuesta podremos aplicarle un operador de
campo que determine a cual de sus componentes queremos acceder, si definimos un tipo de
datos podemos aplicarle un operador que nos diga cual es el tamaño de su representación en
memoria, etc.
principios:
Todo programa en C++ debe tener la función principal main() (a no ser que se especifique en tiempo de compilación otro punto de entrada, que en realidad es la función que tiene el main().Podemos definir un algoritmo de manera general como un conjunto de operaciones o reglas bien
definidas que, aplicadas a un problema, lo resuelven en un número finito de pasos. Si nos
referimos sólo a la informática podemos dar la siguiente definición:
Un procedimiento es una secuencia de instrucciones que pueden realizarse
mecánicamente. Un procedimiento que siempre termina se llama algoritmo.
Al diseñar algoritmos que resuelvan problemas complejos debemos emplear algún método de
diseño, la aproximación más sencilla es la del diseño descendente (top-down). El método
consiste en ir descomponiendo un problema en otros más sencillos (subproblemas) hasta llegar
a una secuencia de instrucciones que se pueda expresar en un lenguaje de alto nivel.
nota:estrictamente hablando c no es un subconjunto de c++ de hecho es posible escribir código c que es ilegal en c+. pero a efectos prácticos, dado el esfuerzo de compatibilidad desplegado en su diseño, puede considerarse que c++ es una extensión de c  clásico. 
      
Wchar_t

Para la versión del estándar que se publicó en 1998, se decidió añadir el tipo de dato wchar_t, que permite el uso de caracteres unicode , a diferencia del tradicional char, que contempla simplemente al código de caracteres ASCII extendido. A su vez, se ha definido para la mayoría de las funciones y clases, tanto de C como de C++, una versión para trabajar con wchar_t, donde usualmente se prefija el carácter w al nombre de la función (en ocasiones el carácter es un infijo).





Bibliografia: http://www.uv.es/~sto/cursos/c++/curso95.pdf