Los esquemas de generación son estrategias para generar código intermedio y dependen del lenguaje. Para C, las expresiones deben representarse de forma simple y las instrucciones de control incluyen asignaciones y expresiones. Las variables y constantes deben declararse por separado de forma simple.
1. 2.3- ESQUEMA DE GENERACIÓN
❖ NIEVES LADINO ANGELES VIANEY - 19010305
❖ MARTÍNEZ CASTRO MIGUEL ANGEL - 19010302
❖ ORTIGOZA LEZAMA LUIS ANGEL - 17011221
❖ MARTINEZ GONZALEZ FRANCISCO LUCIANO-18010221
❖ ORTIZ DOMINGUEZ AXEL-18011269
2. Los esquemas de generación son las estrategias o acciones que se deberán realizarse y
tomarse en cuenta en el momento de generar código intermedio.
Los esquemas de generación dependen de cada lenguaje. Tomaremos algunos esquemas
de generación del lenguaje C.
Expresiones
Instrucciones de control
Para generar expresiones estas deben representarse de manera más simple y más literal
para que su conversión sea más rápida.
Por ejemplo, la traducción de operaciones aritméticas debe especificarse una por una, de
tal forma que una expresión sea lo más mínimo posible
Son aquellas que asignan un valor a una variable o una expresión ejemplo
X=23 ó Y=expresión
2.3. ESQUEMAS DE GENERACION
3. Instrucción de asignación
Las funciones son un grupo de instrucciones con un propósito en general las cuales pueden
recibir parámetros, mientras que la estructura es un conjunto de datos elementales
interrelacionados que realizan ciertas operaciones entre ellos
variables y constantes
Las declaraciones de variables y constantes deben separarse de tal manera que queden las
expresiones una por una de manera simple
Los esquemas de generación son las estrategias o acciones que se deberán realizarse y
tomarse en cuenta en el momento de generar código intermedio
Son aquellas que permiten modificar o variar el flujo de ejecución de un programa, existen
3 tipos los cuales son :
Instrucciones condicionales o alternativas
Instrucciones de salto Instrucciones repetitivas
2.3. ESQUEMAS DE GENERACION
4. VARIABLES:
Una variable es un espacio en la memoria de la computadora que permite
almacenar temporalmente un dato durante la ejecución de un proceso, su
contenido puede cambiar durante la ejecución del programa.
Ejemplo: area=pi*radio^2
• int alumnos, contador;
• float A,B,C;
• char Letra;
2.3.1 Variables y Constantes
5. Las variables utilizadas en los programas se clasifican en dos tipos:
variables locales y variables globales.
2.3.1 Variables y Constantes
6. Constante
Definición:
Una constante (a veces llamada un literal) es un dato cuyo valor
no puede cambiar durante la ejecución del programa. Las
declaraciones de variables y constantes deben separarse de tal
manera que queden las expresiones una por una de manera
simple. Recibe un valor en el momento de la compilación y este
permanece inalterado durante todo el programa.
2.3.1 variables y constantes
7. Una constante igual que una variable está formada de un nombre que
la identifica y de un espacio de memoria, se hace referencia al valor
en ella usando su nombre. Su valor siempre es fijo no puede cambiar
durante la ejecución. Por conveniencia, el nombre de las constantes
suele escribirse en mayúsculas en la mayoría de lenguajes.
En el lenguaje C, sólo basta anteponer el calificador const seguido del
tipo de dato que manejará esa constante (int,char,etc), y por último el
valor que tomará esa variable.
2.3.1 variables y constantes
8. Tipos de constantes más utilizados:
pueden ser los típicos dígitos como
Una constante entera
ejemplo:
64 -15 +100 32767 720176 12345678901
constantes flotantes:
ejemplo:
25.5 1000. -15. +37589.3333333333
no se recomiendan datos de tipo boolean ya que la finalidad de el booleano
es el constante cambio y en esta clasificación no lo permite.
9. Tipos de constantes más utilizados:
como también pueden ser constantes más complejas como:
Constantes de series gráficas:
Una constante de serie gráfica especifica una serie gráfica de longitud variable de tipo
VARGRAPHIC.
En una base de datos que no es de Unicode, una constante de la serie gráfica consiste de una
secuencia de caracteres de doble byte que comienza y termina con un apostrofe de un solo
byte ('), y que va precedida por una G o N de un solo byte. Los caracteres entre las apostrofes
deben representar un número par de bytes, y la longitud de la serie gráfica no debe exceder
los 16336 bytes dobles. El apóstrofo no debe aparecer como parte de un carácter MBCS para
que se considere como delimitador. Por ejemplo:
G'serie de caracteres de doble byte'
N'serie de caracteres de doble byte'
constantes de restricciones de serie binaria:
Una constante de serie binaria se forma especificando BX seguido de una secuencia de
caracteres que empieza y finaliza con un delimitador de serie. Los caracteres entre los
delimitadores de serie deben ser un número par de dígitos hexadecimales. El número de
dígitos hexadecimales no debe exceder los 32.672. por ejemplo:
BX'0000'
BX'C141C242'
BX'FF00FF01FF'
10. Tipos de constantes más utilizados:
Por último Constantes de fecha y hora
Una constante de fecha y hora especifica una fecha, una hora o una indicación de fecha y hora.
Por lo general, las constantes de serie de caracteres se utilizan para representar valores de fecha y hora
constantes en asignaciones y comparaciones. Sin embargo, se puede utilizar el nombre de tipo de datos
asociado antes de los formatos específicos de la constante de serie de caracteres para denotar
específicamente la constante como constante de fecha y hora en vez de una constante de serie de caracteres.
El formato de estas tres constantes de fecha y hora es el siguiente:
DATE 'aaaa-mm-dd'
El tipo de datos del valor es DATE.
TIME 'hh:mm:ss'
o
TIME 'hh:mm'
El tipo de datos del valor es TIME.
TIMESTAMP 'aaaa-mm-dd hh:mm:ss.nnnnnnnnnnnn'
o
TIMESTAMP 'aaaa-mm-dd-hh.mm.ss.nnnnnnnnnnnn'
donde el número de dígitos de segundos fraccionarios puede variar entre 0 y 12 y el carácter de punto se
puede omitir si no hay segundos fraccionarios. El tipo de datos del valor es TIMESTAMP(p), donde p es el
número de dígitos de los segundos fraccionarios.su aplicacion se basa mucho en javascript
12. En esta función recibe una cadena que representa
una línea de código intermedio y toma las medidas
oportunas para que ese código se utilice. Estas
medidas pueden ser escribir la línea en un fichero
adecuado, almacenar la instrucción en una lista
que después se pasará a otros módulos, o
cualquier otra que necesitemos en nuestro
compilador.
13. Son aquella donde los operadores que intervienen
en ella son numéricos, el resultado es un número
y los operadores son aritméticos. Los operadores
aritméticos más comúnmente utilizados son: +, - ,
* , / y %.
* Por cada uno de sus operandos, llamará al
método correspondiente para que se evalúe la sub
expresión. Si es necesario, reservara un registro
para guardar su resultado.
* Emitirá las instrucciones necesarias para realizar
el cálculo a partir de los operandos.
Expresiones aritméticas
14. ● 2.3.- Esquema de generación. (s. f.). Lenguajes y
Autómatas II. Recuperado 9 de marzo de 2022, de
https://5e344735705b1.site123.me/unidad-ii-
generaci%C3%B3n-de-c%C3%B3digo-intermedio/23-
esquema-de-generaci%C3%B3n
Referencias