










Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II
Tipo: Apuntes
1 / 18
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!











División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 FECHA 12/11/ GRUPO 5601 LENGUAJES Y AUTÓMATAS II Actividad No. 19. Generación de código intermedio. ESTRUCTURAS REPETITIVAS. TRABAJO EN EQUIPO: El TESE desea: Un reporte con la investigación con por lo menos tres referencias para: Reconocer el manejo de ESTRUCTURAS REPETITIVAS , para un metacompilador. Desarrolle la Actividad con Grafos sintácticos (Diagrama de Conway) y expresiones de la forma BNF.
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2
Vamos a necesitar de estas estructuras al momento de programar, y pues bueno este tipo de estructuras de control se las utiliza cuando necesitamos recorrer un conjunto de datos, por ejemplo, al leer un archivo, al leer registros de una base de datos, en fin, en todos los problemas en los que se tenga que hacer iteraciones, bucles, siempre vamos a necesitar de estas estructuras. La estructura de control for tanto en Java como en C++. El ciclo for permite ejecutar un conjunto de sentencias un número fijo de veces y antes de saber cómo funciona esta sentencia, primero que nada, vamos a ver la sintaxis. Su sintaxis es muy simple como lo veremos a continuacion: for(variable_inicializacion;condicion;incremento) { //instrucciones } Sintaxis en Ruby for i in(0..9) puts i end La estructura de control while en Java y C++. El ciclo while permite ejecutar n veces un conjunto de instrucciones siempre y cuando la condición se cumpla o sea verdadera. Sintaxis tanto en Java como en C++ se utilizan de igual manera: while (condicion) { //instrucciones } Sintaxis en Ruby. it = 1 while i < 10 puts it it += 1 End
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2
La semántica de for:
Ejemplo de uso de la notación BNF para la descripción de un lenguaje de programación < for >::= for < variable > := < expresion > ( to | downto ) < expresion > do < sentencia >
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2
La sentencia while también necesita una condición de tipo boolean y plenamente definida en el mome nto de ejecutar la sentencia while. El ciclo se repite mientras la condición se evalú e a true y se sale la primera vez que se evalúa a false. La sentencia que constituye el cuerpo de while puede ser cualquiera.
¨ Ejemplo de uso de la notación BNF para la descripción de un lenguaje de programación
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 ESTRUCTUTRA WHILE Y DO/WHILE WHILE : Una estructura repetitiva permite ejecutar una instrucción o un conjunto de instrucciones varias veces. Una ejecución repetitiva de sentencias se caracteriza por:
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 fun main(parametro: Array
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 } else { System.out.println("Tiene 1 dígito."); } } } while (valor!=0); } }
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 TABLA Tres diferentes lenguajes de programación. Elemento C++ Java Ruby FOR for(int i = valor inicial; i <= valor final; i = i + paso) { .... .... Bloque de Instrucciones.... .... .... } for (inicialización; condición; incremento/decremento){ //Instrucciones a ejecutar varias veces } for i in (0..10) puts i end WHILE int numero; cin >> numero; while(numero <= 100) { cout << "Ingrese un numero "; cin >> numero; } public class Cuadrado{ public static void main(String args[]){ int contador = 1; while ( contador <= 5 ) { System.out.println("*****\n"); contador++; } } } x = 1 while x <= 100 puts x x = x + 1 end DO/WHILE int numero; do { cout << "Ingrese un numero "; cin >> numero; } while(numero <= 100); public class DoWhile {public static void main (String[] args) { final boolean i = false;while(i);// Main.java:5: error: unreachable statementSystem.out.println(i); } } begin puts a a+= end while a< Do while no existe en Ruby
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Nombre_ Galván Espinosa Diego Grupo 5601 Asignatura Lenguajes y autómatas II Fecha 12/11/ Actividad No. 19 firma Diego Objetivo de la práctica: Conocer el manejo de estructuras repetitivas. Competencia a desarrollar: Investigar las estructuras y su construcción. Desarrollo de la Actividad individual. ¿Qué ventajas y desventajas conlleva la generación de código intermedio de estos elementos? La ventaja es que permite abstraer la máquina, separar operaciones de alto nivel de su implementación a bajo nivel, permite la reutilización de los front-ends y backends, permite optimizaciones generales, y las desventajas son que implica una pasada más para el compilador, dificulta llevar a cabo optimizaciones específicas de la arquitectura destino, suele ser ortogonal a la máquina destino, la traducción a una arquitectura específica será más larga e ineficiente. Conclusión individual. Con esta investigación llegue a la conclusión de que Las estructuras de control repetitivas, son aquellas que permiten ejecutar un conjunto de instrucciones varias veces, de acuerdo con el valor que genere la expresión relacional y/o lógica. Esto significa que una instrucción repetitiva permite saltar a una instrucción anterior para volver a ejecutarla. los ciclos do-while son una estructura de control cíclica, los cuales nos permiten ejecutar una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se va a dar el valor final, hasta aquí son similares a los ciclos while, sin embargo el ciclo do-while nos permite añadir cierta ventaja adicional y esta consiste que nos
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 da la posibilidad de ejecutar primero el bloque de instrucciones antes de evaluar la condición.
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Dirigido Acíclico. Las estructuras repetitivas se utilizan cuando se quiere que un conjunto de instrucciones se ejecuten un cierto número finito de veces. La estructura repetitiva for permite ejecutar una serie de instrucciones un número determinado de veces. La estructura while es una estructura de control repetitiva que puede impedir la ejecución de un conjunto de instrucciones, si la evaluación de la expresión relacional y/o lógica es falsa.
División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Nombre_ Soto Venegas Dulce Joana Grupo 5601 Asignatura Lenguajes y autómatas II Fecha 12 / 11 / Actividad No. 19 firma Dulce Objetivo de la práctica: Generación de código intermedio de estructuras repetitivas. Competencia a desarrollar: Trabajo en equipo y desarrollo de investigación de dicha actividad. Desarrollo de la Actividad individual. ¿Qué ventajas y desventajas conlleva la generación de código intermedio de estos elementos? Ventajas: permite abstraer la máquina, separar operaciones de alto nivel de su implementación a bajo nivel, permite la reutilización de los front-ends y back- ends; y permite optimizaciones generales. Desventajas: implica una pasada más para el compilador (no se puede utilizar el modelo de una pasada), dificulta llevar a cabo optimizaciones específicas de la arquitectura destino; y suele ser ortogonal a la máquina destino, la traducción a una arquitectura específica será más larga e ineficiente. Conclusión individual. Como conclusión tengo que una estructura de repetición, también llamada lazo o bucle, hace posible la ejecución repetida de secciones específicas de código. Hay dos tipos básicos de estructuras de repetición, cuya diferencia principal radica en cómo se controlan las mismas: Repetición controlada por contador o bucle DO iterativo. Con esta estructura, un bloque de sentencias se ejecuta una vez para cada uno de los valores que va tomando un contador. Se ejecuta un número específico de veces, siendo el número de repeticiones conocido antes de que empiece la