jueves, 13 de diciembre de 2012



INTRODUCCIÓN.
Los lenguajes de computadora se utilizan para resolver problemas, y ha habido miles de años de trabajo en matemáticas para este fin. Los lenguajes de programación están especificados por reglas para formar instrucciones correctas, organizándolas en módulos, someterlas hacia un compilador, el cual traduce el código en un lenguaje comprensible para una máquina en particular, y finalmente ejecutar el programa, es decir, someter la entrada hacia la computadora, la cual transforma en una salida de acuerdo con las instrucciones en el programa.
Cuando usamos una computadora, estamos intentado resolver un problema. Puede ser un problema de negocios, que involucra ganancias y perdidas; un problema científico que emplea modelos de comportamiento físico; una investigación estadística que evalúa la posibilidad de que ocurra algún evento; etc.
En general, una computadora, sólo es capaz de realizar tres operaciones básicas:
  • Sumar, restar, multiplicar y dividir dos valores numéricos.
  • Comparar dos valores numéricos o alfabéticos (comprobar sin son iguales, determinar si el primero es mayor que el segundo, si son diferentes, etc.).
  • Almacenar o recuperar información.
  • Con estas sencillas operaciones utilizadas y combinadas de manera adecuada, mediante lo que se denomina Programa de computadora, se pueden llegar a realizar tareas increíblemente complejas que aporten la solución a un determinado problema, ya sea administrativo, científico, o de cualquier otro tipo.
    Dentro del campo de la computación, un PROBLEMA consiste en la necesidad de transformar un grupo de datos iniciales (entrada) en un grupo diferente de datos finales (Resultados).
    De este modo, una computadora podrá resolver un problema si alguien desarrolla un programa que contenga las instrucciones adecuadas que permitan transformar los datos, esta actividad la realizan los Programadores (seres humanos) y se le denomina PROGRAMACIÓN.
    La programación ha ido evolucionando constantemente, desde los primeros programas escritos directamente en código maquina (0 y 1) hasta llegar hoy a los lenguajes visuales (intuitivos).
    Esta evolución se ha producido gracias a la utilización de diversos sistemas y herramientas.
    El más efectivo es la realización de ALGORITMOS previos, que representan el programa mediante símbolos. Los algoritmos y los programas, son parecidos a una receta de cocina.
    Los lenguajes de programación son el medio que permite a los Programadores expresar las instrucciones que la computadora va a realizar mediante la transformación de los algoritmos en una serie de sentencias que siguiendo la sintaxis propia del lenguaje, indica las operaciones que va a realizar.
    LENGUAJES DE PROGRAMACIÓN.
    Se ha visto hasta ahora que los lenguajes de programación son un simbolismo, que nos permite expresar en operaciones elementales (instrucciones) la solución a nuestro problema.
    El ordenador ejecuta las instrucciones que le hemos suministrado previamente en forma de programa. Pero este programa escrito en un lenguaje determinado necesita ser traducido a lenguaje máquina que es el comprensible directamente por el ordenador.
    Existen abundantes lenguajes que se han especificado y de los que se han escrito traductores; las normas (sintaxis) y palabras que emplean cada uno de ellos las definieron los organismos internacionales, otros los constructores y otros los clientes.
    Los manuales son las características del lenguaje y los traductores se suelen adquirir conjuntamente, en los ordenadores grandes al proveedor del equipo y para los microordenadores en las tiendas de informática.
    Es decir, los lenguajes de programación son aplicaciones específicas que han sido pensadas y diseñadas para crear otras aplicaciones o programas.
    Los lenguajes de programación se basan en un sistema de instrucciones previamente establecidas que indican al ordenador lo que debe realizar.
    Los lenguajes de programación son “lenguas” o “idiomas” ya establecidos, comprensibles tanto por el programador, como por la máquina, que permiten desarrollar los programas. Existen muchos y muy variados, y evolucionan constantemente, tanto en potencia como en facilidad de uso. La mayoría está escrito en Inglés, aunque cada vez son más visuales e intuitivos.
    Ejemplos: Pascal, Turbo C++, CA-Clipper, Visual Basic, Visual C++, Java, Cobol, C, Fortran, HTML, Prolog, CSMP, SIMAN, Lisp, Lingo, SQL, Delphi, dBase, etc.
    Los lenguajes son un código de instrucciones que permiten hacer programas.
    La Programación de las primeras computadoras (para cambiar un proceso por otro) se efectúa reacomodando cables y conexiones (los programas eran cableados), esto fue evolucionando hasta eliminar lo mecánico y volviendo lógica la programación.
    Los Lenguajes de Programación pueden clasificarse de varias manera, las principales son las siguientes:
    • Por su Nivel.
    • Por sus Aplicaciones principales.
    CLASIFICACIÓN DE LOS LENGUAJES DE ACUERDO A SU NIVEL:
    Esta clasificación se refiere a qué tan cercanos están los lenguajes a las características físicas de la computadora o qué tan próximos están a las necesidades del programador.
    LENGUAJE MAQUINA.
    Primer Lenguaje de Programación, el único que entiende directamente la computadora: utiliza el alfabeto binario formado por los símbolos 0 y 1 (apagado / encendido). Son realmente difíciles de aprender y de manejar, ya que no resultan nada cercanos al ser humano, pero son muy rápidos, ya que se ahorra mucho tiempo en la respuesta, puesto que se evitan las traducciones intermedias. A este lenguaje también se le considera un Lenguaje de Bajo nivel.
    Una serie de lenguaje maquina son:
    0010 0000 0000 1001
    1001 0001 1001 1110
    como se puede observar, estas instrucciones serán fáciles de leer por la computadora y difíciles por un programador, y viceversa. Esta razón hace difícil de escribir programas en código o lenguaje maquina y requiere buscar otro lenguaje para comunicarse con la computadora, pero que sea más fácil de escribir y leer por el programador.
    Para evitar la tediosa tarea de escribir programas en lenguaje máquina se han diseñado otros lenguajes de programación que facilitan la escritura y posterior ejecución de los programas.
    LENGUAJE DE BAJO NIVEL (ENSAMBLADOR).
    Surge con la evolución del Lenguaje Maquina, sustituye las cadenas de símbolos binarios por nemotécnicos: ADD, SUB, DIV.
    Dependen de las características de cada maquina y sólo son comprensibles por especialistas. Aparecieron durante la primera generación de computadoras.
    0110 1001 1010 1011
    ADD M, N, P
    ADD suma DIV dividir
    SUB resta LDA cargar acumulador
    MPY multiplicar STO..almacenar
    Una instrucción típica en ensamblador puede ser:
    ADD x, y, z
    Esta instrucción significa que se debe sumar los números almacenados en las direcciones x, y, y almacenar el resultado en la dirección z. El programa ensamblador traducirá.
    Programa en código maquina programa en ensamblador
    Después que un programa ha sido escrito en lenguaje ensamblador se necesita un programa -llamado ensamblador- que lo traduzca a código máquina.
    LENGUAJE DE ALTO NIVEL.
    Son desarrollados para el usuario de la computadora, permiten que los procedimientos se expresen con un estilo comprensible; sin embargo, la computadora no los entiende directamente. Algunos de estos lenguajes fueron desarrollados durante la Segunda Generación de computadoras y la mayoría durante la Tercera Generación, por ejemplo: Pascal, BASIC, Ada, FORTRAN, etc.
    Usan traductores (compiladores o interpretes), son independientes de la máquina, las instrucciones no dependen del diseño de la maquina, los programas son portables o transportables, pueden ejecutarse en diferentes máquinas.
    Por ejemplo, las líneas siguientes son: una línea de un programa en Turbo Pascal y su línea equivalente en pseudo código.
    IF (x=y) AND (z=w) THEN WRITE (`esto es una prueba');
    si (x=y) y (z=w) entonces ESCRIBIR (`esto es una prueba');
    Estas líneas se pueden comprender fácilmente conociendo la traducción de las palabras inglesas IF(si), THEN (entonces), WRITE(escribir / imprimir), AND(y) y sin necesidad de mucha explicación.
    Es posible escribir también operaciones como:
    Z := x + y la suma x + y se asigna a la variable z.
    COMPILADORES E INTERPRETES.
    El código generado a través de los Lenguajes de Programación (Código Fuente) debe ser convertido en una aplicación que pueda ser ejecutada y utilizada. Los compiladores e interpretes son una especie de traductores o conversores del lenguaje de programación (comprensible para el ser humano) a un lenguaje comprensible por la computadora (cercano a la maquina).
    TIPOS DE PROGRAMA:
    Una vez escrito un programa éste puede estar en código fuente, código objeto o código ejecutable.
    • Código Fuente: recibe este nombre el conjunto de instrucciones tal y como fueron escritos por el programador en el lenguaje de alto nivel (también se le conoce como programa fuente).
    • Código Objeto: son las instrucciones de un programa cuando ya han sido traducidas al lenguaje máquina (también se le conoce como programa objeto).
    • Código Ejecutable: es un código objeto que puede ser ejecutado por la computadora de inmediato (no todos los códigos objeto son ejecutables).
    LOS INTERPRETES.
    Traduce a lenguaje máquina, cada línea del programa fuente y la ejecuta de inmediato.
    Traducen en Lenguaje de Alto Nivel a Lenguaje Maquina, se encargan de traducir cada instrucción, una por una (o cada línea de instrucciones) contenida en un programa escrito en cualquier lenguaje de alto nivel a instrucciones en código binario, comprensible por las computadoras.
    Los interpretes no producen código objeto, por ello la ejecución de un programa requiere forzosamente del código fuente. Además, los programas en lenguaje interpretado se ejecutan con mas lentitud que aquellos en lenguaje compilado.
    LOS COMPILADORES.
    A diferencia de los intérpretes que traducen instrucción por instrucción o línea por línea, los compiladores traducen todo el programa entero y luego lo integran generando un programa ejecutable por si solo. Con esto se consigue mas eficacia e independencia , ya que una vez compilado el programa, el compilador no tiene por qué estar presente, pudiendo ser transportado el programa ejecutable a cualquier computadora, sin ver el listado de ordenes, ni manejar el compilador.
    El compilador es un lenguaje especial que traduce a un programa fuente (escrito en lenguaje de alto nivel) a un código objeto.
    El código o programa fuente es el conjunto de instrucciones en lenguaje de alto nivel.
    Un compilador analiza las líneas del programa e identifica ciertas estructuras para traducirlas adecuadamente a lenguaje maquina. Una vez que se ha efectuado la compilación puede prescindirse del programa fuente.
    El proceso de compilación del Programa Fuente se verifica en cuatro etapas:
    • Análisis de léxico: durante esta etapa se verifica que las palabras utilizadas en el programa fuente pertenezcan al lenguaje.
    • Análisis de sintaxis: esta parte de la compilación examina cada instrucción del programa fuente para que las instrucciones estén organizadas correctamente.
    • Generación de código intermedio: este produce un código simbólico que permitirá efectuar la equivalencia con el lenguaje maquina.
    • Generación de código maquina: en esta ultima etapa se elabora el programa objeto.
    El código o programa objeto son las instrucciones de un programa que ya han sido traducidas a lenguaje maquina.
    El código ejecutable es un código objeto que puede ser ejecutado por la computadora de inmediato.
    A modo de resumen podemos decir que los compiladores producen programas que, una vez depurados y puestos a punto, son ejecutables directamente y los intérpretes, aunque tienen unas necesidades menores de memoria a la hora de traducir los programas fuente, nos hipotecan para siempre en cuanto al tiempo de ejecución de los programas.
    Existen en el mercado compiladores para todos los lenguajes de alto nivel; los intérpretes en cambio sólo se han desarrollado para algunos lenguajes de programación siendo los más conocidos los de BASIC.
    CLASIFICACIÓN DE LOS LENGUAJES DE ACUERDO A SUS APLICACIONES PRINCIPALES:
    Esta clasificación se refiere a las ventajas que tienen los lenguajes para resolver ciertos problemas específicos.
    Los principales lenguajes pueden clasificarse de la siguiente manera:
    • Lenguajes Clásicos o Tradicionales.
    • Lenguajes Visuales (orientados a objetos).
    • Lenguajes de Internet.
    LENGUAJES CLÁSICOS:
    Estos lenguajes están basados en un lenguaje cercano al ser humano en el que se escribe el código necesario para realizar las operaciones que se requieren (miles y miles de líneas generalmente), que posteriormente es traducido o compilado generando un programa ejecutable. Los más conocidos son: el PASCAL, el BASIC, el C, el COBOL, y el CLIPPER. Dependiendo del programa que se requiera realizar pueden ser mejores unos u otros.
    LENGUAJES VISUALES:
    Son lenguajes más avanzadas que los lenguajes clásicos y están basados en objetos. Cada entidad del programa (eventos, acciones, datos, etc.), es un objeto sobre el que se definen operaciones. Esto permite almacenar los objetos (con todo su código de programa), en una serie de librerías y utilizarlos cuando sea necesario, ahorrando al programador el trabajo de tener que volver a programarlos. Son lenguajes muy intuitivos y fáciles de utilizar, y sustituyen las tediosas líneas de código, por sencillas y directas representaciones gráficas.
    LENGUAJES DE INTERNET:
    Son los lenguajes específicos para la creación de páginas Web de Internet, y realizar su programación (motores de búsqueda, seguridad, establecimiento de comunicaciones, etc.).
    Son la última generación de lenguajes. Existen distintos tipos, dependiendo del grado de especialización, aunque algunos, como el HTML, son lenguajes basados en sencillas marcas o TAG.
    La siguiente tabla muestra los principales lenguajes de programación y su utilidad.
    Lenguajes.
    Utilidad.
    BASIC, PASCAL,
    Ada, C y C++
    Logo
    COBOL, RPG, Natural, SQL
    Algol, FORTRAN, APL
    CLIPPER, ACCESS, dBASE, Delphi, SQL
    Smalltalk, Actor, C++, Eiffel
    Visual Basic, Visual C
    HTML, JAVA, PERL
    Lingo
    Prolog, Lisp
    VRLM
    Mapper, Cogen, Linc
    Aprendizaje de programación.
    Programación de sistemas.
    Lenguaje didáctico.
    Gestión de empresas.
    Calculo numérico.
    Bases de datos.
    Programación orientada a objetos (OOP).
    Programación Windows.
    Internet (páginas WEB).
    Programas multimedia.
    Inteligencia artificial.
    Realidad virtual.
    Lenguajes de cuarta generación 4GL.
    Por ultimo para la resolución de un problema, deben seguirse por lo menos los siguiente pasos:
  • Definición del Problema.
  • Análisis del Problema.
  • Diseño del algoritmo.
  • Programación (transformación del algoritmo en un programa).
  • Ejecución y validación del Programa (Pruebas).
  • Mantenimiento del Programa.
  • Estas fases constituyen lo que se denomina: Ciclo del Vida del Software o Ciclo de Vida del Desarrollo de un Sistema, son realizadas por seres humanos, solo la ejecución de los programas es realizada por la computadora.
  • Definición del Problema.
  • El programador debe reconocer cuál es el problema, estableciendo con claridad cuales son los datos disponibles y a qué resultados se desea llegar.
  • Análisis del Problema.
  • Es un estudio profundo del problema y de la situación que lo rodea. El programador deberá entenderlo por completo y proponer una solución para poder transformar los datos disponibles en resultados.
  • Diseño del algoritmo.
  • Se planea la estrategia que permitirá alcanzar la solución del problema.
  • Programación (transformación del algoritmo en un programa).
  • Consiste en traducir el algoritmo diseñado a un lenguaje de programación y aplicarlo en una computadora.
  • Ejecución y validación del Programa (Pruebas).
  • Verifican su funcionamiento para corregir posibles errores.
  • Mantenimiento del Programa.
  • El programador se encarga de modificar el programa según vayan apareciendo necesidades adicionales.
    TIPOS DE LENGUAJE.
    En este apartado vamos a recordar brevemente la historia y a resumir las características de algunos lenguajes de alto nivel.
    El primer lenguaje de alto nivel fue el FORTRAN (FORmula TRANslator), es decir traductor de formulas, que estaba orientado a cálculos técnicos. Después apareció el COBOL (Commom Business Orientated Language) orientado a la gestión. Mas adelante aparecieron PL1, BASIC, APL, PASCAL, ADA, RPG, etc.
    En treinta años se han definido mas de 400 lenguajes, algunos de los cuales han tenido gran aceptación.
    Las características principales a considerar en un lenguaje son la facilidad de empleo, facilidad de aprendizaje, potencia, orientación, gestión de ficheros y periféricos, facilidad de corrección por parte de quien no lo ha diseñado, transportabilidad a otras máquinas y requerimientos de memoria.
    FORTRAN.
    Es el más antiguo, ha tenido muchas mejoras con el paso de los años pero sigue siendo de diseño anticuado e incómodo a pesar de ser muy usado.
    La escritura del programa se hace en hojas de programación con un formato que no es libre, es fácil de entender pero no de manejar.
    En cálculos es muy eficaz, dispone de muchísimas funciones, varios tipos de variables, varios tipos de variables y tiene facilidad de manejo de subprogramas, en cambio es deficiente en manejo de textos.
    La gestión de ficheros sólo existe en la versión V y superiores y no es muy eficiente; lo mismo sucede respecto a periféricos con excepción de las impresoras.
    El lenguaje a llegado a ser un estándar, lo que hace que no haya serios problemas para transportar un programa de una máquina a otra que tenga el mismo compilador. Un problema a considerar en este lenguaje es la relativa dificultad para el mantenimiento de programas al no ser un lenguaje estructurado en módulos que faciliten su mantenimiento. Está orientado a cálculos técnicos y científicos.
    BASIC.
    Significa Código de instrucciones Simbólicas de Propósito General para Principiantes (Beginner's All Surpose Simbolic Instructions Code) y es un lenguaje flexible y fácil de manejar, orientado a los estudiantes y a los que tienen su primer contacto con la informática.
    No tiene rigidez en su sintaxis, y el tratamiento de cadenas de caracteres es muy potente, en calculo es suficientemente bueno, siendo en algunas versiones tan potente como el FORTRAN.
    En la gestión de ficheros es donde tiene el BASIC su principal defecto; la gestión de periféricos es aceptable y la transportabilidad buena. En efecto, de este lenguaje existen multitud de versiones, muchísimas máquinas (prácticamente todas) disponen de traductores de BASIC, y esto hace que no todas las versiones sean iguales, aunque concuerdan en la mayor parte de instrucciones, las diferencias mayores suelen estar en las instrucciones de gráficos / color, música, juegos, y acceso a ficheros.
    Respecto al mantenimiento podemos decir que es fácil de construir programas claros, pero no dispone de suficientes facilidades para ello. Es un lenguaje muy usado en el área de microinformática.
    El BASIC presenta en la actualidad dos tendencias a la <<norma>>, una es el BASIC MSX y la otra el BASIC de los compatibles en IBM.
    Ejemplo de un programa en BASIC.
    Ok
    PRINT “Hola”
    Hola
    Ok
    COBOL.
    Este lenguaje está orientado a la gestión y tiene una sintaxis lógica y estructurada y un vocabulario semejante al ingles; es muy potente en el tratamiento de textos (el mejor probablemente). Y en la definición de datos.
    Las instrucciones de calculo están reducidas al mínimo, pero la gestión de ficheros es muy buena, la transportabilidad no es mala pero presenta problemas, puesto que muchos ordenadores personales no disponen todavía de compilador COBOL.
    El mantenimiento de programas es sencillo, puesto que la facilidad de empleo y la calidad de la sintaxis producen programas de buena legibilidad, aunque conviene que el programador ponga suficientes comentarios.
    Ejemplo de un segmento de programa en COBOL obtiene el mayor de tres numero.
    IF A > B IF A>C
    DISPLAY `A ES EL MAYOR'
    GO TO PAR-1
    ELSE
    DISPLAY `C ES EL MAYOR'
    GO TO PAR-1
    ELSE
    IF B>C
    DISPLAY `B ES EL MAYOR'
    GO TO PAR-1
    ELSE
    DISPLAY `C ES EL MAYOR'
    GO TO PAR-1
    PASCAL.
    Este es un lenguaje diseñado con la idea de la estructuración, es decir programando en PASCAL, se consiguen programas muy fáciles de mantener.
    La sintaxis es relativamente flexible, aunque presenta algunas restricciones en el empleo de los puntos y comas; programar eficazmente es realmente complejo.
    En el tratamiento de cadenas de caracteres era muy limitado, aunque las modernas versiones lo asemejan al BASIC. El tratamiento matemático es bastante completo.
    La gestión de ficheros es muy variable según las versiones de PASCAL, hay de todos los tipos. La gestión de periféricos es deficiente y la transportabilidad muy buena.
    Ejemplo de un programa que suma dos números en PASCAL.
    Program suma:
    Uses crt;
    Var a, b, c: integer;
    Begin
    a :=2; b :=3;
    c := a + b;
    writeln(`La suma es: `,c);
    End.
    APL.
    Este es un lenguaje de propósito científico / técnico y está concebido para descripción de algoritmos directamente, es decir, sin desmenuzar en operaciones elementales.
    Es difícil de manejar, trabaja bien en cadenas de caracteres, muy bien en cálculos (probablemente el mas potente), en cambio tiene una gestión de ficheros limitada, la gestión de periféricos es deficiente y la transportabilidad mala, pues no existe un autentico estándar. El mantenimiento es de una complejidad intermedia.
    Es un lenguaje para cálculos científicos.
    FORTH
    Es un lenguaje difícil de manejar; esta basado en el proceso de construir nuevas instrucciones, la metodología de programación es diferente a las demás.
    Trata las cadenas y los cálculos sin problemas, es deficiente en la gestión de ficheros y optimo en la gestión de periféricos. En cuanto a la transportabilidad es deficiente, debido a que se construyen muchas funciones personalizadas difíciles de traspasar.
    Los programas escritos con FORTH son difíciles de leer, y, por tanto de mantener.
    LOGO.
    Este es un lenguaje interactivo; se maneja empleando diferentes palabras que se combinan como se desean. Se dispone de una serie de palabras básicas (primitivas) y de facilidad para construir nuevas (procedimientos).
    Es ideal para el principiante, al que aproxima a la informática de una manera sencilla.
    El tratamiento de cadenas y de números no es adecuado, la gestión de ficheros es normal y en la gestión de periféricos destaca la de la pantalla gráfica para la que dispone del artificio de <<la tortuga>>, un triángulo que se mueve con las ordenes que se le va dando, dejando un rastro que conforma un gráfico.
    La transportabilidad no es buena y el mantenimiento es normal. Es un lenguaje principalmente orientado a niños y a desarrollos de gráficos elementales.
    C
    El lenguaje C se creó en 1972 en los laboratorio Bell. Es una herramienta muy potente que resulta especialmente útil si se emplea con el sistema operativo UNIX, una prueba de las prestaciones de este lenguaje es que se han escrito muchos sistemas operativos con él en lugar de hacerlo en ensamblador como venía siendo normal.
    La sintaxis de C es sencilla y está basada en la programación por módulos, dispone de una gran variedad de variables y potentes operadores.
    El tiempo de ejecución del C es de decenas de veces menor que el BASIC y es un lenguaje de un nivel suficientemente bajo como para sustituir al ensamblador.
    A continuacion un ejemplo de cómo imprimir un comentario en C.
    # include <stdio.h>
    int main()
    {
    printf(“Este es un ejemplo”);
    return 0;
    }
    PROLOG.
    Este es un lenguaje inicio de la serie de lenguajes que son del futuro de la informática, el PROgrammer en LOGIQUE (PROLOG), está basado en la lógica y es el ideal para el manejo de conocimientos que es la base de los lenguajes de inteligencia artificial.
    El concepto de este programa como serie secuencial de instrucciones desaparece y en su lugar aparece una serie de hechos y de conocimientos sobre estos hechos.
    Este lenguaje no está orientado a cálculos ni a manejo de textos, es un lenguaje de conocimiento.
    LENGUAJES DE CUARTA GENERACIÓN
    Un lenguaje puede ser considerado como de <<cuarta generación>> si cumple los requisitos que se detallan a continuación:
    Los usuarios deben poder obtener los resultado en un tiempo mucho menor del necesario con los lenguajes de la tercera generación, como puede ser COBOL o FROTRAN.
    El sistema será cercano al usuario (amigable) y fácil de aprender y recordar.
    La herramienta será adecuada para su utilización, tanto por los usuarios finales como por los profesionales de proceso de datos.
    Los lenguajes de cuarta generación ofrecen más potencia a los programadores; es normal que los programas reduzcan en un 20% ò 30% el tiempo de desarrollo respecto al tiempo necesario para hacerlos en COBOL.
    La tendencia actual hacia la informática distribuida hace que muchos usuarios dispongan de su terminal o microordenador para desarrollo de aplicación generalmente conectado a los ordenadores corporativos. Esto exige disponer de herramientas de desarrollo de programas fáciles de usar y potentes; estas herramientas de lenguaje conforman lo que se ha dado en llamar lenguajes de <<cuarta generación>>.
    Las categorías clásicas de herramientas de los lenguajes de <<cuarta generación>> van desde herramientas de microordenadores (software integrado) hasta los generadores de aplicaciones que generan programas fuente a partir de las especificaciones del problema. Como herramientas intermedias, entre esos extremos, podemos mencionar los generadores de informes, generadores de gráficos, los modelos financieros y los sistemas de interrogación de bases de datos.
    Los generadores de aplicaciones están integrados dentro de la herramienta de lenguajes de <<cuarta generación>> y permiten que pueda llegar a generarse una aplicación entera. Los generadores de aplicaciones mas potentes soportan un amplio espectro de componentes integrados, entre los que se incluyen, un sistema de gestión de base de datos, lenguaje de consulta, generador de informes, generador de gráficos, pixel de pantalla, herramientas de apoyo a la toma de decisiones o modelado financiero, múltiples interfaces de usuario final, lenguaje de procedimiento alto nivel, lenguaje de definición de datos, facilidad de proceso distribuido, enlace de comunicaciones entre el microordenador y el ordenador central y, en algunos casos, una versión de esta herramienta para el ordenador principal.
    Entre las herramientas de generación de aplicaciones que están orientadas al usuario final, cabe citar el FOCUS, el MAPPER y el NOMAD.
    Generalmente , los lenguajes de cuarta generación:
    • Evita la utilización de sintaxis poco natural, orientada al ordenador.
    • Utiliza el ingles corriente, siempre que resulta posible.
    • Permite la elección entre múltiples interfaces de mandatos adecuados a los deferentes niveles de la experiencia del usuario (es decir, elección del ingles común, o sintaxis de mandatos cercana al ingles).
    • Interacción con el ordenador sencilla para el usuario.
    • Menús apropiados, facilidades de ayuda y autoenseñanza.
    • Utilización de ventanas de pantalla superpuesta.
    • Utilización de símbolos gráficos (iconos).
    • Utilización de un ratón para seleccionar mandatos, menús, funciones de scroll y de edición.
    • Interacción mínima con el teclado.
    • Opciones inteligentes por defecto.
    • Subconjunto sencillo de operaciones que pueden ser aprendidas en una o dos horas.
    CONCLUSIÓN
    Como puede verse, existen lenguajes específicos para cada tarea diferente.
    Muchos de ellos (Lenguajes de Programación) ya no se usan, mientras que las nociones de otros han sido incorporadas a otros lenguajes.
    Los lenguajes y las Técnicas de Programación son importantes para la utilización de la computadora como una herramienta para resolver problemas.
    En computación, un Problema consiste en la necesidad de transformar un grupo de datos iniciales en un grupo diferente de datos finales (resultados).
    De este modo, una computadora podrá resolver un problema si alguien desarrolla un programa que contenga las instrucciones adecuadas que permitan transformar los datos.
    Los lenguajes deben ser confiables, comprensibles, eficientes en términos de tiempo de ejecución y consumo de espacio, y deben satisfacer las necesidades de una comunidad, ya sean científicos, hombres de negocios o usuarios no técnicos. Cada uno estos grupos está acostumbrado a un vocabulario particular y una manera de ver las cosas; de este modo, existe una gran variedad de lenguajes y muy probablemente esto continuará siendo así.
    • Cronología.
    • FECHA LENGUAJE ACONTECIMIENTO
      1953 FORTRAN Job Backus propone el desarrollo de un nuevo lenguaje
      1954 FORTRAN Un equipo de IBM comienza a trabajar en el FORTRAN
      1957 FORTRAN IBM desarrolla la primera versión
      1959 LISP El profesor John McCarthy y sus alumnos desarrolla el LISP
      1960 ALGOL Se reúnen representantes europeos y de EEUU para la creación de un nuevo lenguaje
      1960 COBOL Fue creado COBOL
      1962 APL Se publica el libro de Kenneth Iverson “A Programming Language
      Mediado de los 60 APL El APL es implantado por IBM en una versión conocida como APL/360
      1965 BASIC Aparece BASIC
      1966 FORTRAN Aparece el FORTRA IV
      1968 ALGOL Se implemento una nueva versión multi-proposito
      Finales de los 60 APL Está disponible para el mercado en general
      1970 PASCAL Niklaus Wirth diseña PASCAL
      1972 PROLOG Se desarrolla en la Universidad de Aix-Marsailles en Francia.
      1972 C Dennis Ritchie crea el lenguaje C.
      1977 FORTRAN Aparece el FORTRAN 77
      Finales de los 70 MODULA-2 Niklaus Wirth dirige el desarrollo de MODULA-2
      Principio de los 80 C++ Se desarrolla el lenguaje C++
      1985 CLIPPER Se crea CLIPPER
      1986 CLIPPER Aparece CLIPPER AUTUMN'86
      1987 CLIPPER CLIPPER SUMMER'87
      1990 FORTRAN Aparece el FORTRAN 90
      Principios 90 JAVA James Gosling y su equipo comienzan a desarrollar JAVA
      1993 Visual C++ Se desarrolla el lenguaje Visual C++
      1994 DELPHI Aparece la primera versión
      1995 JAVA Se lanza al mercado JAVA
      1999 DELPHI Aparece Delphi 5.0 para windows 98 NT/2000

    martes, 11 de diciembre de 2012

    Lenguaje de programación que deberías aprender primero

    ¿Qué lenguaje de programación debería yo aprender primero?". :

    Depende:
    • Para programar en un lenguaje expresivo y poderoso: Python.
    • Para construir un sitio rápidamente: PHP.
    • Para mezclarte con programadores que se llaman "super estrellas" ellos mismos: Ruby.
    • Para realmente prepararte a programar: C.
    • Para alcanzar la iluminación: Scheme.
    • Para sentirte deprimido: SQL
    • Para perder un cromosoma: Microsoft Visual Basic
    • Para tener garantía, mediocridad, pero tener un trabajo bien pagado escribiendo aplicaciones financieras en un cubículo bajo luz fluorescente: Java
    • Para hacer la misma cosa que lo anterior, con certificaciones y cartas después de tu nombre: C#
    • Para adquirir un sentimiento mágico de niñez y preguntarte si has tenido tiempos difíciles diferenciándote de la megalomanía: Objective C.
    • Y podría yo seguirme extendiendo... pero hoy no me siento suficientemente odioso.
    Yo le añadiría a ILE RPG lo mismo que C# y Java.

    Y solo para explicar lo que entendí con respecto a la mediocridad: Una vez que lo aprendes, ya no necesitas aprender más cosas, solo reusas frameworks y herramientas, y no te preocupas por el crecimiento de la aplicación, ya alguien tendrá que reescribir la aplicación en el futuro.

    porcentajes de lenguajes de programación solicitados, basados en información de compañías de server hosting y cloud computing.

     8 lenguajes de programación que deberías aprender

    1.PHP

    ¿Qué es?

    PHP usa una mezcla entre interpretación y compilacion para intentar ofrecer a los programadores la mejor mezcla entre rendimiento y flexibilidad.

    PHP compila para tu codigo una serie de instrucciones (llamadas opcodes) siempre que estas son accedidas. Estas instrucciones son entonces ejecutadas una por una hasta que el script termina. Esto es diferente a la manera convencional de compilacion de lenguajes como C++ donde el código es compilado a código ejecutable que es despues ejecutado. Php es recompilado cada vez que se solicita un script.
    Una ventaja importante de interpretar el código es que toda la memoria usada por tu código es manejada por PHP, y el lenguaje automáticamente vacía esta memoria cuando el script finaliza. Esto significa que tu no tienes que preocuparte de las conexiones a la base de datos, porque PHP lo hará por ti.

    ¿Por qué deberías aprenderlo?

    Es uno de los lenguajes de progrmación más populares, la gran fluidez y rapidez de sus scripts y su prometedor futuro, desarrollar aplicaciones Webs utilizando lenguajes como C o COBOL son cosas del pasado.

    2.C#

    ¿Qué es?

    C# es un lenguaje de propósito general orientado a objetos creado por Microsoft para su plataforma .NET.
    Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes. C# fue diseñado para combinar el control a bajo nivel de lenguajes como C y la velocidad de programación de lenguajes como Visual Basic.

    ¿Por qué deberías aprenderlo?

    Es una parte esencial de la plataforma .Net, C# combina los mejores elementos de múltiples lenguajes de amplia difusión como C++, Java, Visual Basic o Delphi. De hecho, su creador Anders Heljsberg fue también el creador de muchos otros lenguajes y entornos como Turbo Pascal, Delphi o Visual J++. La idea principal detrás del lenguaje es combinar la potencia de lenguajes como C++ con la sencillez de lenguajes como Visual Basic, y que además la migración a este lenguaje por los porgramadores de C/C++/Java sea lo más inmediata posible.

    3.AJAX

    ¿Qué es?

    AJAX no es un lenguaje exactamente su nombre viene dado por el acrónimo de Asynchronous JavaScript And XML y es posiblemente la mayor novedad en cuanto a programación web en estos últimos años.
    El corazón de Ajax es el objeto XMLHttpRequest que nos permite realizar una conexión al servidor y al enviarle una petición y recibir la respuesta que procesaremos en nuestro código Javascript, estamos hablando del verdadero motor de Ajax, por ejemplo gracias a este objeto podemos desde una página HTML leer datos de una web o enviar datos de un formulario sin necesidad de recargar la página.


    ¿Por qué deberías aprenderlo?

    La demanda de AJAX no sólo es amplía sino que de calidad debido a la dificultad de aprendizaje que conlleva, si la herramienta de Microsoft, Atlas, destinada a la realización de aplicaciones AJAX tiene éxito puede suponee un aumento en la demanda de esta tecnología.

    4.JavaScript

    ¿Qué es?

    Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado.

    ¿Por qué deberías aprenderlo?

    La razón de mayor peso es que es utilizado por millones de páginas webs para validar formularios, crear cookies, detectar navegadores y mejorar el diseño, su fácil aprendizaje lo hace un lenguaje muy demandado.

    5.Perl

    ¿Qué es?

    Perl es la alternativa más popular a PHP, seguramente porque es el lenguaje más antiguo tambien dentro de las alternativas. En internet nos encontramos numerosos recursos que utilizan Perl, muchos de las aplicaciones “open source” requieren tener Perl instalado correctamente. Perl tiene una ventaja y es que es muy flexible, y tambien tiene un gran cantidad de modulos ya escritos.
    Bien escritos los scripts en Perl se asemejan bastante a PHP. La principal causa de la sucía apariencia de Perl es por la afición de sus desarrolladores a la escritura en “una línea” empaquetanto numerosas funcionalidades en una sola línea de código.

    ¿Por qué deberías aprenderlo?

    La potencía de Perl a la hora de procesar grandes cantidades de datos lo hace realmente popular a la hora de desarrollar aplicaciones del lado del servidor, aprender Perl o Php es básico a la hora de desarrollar aplicaciones Web.

    6.C

    ¿Qué es?

    Es un lenguaje de “medio nivel” pero con numerosas 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.

    ¿Por qué deberías aprenderlo?

    Aprender C es básico mientras aprendes C estas aprendiendo conceptos básicos de lenguajes cómo Java o C#, además no sólo es mas sencillo que estos últimos sino que comporten gran parte de su sintaxis.

    7.Ruby y Ruby on Rails

    ¿Qué es?

    Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby.
    Ruby apareció en el año 1995 y creo que su principal problema había sido
    la falta de documentación en otro idioma que no sea japonés. Eso se ha ido
    solucionando y crece la popularidad del lenguaje. Su aplicación insignia,
    por decirlo de algún modo parece ser RoR. Su mecanismo de gem se me parece
    al CPAN de Perl y al Pear de PHP. 

    ¿Por qué deberías aprenderlo?

    Simple y funcional, el uso de Active Record de forma eficiente simplifica y agiliza el desarrollo de forma notable. Al minimizar el trabajo con la base de datos (escribiendo triggers y procedimientos almacenados) y emplear un único lenguaje para todo el desarrollo, se consigue acortar los tiempos de desarrollo (time2market).

    8.ASP

    ¿Qué es?

    Active Server Pages (ASP) y ASP.NET es un intendo de Microsoft para introducirse en el mercado del desarrollo Web, y viene a ser como su estandar para su servidor Web, ISS. Asp ha sido atacado por la comunidad open source desde que este apareció, y dan numerosas razones para ello:
    El propietario, una única plataforma, la lentitud…
    Me gustaría decir “Si, si, y si”, pero no me debo dejar llevar. La realidad es que ASP ha sido implementado en otras plataformas y que cuando esta funcionando bajo su servidor predeterminado IIS es relativamente rápido. 

    ¿Por qué deberías aprenderlo?

    Simplemente porqué en algunas ocasiones no tienes otra opción debido a la popularidad que ha alcanzado.

     

    lunes, 10 de diciembre de 2012

    La Implementación

    La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje: compilación e interpretación.
    • Compilación: es el proceso que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz interpretar. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente.
    • Interpretación: es una asignación de significados a las fórmulas bien formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en términos puramente sintácticos, sus fórmulas bien formadas pueden no ser más que cadenas de símbolos sin ningún significado. Una interpretación otorga significado a esas fórmulas.
    Se puede también utilizar una alternativa para traducir lenguajes de alto nivel. En lugar de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente.
    La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código.
    La mayoría de lenguajes de alto nivel permiten la programación multipropósito, aunque muchos de ellos fueron diseñados para permitir programación dedicada, como lo fue el Pascal con las matemáticas en su comienzo. También se han implementado lenguajes educativos infantiles como Logo mediante una serie de simples instrucciones. En la actualidad son muy populares algunos lenguajes especialmente indicados para aplicaciones web, como Perl, PHP, Ruby, Python o JavaScript.

    Breve resumen de la historia de lenguajes informaticos

    Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas extensas de números 0 y 1.
    Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.
    La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó "instrucciones", y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.
    La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora.
    A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar la computadora central IBM 704. El histórico equipo Fortran de Backus consistió en los programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.2
    El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador.
    En 1960, se creó COBOL, uno de los lenguajes usados aún en 2010 en informática de gestión.
    A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método más eficiente para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará una sola sentencia..