0% encontró este documento útil (0 votos)
19 vistas5 páginas

Tarea Semana 1

El documento presenta ejercicios sobre compiladores y lenguajes de programación, abordando diferencias entre compiladores e intérpretes, ventajas de cada uno, y el uso de lenguaje ensamblador. También se discuten características de varios lenguajes de programación y se resuelven problemas relacionados con el alcance de variables en bloques de código en C. Finalmente, se incluyen ejercicios prácticos para determinar valores asignados en código estructurado.

Cargado por

eiel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas5 páginas

Tarea Semana 1

El documento presenta ejercicios sobre compiladores y lenguajes de programación, abordando diferencias entre compiladores e intérpretes, ventajas de cada uno, y el uso de lenguaje ensamblador. También se discuten características de varios lenguajes de programación y se resuelven problemas relacionados con el alcance de variables en bloques de código en C. Finalmente, se incluyen ejercicios prácticos para determinar valores asignados en código estructurado.

Cargado por

eiel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TECNOLÓGICA DE SANTIAGO, UTESA

SISTEMA CORPORATIVO

Presentado por
Mariela Pichardo

Matricula
2-19-0208

Asignatura
Compiladores

Docente
Ing. Iván Mendoza

Grupo
00

Tema
Ejercicios capítulo 1

Fecha
Lunes 27 de mayo del año 2024
Santiago de los Caballeros Rep. Dom.
Ejercicios para la sección 1.1
Ejercicio 1.1.1: ¿Cuál es la diferencia entre un compilador y un intérprete?
Un compilador traduce los programas a un lenguaje que el computador pueda ejecutarlos y ya un
intérprete simula la ejecución directa del programa e interpreta el Código línea por línea dando
mejores diagnósticos o conclusiones.
Ejercicio 1.1.2: ¿Cuáles son las ventajas de (a) un compilador sobre un intérprete, y (b) las
de un intérprete sobre un compilador?
a) Ventajas del compilador sobre el interprete
− Es más rápido ya que su análisis del lenguaje fuente se realiza una sola vez.
− El resultado de un programa compilado a diferencia de uno interpretado es que no contiene
el código fuente por lo que no puede ser modificado incorrectamente
Ventajas del interprete sobre un compilador

− El intérprete ofrece mejores diagnósticos, ya que ejecuta el programa fuente instrucción por
instrucción.
− Además, su ejecución es inmediata.
Ejercicio 1.1.3: ¿Qué ventajas hay para un sistema de procesamiento de lenguajes en el cual
el compilador produce lenguaje ensamblador en vez de lenguaje máquina?
El lenguaje ensamblador es mas conveniente ya que a través del del se obtiene un proceso mas
limpio y eficaz al consumir menos espacio en memoria. Además, es más comprensible que el
lenguaje de maquina por lo que facilita el análisis del código generado.

Ejercicio 1.1.4: A un compilador que traduce un lenguaje de alto nivel a otro lenguaje de alto
nivel se le llama traductor de source-to-source. ¿Qué ventajas hay en cuanto al uso de C como
lenguaje destino para un compilador?
C al ser unos de los lenguajes más portados en existencia, tiene compiladores para casi todos los
sistemas conocidos. Además, este lenguaje nos ofrece ventajas como eficiencia y acceso a
herramientas y bibliotecas ampliamente utilizadas

Ejercicio 1.1.5: Describa algunas de las tareas que necesita realizar un ensamblador.

− Traducción o conversión del código ensamblador a Código de máquina.


− Enlazar etiquetas y símbolos del código fuente a direcciones de memoria específicas para
referenciar y utilizar variables y secciones de código.
Ejercicios para la sección 1.3
Indique cuál de los siguientes términos:
a) imperativo b) declarativo c) von Neumann d) orientado a objetos e) funcional f) de tercera
generación g) de cuarta generación h) secuencias de comandos se aplican a los siguientes
lenguajes:
1) C 2) C++ 3) Cobol 4) Fortran 5) Java 6) Lisp 7) ML 8) Perl 9) Python 10) VB.
a) imperativo: C, C++, Cobol, Fortran, Java, VB.
b) declarativo: Lisp, ML.
c) von Neumann: C, C++
d) orientado a objetos: C++, Java, Python, VB.
e) funcional: Lisp, ML
f) de tercera generación: C, C++, Cobol, Fortran
g) de cuarta generación: Perl, Python
h) secuencias de comandos: Perl, Python.

Ejercicios para la sección 1.6


Ejercicio 1.6.1: Para el código en C estructurado por bloques de la figura 1.13(a), indique
los valores asignados a w, x, y y z.

Los valores asignados son


w = 13
x = 11
y = 13
z = 11
Ejercicio 1.6.2: Repita el ejercicio 1.6.1 para el código de la figura 1.13(b).

Los valores asignados son


w = 10
x=7
y = 13
z = 11
Ejercicio 1.6.3: Para el código estructurado por bloques de la figura 1.14, suponiendo el
alcance estático usual de las declaraciones, dé el alcance para cada una de las doce
declaraciones.

Alcance bloque B1:


w: Alcance en B1, excluyendo B3 y B4.
x: Alcance en B1, excluyendo B2, B3, y B4.
y: Alcance en B1, excluyendo B5.
z: Alcance en B1, excluyendo B2 y B5.
Bloque B2:
x: Alcance en B2, excluyendo el bloque B3.
z: Alcance en B2, excluyendo el bloque B3.
Bloque B3:
w: Alcance solo en el bloque B3.
x: Alcance solo en el bloque B3.
Bloque B4:
w: Alcance en el bloque B4, excluyendo B5.
x: Alcance en el bloque B4, excluyendo B5.
Bloque B5:
y: Alcance solo en el bloque B5.
z: Alcance solo en el bloque B5

Ejercicio 1.6.4: ¿Qué imprime el siguiente código en C?

Imprime
3
2

También podría gustarte