Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingeniería
Escuela Profesional en Informática y Sistemas
Alumna:
TACNA – PERÚ
2018
TRABAJO ENCARGADO: “EL PROCESO DE TRADUCCIÓN”
1. Seleccione un compilador conocido que venga empacado con un ambiente de
desarrollo, y haga una lista de todos los programas acompañantes que se
encuentran disponibles con el compilador junto con una breve descripción de
sus funciones.
Borland C++
Borland Graphics Interface : Es una biblioteca de funciones para hacer gráficos
2D sencillos y de presentación. Los controladores se incluyeron para la capacidad
genérica de CGA , EGA y VGA.
Borland Code Guard : Una vez instalado dentro del IDE, Code Guard puede
insertar el código de instrumentación en el ejecutable final que se puede usar para
monitorear: uso del puntero , llamadas API , cuántas veces se llama a alguna
función y otras características. Si se encuentra algún error, aparece una ventana
emergente, el depurador puede detenerse o un registro se escribe en el disco.
Entregado para aplicaciones de 16 y 32 bits.
2. Dada la asignación en C
Entonces tenemos:
a) ANÁLISIS LÉXICO:
a identificador
[ corchete izquierdo
i identificador
+ signo mas
1 número
] corchete derecho
= asignación
a identificador
[ corchete izquierdo
i identificador
] corchete derecho
+ signo mas
2 número
EXPRESIÓN
EXPRESIÓN DE
EXPRESIÓN
=
EXPRESIÓN
EXPRESIÓN
EXPRESIÓN DE SUBINDICE
Número
Identificador a 2
EXPRESIÓN ADITIVA Identificador a Identificador i
EXPRESIÓN + EXPRESIÓN
Identificador i Número
1
-ÁRBOL DE ANÁLISIS SINTÁCTICO
Sentencia de asignación
-Los errores sintácticos son aquellos donde sus expresiones son colocados de
manera incorrecta o si se ha olvidado de alguna expresión necesaria como por
ejemplo algún “;” o una “{}”, etc.
ERRORES SINTÁCTICOS:
- como segundo error tenemos a “iostream” en esta parte del código lo correcto
debería ser “IOSTREAM.H”.
ERRORES SEMÁNTICOS
- En el primer caso podemos ver que lo que se quiere es que se sume, pero
hay un error en vez de sumar hay una multiplicación.
- Y en el segundo caso es similar se quiere que se múltiple por 2 a la
variable x, pero hay un error y este es que se suma en vez de multiplicar
A: Lenguaje Fuente
B: Lenguaje Objetivo
C: Lenguaje Anfitrión
La figura al lado Izquierdo
representa a un compilador escrito
A B en un lenguaje C que tiene la
C función de traducir lo que está
dentro del lenguaje A a un
Desarrollando tenemos:
Resultando:
A B
A B
A B
C
G H
C C H
H
I I
A B B E
A B D E
H H
H F
Tal como se muestra en la figura, podemos decir que si se llega a tener dos compiladores
que se ejecutan en el mismo lenguaje máquina que en este caso es H entonces lo que
podríamos hacer es combinar ambos compiladores dejando que la salida del primer sea la
entrada del segundo; al efectuar esto nos dará como resultado:
De A B B E A E
*
H H H