Lenguajes de programacion.

# Lenguaje de programación

Es aquella estructura que, con una cierta base sintáctica y semántica, imparte distintas instrucciones a un programa de computadora. En todo caso los lenguajes de programación deben tener instrucciones que pertenecen a las categorías ya familiares de entrada/salida, cálculo/manipulación de textos, lógica/comparación y almacenamiento / recuperación.

Un **lenguaje de programación** es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.1

Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:

* El desarrollo lógico del programa para resolver un problema en particular.
* Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
* Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
* Prueba y depuración del programa.
* Desarrollo de la documentación.

Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten estructurar el contenido de los documentos).

Permite especificar de *manera precisa* sobre qué datos debe
operar una computadora, cómo deben ser almacenados o transmitidos y qué
acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a
 través de un lenguaje que intenta estar *relativamente*
 próximo al lenguaje humano o natural. Una característica relevante de
los lenguajes de programación es precisamente que más de un programador
pueda usar un conjunto común de instrucciones que sean comprendidas
entre ellos para realizar la construcción de un programa de forma
colaborativa.

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 semejante a la de los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.

El primer programador de computadora que se haya conocido fue una mujer: Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella inició 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 la actualidad, 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.

## Elementos

### Variables y vectores

Imagen tomada de Pauscal, lenguaje de programación en español creado en Argentina.

Las variables son títulos asignados a espacios en memoria para
almacenar datos específicos. Son contenedores de datos y por ello se
diferencian según el tipo de dato que son capaces de almacenar. En la
mayoría de lenguajes de programación se requiere especificar un tipo de
variable concreto para guardar un dato específico. Por ejemplo, en Java, si deseamos guardar una cadena de texto debemos especificar que la variable es del tipo *String*. Por otra parte, en lenguajes como PHP
 este tipo de especificación de variables no es necesario. Además,
existen variables compuestas llamadas vectores. Un vector no es más que
un conjunto de bytes consecutivas en memoria y del mismo tipo guardadas
dentro de una variable contenedor. A continuación, un listado con los