Programación
Programación
Programación
Los programas son una serie o secuencia de instrucciones entendibles por los
ordenadores que permiten la realización de las acciones o tareas para las que han sido
creadas. Para escribir un programa se utilizan distintos lenguajes, denominados lenguajes
de programación.
Los programas se escriben en lo que se denomina lenguaje fuente, en el que se
especifican las instrucciones que el programador desea que se ejecuten con el fin de
realizar las acciones para las que se ha diseñado el algoritmo. Sin embargo, este código no
lo puede entender directamente el ordenador y debe ser traducido al único lenguaje que el
ordenador puede interpretar: el lenguaje máquina o código binario. Para realizar esta
transformación del código se utilizan unos traductores, denominado compiladores e
intérpretes, que convierten las instrucciones dadas por el programador en instrucciones
comprensibles por un ordenador y generan el llamado código objeto, que es el archivo
fuente traducido a lenguaje máquina.
Lenguajes de programación.
La programación, en términos informáticos, es la parte de la informática que se dedica a la
creación de programas. Un lenguaje de programación es un conjunto de símbolos y
palabras (instrucciones y sentencias) que el usuario tiene a su disposición para elaborar un
programa. Formalmente, un lenguaje de programación se define como un conjunto de
símbolos, reglas sintácticas y reglas semánticas que se utiliza para controlar el
comportamiento físico y lógico de un ordenador. Las reglas sintácticas definen la estructura
del lenguaje y las reglas semánticas definen el significado de sus elementos y expresiones.
Tipos de lenguajes de programación.
Los lenguajes de programación se pueden clasificar atendiendo a varios criterios: según el
nivel de abstracción, la forma de ejecución o el paradigma de programación que utiliza cada
uno de ellos.
Nivel de abstracción
Según el nivel de abstracción los lenguajes de programación se clasifican en:
Lenguajes de bajo nivel
En este tipo se encuentran los lenguajes máquina directamente entendible por la máquina
(el ordenador), siendo sus instrucciones cadenas binarias (de 0 y 1). El lenguaje máquina
es el lenguaje en el que hay que expresar cualquier cosa que se desee que realice un
ordenador. Es obvio que para los humanos expresarse en estos términos es muy
complicado, y por eso este tipo de lenguaje dejó de utilizarse, a causa de su complejidad y
de la facilidad para cometer errores al utilizarlo.
El lenguaje ensamblador fue el primer lenguaje de programación que trató de sustituir al
lenguaje máquina por uno mucho más parecido al de los seres humanos. Las instrucciones
en lenguaje ensamblador son instrucciones conocidas como nemónicos: por ejemplo, para
indicar que se quiere realizar una suma se usa una instrucción llamada ADD. Para que el
programa escrito en lenguaje ensamblador pueda ejecutarse es necesario traducirlo a
lenguaje máquina mediante un programa intérprete denominado también ensamblador
(assembler). El principal inconveniente del lenguaje ensamblador es que está muy ligado al
tipo de máquina en que se ejecuta, lo que impide su portabilidad. Además, aunque
constituye un importante paso para liberarse del código binario, se necesitan muchas
instrucciones para realizar tareas simples y exige grandes conocimientos sobre los
componentes hardware de la máquina, por lo que programar en ensamblador resulta aún
muy complejo.
Lenguajes de alto nivel
Estos lenguajes están diseñados para que los programadores escriban y entiendan
instrucciones lo más parecidas al lenguaje humano (normalmente el inglés), lo cual hace
que se necesite menos tiempo para aprender a programar; por ello son los más utilizados
por los programadores. Además, los lenguajes de programación de alto nivel son
independientes de la máquina y se pueden ejecutar, prácticamente sin modificaciones en
diferentes tipos de ordenadores. Como es lógico, el código fuente escrito en un lenguaje de
alto nivel debe ser traducido a código máquina mediante un compilador o un intérprete.
Forma de ejecución
Según la forma de ejecución los lenguajes de programación se clasifican en:
Lenguajes compilados
Antes de poder ejecutar un programa escrito en un lenguaje de programación compilado es
necesario invocar a un traductor denominado compilador que se encarga de traducir
(compilar) el programa original (código fuente) al programa equivalente escrito en lenguaje
máquina o ensamblador (código objeto). Los binarios son los programas ejecutables y los
únicos necesarios para el funcionamiento del programa.
Lenguajes interpretados
Cada vez que se usa el programa debe invocarse a un traductor llamado intérprete que se
encarga de traducir (interpretar) las instrucciones del programa original (código fuente) a
código máquina según van siendo utilizadas. Para el funcionamiento del programa siempre
es necesario disponer del código original y del intérprete.
Las principales diferencias entre los lenguajes compilados e interpretados son:
• Los programas escritos en lenguajes compilados se compilan una vez y se utilizan cuantas
veces se desee sin necesidad de volver a utilizar el compilador. Los lenguajes interpretados
son interpretados, valga la redundancia, cada vez que se ejecutan y necesitan siempre del
intérprete.
• Los compiladores analizan todo el programa y no generan resultados si no es correcto
todo el código. Los intérpretes analizan las instrucciones según las necesitan y pueden
iniciar la ejecución de un programa con errores e incluso terminar correctamente una
ejecución de un programa con errores siempre que no haya sido necesario el uso de las
instrucciones que contienen dichos errores.
• Un compilador traduce cada instrucción una sola vez. Un intérprete debe traducir una
instrucción cada vez que la encuentra.
• Los códigos objeto son compilados para una arquitectura específica y no se pueden utilizar
en otras arquitecturas no compatibles (aunque pueden existir distintos compiladores para
generar códigos objeto para diferentes arquitecturas). Un lenguaje interpretado puede ser
utilizado en cualquier arquitectura que disponga de un intérprete sin necesidad de cambios.
• Los lenguajes compilados son más eficientes que los interpretados y además permiten
distribuir el programa en forma confidencial mediante código binario.