Lenguaje de programación

Lenguaje de programación

Un lenguaje de programación puede ser cualquier lenguaje artificial que pueda utilizarse para definir una secuencia de instrucciones para su procesamiento en una máquina (maquinaria industrial, un ordenador, una tablet, un móvil)

Se asume generalmente que la traducción de las instrucciones a un código que comprende la máquina debe ser completamente sistemática. Normalmente es la máquina quien realiza la traducción

Lenguaje de bajo nivel

A muy bajo nivel, los microprocesadores procesan exclusivamente señales electrónicas binarias. Dar una instrucción a un microprocesador supone en realidad enviar series de unos y ceros espaciados en el tiempo de una forma determinada. Esta secuencia de señales se denomina código máquina

El código representa normalmente datos e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Esta abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de cada microprocesador

Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son difíciles de comprender. Lo más importante es el hecho de que los programas escritos en bajo nivel son prácticamente específicos para cada procesador. Si se quiere ejecutar el programa en otra máquina con otra tecnología, será necesario reescribir el programa desde cero

Lenguaje de alto nivel

Por lo general se piensa que las máquinas realizan tareas de cálculos o procesamiento de textos. La descripción anterior es sólo una forma muy esquemática de ver como trabajan. Existe un alto nivel de abstracción entre lo que se le pide a la máquina y lo que realmente comprende. Existe también una relación compleja entre los lenguajes de alto nivel y el código máquina

Los lenguajes de alto nivel son más fáciles de comprender que el código máquina porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC (uno de los lenguajes de alto nivel más conocidos por su sencillez de aprendizaje), los comandos como ‘IF CONTADOR = 10 THEN STOP’ pueden utilizarse para pedir a la máquina que pare si la variable CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las máquinas parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática

Interpretes y compiladores

La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a un código máquina (o código objeto) no es un proceso muy complicado y lo realiza normalmente un programa especial llamado compilador. La traducción de un código fuente de alto nivel a un código máquina también se realiza con un compilador, en este caso este programa será más complejo, o mediante un intérprete

Un compilador crea una lista de instrucciones de código máquina, el código objeto, basándose en un código fuente. El código objeto resultante es un programa ejecutable que ya puede funcionar en la máquina, pero que puede hacer que se bloquee si no está bien diseñado

Los intérpretes, por otro lado, son más lentos que los compiladores ya que no producen un código objeto, sino que recorren el código fuente una línea cada vez. Cada línea se traduce a código máquina y se ejecuta. Cuando la línea se lee por segunda vez, como en el caso de los programas en que se reutilizan partes del código, debe compilarse de nuevo. Aunque este proceso es más lento, es menos susceptible de provocar bloqueos indeseados en la máquina