2.27.2014

1.2 Evolucion de los lenguajes de programacion

1.2.1 Definicion, caracteristicas y funciones de los lenguajes de programacion

¿Que es un lenguaje de programacion?
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.

Según la forma de ejecución, se dividen en dos tipos diferentes

-Lenguajes compilados

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. 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. Se requiere una corrida de compilación antes de procesar los datos de un problema.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).
Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.

-Lenguajes interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producció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 proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el 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 corrida de 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 corrida de producción.

Caracteristicas:
Tenemos muchas características, pero en general las más deseables son que el lenguaje sea expresivo, legible y eficiente. Otras las enumeramos a continuación.

Simplicidad : 
Aumenta la legibilidad y la facilidad de escritura, aunque demasiada simplicidad tiene el efecto contrario sobre la legibilidad. Aumenta la confiabilidad del software ya que al ser más sencillo, la verificación y detección de errores es más sencilla.

Estructuras de control: 
Controlan el flujo de ejecución de los programas. Influyen en la legibilidad y en la facilidad de escritura. Aumentan el control que el programador tiene sobre un programa, y por lo tanto aumenta la confiabilidad. Ejemplos son las estructuras IF-THEN-ELSE, WHILE, FOR, etc.

Tipos y estructuras de datos: 
son muy útiles ya que organizan la información de acuerdo a su tipo y en estructuras de datos convenientes. Los tipos y estructuras de datos aumentan la confiabilidad ya que es posible el chequeo de tipos.

Diseño de sintaxis: 
Determina la manera en que se combinan los símbolos y elementos de un lenguaje. Influye en la legibilidad y facilidad de escritura, en la confiabilidad y en los costos.

Soporte para abstracción: 
minimiza la complejidad de los problemas a resolver agrupandolos de acuerdo a ciertas características. Está comprobado que esta característica aumenta la legibilidad y facilidad de escritura así como la confiabilidad.


Expresividad: 
Se refiere a la naturalidad con la que un lenguaje expresa sus sentencias. Aumenta la legibilidad y la confiabilidad, y en general disminuye la facilidad de escritura y el costo de aprendizaje.

Funciones de los lenguajes de programacion
Los  lenguajes pueden ser usados para varios propósitos, acceso a bases de datos, comunicación entre computadoras, comunicación entre dispositivos, captura de datos, cálculos matemáticos, diseño de imágenes o páginas.
En forma más general algunos lenguajes de programación, pueden usarse para crear sistemas operativos, manejadores de bases de datos, compiladores, etc.., puede usarse para cualquier desarrollo, aplicado en la mayoría de las actividades que desarrolla el hombre.

Para ciertas tareas más comunes, existen bibliotecas para facilitar la programación que permiten la reutilización de código.

Aqui un top 20 de los lenguajes mas utilizados (hasta Enero del 2014)

Conclusión
En conclusión:
-Un lenguaje de programación es un lenguaje con reglas semánticas y sintácticas que sirve para controlar el comportamiento de una maquina
-Se dividen en "Compilados" (lenguaje de alto nivel, no se ejecuta mientras existan errores) y en "Interpretados" (ejecuta linea por linea, es mas lento la ejecución, pero mas rapido en diseño)
-Caracteristicas: Simples, expresivos, abstractos y estructurados

Cuestionario
1.-Nombra 5 características de un lenguaje de programación
2.-¿Como se dividen los lenguajes de programación, según su forma de ejecución?
3.-Cuantos de los lenguajes del Top 20 conoces?
4.-En lista 5 usos de un lenguaje de programación
5.-¿Que es un lenguaje compilado?
6.-¿Que es un lenguaje interpretado?


Juego (Extra)
En esta ocasion, pongo a prueba su habilidad de coordinacion, ¿Cuanto tiempo aguantan en este juego?

2 comentarios: