Você está na página 1de 4

Universidad Nacional Experimental de Guayana

Rectorado Puerto Ordaz


Fundamentos de la informática
Ingeniería informática
Lenguajes de programación. Traductores.

Por: ​Lilainnys Gracia ​CI: 25319442

Un programa y sus sentencias se construyen a través de unos símbolos y de acuerdo a


unas reglas que constituyen la gramática del lenguaje de programación. En este tema
abordaremos el estudio de los lenguajes de programación, sus elementos, la forma en que se
describe su sintaxis y los fundamentos del proceso de traducción.

Se describirán los distintos tipos de lenguajes de programación y se justificara su


existencia; para ello examinaremos las limitaciones de los lenguajes de máquina y cómo
superar estas con traductores, que permiten utilizar lenguaje de alto nivel.

Un lenguaje de programación es un conjunto de símbolos y de reglas para combinarlos,


que se usan para expresar algoritmos. Los lenguajes de programación, al igual que los
lenguajes que usamos para comunicarnos, poseen un léxico, una sintaxis, que indica cómo
realizar construcciones del lenguaje, y una semántica que determina el significado de cada
construcción correcta. Los lenguajes de programación poseen características especiales
estas son:

● Son independientes de la arquitectura física del computador. Esto significa que no


están restringidos a trabajar con un modelo de computador específico, por lo tanto
se pueden utilizar los mismos programas en computadores diferentes con distintos
lenguajes de máquina.
● Utilizan notaciones cercanas a las habituales en el ámbito en que se usan. En los
diferentes lenguajes de programación las operaciones se expresan con sentencias o
frases muy parecidas al lenguaje matemático o al lenguaje natural. Es por este
motivo que se utilizan los términos o palabras en inglés.
Como el computador puede interpretar y ejecutar únicamente lenguaje máquina, existen
programas traductores, que traducen programas escritos en lenguajes de programación a
lenguaje máquina. Hay dos tipos de traductores de lenguajes de programación los
compiladores y los intérpretes. Un traductor es un programa que recibe como entrada un
texto en lenguaje de programación concreto y produce como salida un texto en lenguaje
máquina equivalente. El programa inicial se denomina programa fuente, y el programa
obtenido, programa objeto. La traducción por un compilador consta de dos etapas
fundamentales a lo largo del proceso; La etapa de análisis del programa fuente que
conlleva la realización de un análisis del léxico, de la síntesis y de la semántica y la síntesis
del programa objeto la cual conlleva la generación de código y su optimización. La
compilación es un proceso complejo y en cualquiera de las fases de análisis el compilador
puede dar mensajes de error que detecte el programa fuente.

Para poder realizar el proceso de traducción de manera correcta y asertiva se deben pasar
por diferentes fases de análisis como lo son:

- El análisis lexicográfico el cual consiste en descomponer el programa fuente en sus


elementos constituyentes o símbolos de léxico. Los símbolos de le un lenguaje son
caracteres o secuencias de caracteres que tienen un significado concreto en el lenguaje; el
analizador aísla los símbolos, identifica su tipo y almacena en la tablas de símbolos la
información que pueda ser necesaria durante el proceso de traducción.

- El análisis sintáctico especifica cómo deben escribirse los programas mediante un


conjunto de reglas de sintaxis o gramática del lenguaje. Un programa es sintácticamente
correcto cuando sus estructuras (expresiones, sentencias declarativas, asignaciones, etc.)
aparecen en un orden correcto.

- El análisis semántico es el significado dado a las distintas construcciones sintácticas. El


proceso de traducción es, en esencia, la generación de un código en lenguaje máquina con
el mismo significado que el código fuente. En los lenguajes de programación, el
significado está ligado a la estructura sintáctica de las sentencias. Así, una sentencia de
asignación significa transferir el valor de la expresión de la derecha al identificador de la
izquierda.

- Generación y optimización de código en esta fase se crea un archivo con un código en


lenguaje objeto (lenguaje máquina) con el mismo significado que el texto fuente. El
archivo-objeto generado puede ser (dependiendo del compilador) directamente ejecutable,
o necesitare otros pasos previos a la ejecución, tales como ensamblado, encadenado y
carga. En la generación de código intermedio se completan y consultan las tablas
generadas en fases anteriores. También se realiza la asignación de memoria a los datos
definidos en el programa. En la fase de optimización se mejora el código intermedio
analizando el programa objeto globalmente. Un programa puede incluir dentro de un ciclo,
que debe ejecutarse diez mil veces, una sentencia asigna a una variable un valor constante,
no alterándose dicho valor en el lazo.

Existen compiladores que permiten al usuario omitir o reducir, a su conveniencia, las


fases de optimización, disminuyendo así el tiempo global de la compilación.

Un compilador traduce un programa fuente, escrito en un lenguaje de alto nivel, a un


programa objeto, escrito en lenguaje ensamblador o máquina. El programa fuente suele
estar contenido en un archivo, y el programa objeto puede almacenarse como archivo en
memoria masiva para ser procesado posteriormente, sin necesidad de volver a realizar la
traducción. Una vez traducido el programa, su ejecución es independiente del compilador,
así por ejemplo, cualquier interacción con el usuario sólo estará controlada por el sistema
operativo.

Un intérprete hace que el programa fuente escrito en un lenguaje vaya, sentencia a


sentencia, traduciéndose y ejecutándose directamente por el computador. El intérprete
capta una sentencia fuente, la analiza e interpreta dando lugar a su ejecución inmediata, no
creándose, por tanto, un archivo o programa objeto almacenable en memoria masiva para
ulteriores ejecuciones. Por tanto la ejecución del programa está supervisada por el
intérprete.

Existen otro tipos de traductores llamados Traductores Cruzados; son aquellos que
efectúan la traducción de programas fuente a programas objeto en un computador distinto
(computador B) a aquel en el que se ejecutará el programa objeto (computador A). El
computador B se denomina computador anfitrión (host) y el computador A, computador
huésped (guest). Por lo general el computador anfitrión es más potente que el huésped.

También en un computador puede simularse el comportamiento de otro. Estos programas


de simulación se suelen denominar Emuladores. Existe por ejemplo un emulador para el
microcomputador Apple Macintosh que utiliza como anfitrión el IBM-PC. Así un
programa realizado para Apple, sin modificación alguna, puede ejecutarse en e IBM-PC,
también existen en caso contrario.

Los lenguajes de programación se pueden clasificar atendiendo a varios criterios. Un


criterio simple es el nivel. El nivel hace referencia a lo próxima que la forma de expresar
las sentencias esté al hombre (al lenguaje natural), o a la máquina (al lenguaje de ceros y
unos de los circuitos eléctricos). A un nivel más alto que el de los lenguajes de
programación se encuentran los lenguajes declarativos. En los lenguajes declarativos, o de
órdenes, los programas están formados por sentencias que ordenan “que es lo que se quiere
hacer”, no teniendo el programador que indicar al computador el proceso detallado (el
algoritmo) de “cómo hacerlo”. En este grupo se incluyen ciertos lenguajes especializados,
para propósitos muy específicos, tales como recuperación de la información en bases de
datos, análisis de circuitos electrónicos, y realización de cálculos estadísticos.

Los lenguajes de alto nivel se pueden clasificar en dos grandes grupos:

a) Lenguajes basados en la asignación de valores (Lenguajes Imperativos o procedurales).


Se fundamentan en la utilización de variables para almacenar valores, y en la
realización de operaciones con los datos almacenados. La mayoría de los lenguajes son
de este tipo: FORTRAN, BASIC, COBOL, Pascal, Modula, ADA, C, etc.
b) Lenguajes basados en la definición de funciones o relaciones. No utilizan instrucciones
de asignación (sus variables no almacenan valores). Los programas están formados por
una serie de definiciones de funciones (Lenguajes Funcionales, como LISP)o de
predicados (Lenguajes de Programación Lógica, como PROLOG).

Dentro de los lenguajes imperativos hay que destacar a los Lenguajes orientados a
objetos, implantados a lo largo de la década de los 80, y que introducen una nueva filosofía
de programación. En ellos, los programas se descomponen en objetos que implementan
partes del sistema encapsulado los datos que almacenan su estado junto con los métodos
que se utilizan para acceder a ellos. De este modo, las distintas partes del programa son
menos dependientes entre si, lo que facilita el mantenimiento de las aplicaciones, al reducir
la probabilidad de que una modificación local se propague por toda la aplicación.
Actualmente existen versiones orientadas a objetos de muchos lenguajes de alto nivel
(objetive C, C++, Object Pascal, PHP 5).

Podemos concluir que los lenguajes de programación facilitan la creación de programas


permitiendo su utilización en diferentes computadores también aprendimos que para poder
ejecutar un programa escrito en un lenguaje de alto nivel se debe de traducir o interpretar;
el traductor debe realizar un análisis de código fuente, durante el cual se pueden detectar
errores en el código y una síntesis del código objeto.

Referencias Bibliográficas

Alberto Espinoza, Antonio Lloris Ruiz, Juan Carlos Torres Cantero; Introducción a la
Informática, 4ta edición; Granada, 2006.

Você também pode gostar