Lenguaje de programación, en informática, cualquier lenguaje artificial
que puede utilizarse para definir una secuencia de instrucciones para su
procesamiento por un ordenador o computadora. Es complicado definir qué es y
qué no es un lenguaje de programación. Se asume generalmente que la traducción
de las instrucciones a un código que comprende la computadora debe ser
completamente sistemática. Normalmente es la computadora la que realiza la traducción.
Lenguajes de bajo nivel
Vistos 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 espaciadas en el tiempo de una forma
determinada. Esta secuencia de señales se denomina código máquina. El código
representa normalmente datos y números 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 a menudo
difíciles de aprender. Más importante es el hecho de que los programas escritos
en un bajo nivel sean altamente específicos de cada procesador. Si se lleva el
programa a otra máquina se debe reescribir el programa desde el principio.
Lenguajes de alto nivel
Por lo general se piensa que los ordenadores son máquinas que realizan
tareas de cálculos o procesamiento de textos. La descripción anterior es sólo
una forma muy esquemática de ver una computadora. Hay un alto nivel de
abstracción entre lo que se pide a la computadora 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 normalmente fáciles de aprender porque están
formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido,
los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para
pedir a la computadora que pare si 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 computadoras parecen comprender un lenguaje natural, lo hacen en
realidad de una forma rígida y sistemática.
Intérpretes 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 se realiza normalmente por 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 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 rápido y listo para funcionar, pero que puede hacer que falle el ordenador
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 fallos en la
computadora.