50% encontró este documento útil (2 votos)
1K vistas3 páginas

Esquemas de Generación en C

Este documento describe los esquemas de generación de código intermedio en el lenguaje C. 1) Las expresiones se representan de forma más simple. 2) Las declaraciones de variables y constantes se separan. 3) Las asignaciones se expresan con operadores sencillos. 4) Las condiciones se evalúan en cortocircuito.

Cargado por

jorge
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
50% encontró este documento útil (2 votos)
1K vistas3 páginas

Esquemas de Generación en C

Este documento describe los esquemas de generación de código intermedio en el lenguaje C. 1) Las expresiones se representan de forma más simple. 2) Las declaraciones de variables y constantes se separan. 3) Las asignaciones se expresan con operadores sencillos. 4) Las condiciones se evalúan en cortocircuito.

Cargado por

jorge
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

INSTITUTO TECNOLÓGICO DE TLAXIACO 1

Esquemas de Generación
Instituto Tecnológico de Tlaxiaco
Ing. Sistemas Computacionales
Jorge Coronel López
Lenguajes y Autómatas ll
7 Semestre
19-Octubre-2018

INTRODUCCIÓN
Por ejemplo: una instrucción como: if (a == b && f!=5&&
L OS 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
f%3==0) se evalúa primero x = (a==b && f!=5)y = x &&
f%3==0; if (y).
generación dependen de cada lenguaje. Tomaremos algunos
esquemas de generación del lenguaje C.
5. ESTATUTO DE CICLOS
1. EXPRESIONES Los ciclos se descomponen en un ciclo genérico, por lo que
ciclos while, for y do while tienen la misma representación
Para generar expresiones estas deben representarse de interna. En el caso de C, todo queda en forma de while.
manera más simple y más literal para que su conversión sea Las condiciones lógicas también pueden ser evaluadas en
más rápida. cortocircuito y reducidas.
Por ejemplo: la traducción de operaciones aritméticas debe
especificarse una por una, de tal forma que una expresión sea 6. ARREGLOS
lo más mínimo posible. Los arreglos se descomponen en estructuras básicas de
manejo de manera simple, así
2. DECLARACIÓN DE VARIABLES, CONSTANTES por ejemplo: char *a=“Hola”; se reduce a: a[0]=‘H’;
a[1]=‘o’; a[2]=‘l’; a[3]=‘a’; a[4]=‘\0’;
Las declaraciones de variables y constantes deben separarse
de tal manera que queden las expresiones una por una de
manera simple. 7. FUNCIONES
Por ejemplo: int a,b,c; se descompone a int a; int b; int c; Las funciones pueden reducir a en línea, lo que se hace es
respectivamente. expandir el código original dela función.
Las funciones se descomponen simplificando los parámetros
de manera individual al igual que el valor de retorno.
3. ESTATUTO DE ASIGNACIÓN
(Olivera, 2016)
Las operaciones de asignación deben quedar expresadas Variables y Constantes.
por una expresión sencilla, si está es compleja se debe reducir
hasta quedar un operador sencillo. Los esquemas de generación dependen de cada lenguaje. Una
Por ejemplo: x = a+b/5; debe quedar de la forma y = b/5; z constante es un dato numérico o alfanumérico que no cambia
= a+y; x=z. durante la ejecución del programa.
Ejemplo: pi=3.1416.
Una variable es un espacio en la memoria de la computadora
4. ESTATUTO CONDICIONAL que permite almacenar temporalmente un dato durante la
ejecución de un proceso, su contenido puede cambiar durante la
Las condiciones deben expresarse de manera lo más ejecución del programa. Las declaraciones de variables y
sencilla posible de tal forma que puedan evaluarse en constantes deben separarse de tal manera que queden las
cortocircuito. expresiones una por una de manera simple.
INSTITUTO TECNOLÓGICO DE TLAXIACO 2

Expresiones

Las expresiones son combinaciones de constantes, variables, de dato de resultado, una lista de parámetros de entrada
símbolos de operación, paréntesis y nombres de funciones y su código.
especiales.
Por ejemplo: a+(b+3)/c. Estructuras
Cada expresión toma un valor que se determina tomando los
valores de las variables y constantes implicadas y la ejecución Las Estructuras de Control se emplean para controlar la
de las operaciones indicadas. ejecución y flujo del código, las cuales se dividen en:
Instrucción de Asignación
 Estructuras de Selección: son aquellas que se utilizan
Una instrucción de asignación (o simplemente asignación) para realizar operaciones basadas en el valor de una
consiste en asignar el resultado de la evaluación de una expresión.
expresión a una variable. En lenguajes de programación, las
estructuras de control permiten modificar el flujo de ejecución  Estructuras de Iteración: son aquellas que nos
de las instrucciones de un programa. permiten ejecutar un bloque de código repetidamente
mientras una condición específica sea verdadera.
Instrucción de Control

El término "estructuras de control", viene del campo de la Estructuras de Selección


ciencia computacional, cuando se presentan implementaciones
de Java para las estructuras de control, nos referimos a ellas con Estructura if.
la terminología de la Especificación del lenguaje Java, que se  Al escribir uno o varios flujos de acción el código
refiera a ella como instrucciones. contenido en estos se ejecutará siempre y cuando la
evaluación de la expresión en la sentencia if se evalué
Con las estructuras de control se puede: como verdadera.
 De acuerdo a una condición, ejecutar un grupo u otro if(expresión-booleana)
de sentencias (If-Then-Else y Select-Case) {la expresión se evaluó verdadera}
 Ejecutar un grupo de sentencias mientras exista una
condición (Do-While) Estructura switch
 Ejecutar un grupo de sentencias hasta que exista una  La estructura de selección switch tiene una expresión
condición (Do-Until) de control y los flujos de código alternos son
 Ejecutar un grupo de sentencias un número ejecutados dependiendo del valor constante asociado
determinado de veces (For-Next) con esta expresión.
Los tipos de datos permitidos para la expresión de control son
Tipos de estructura de control: sbyte, byte, short, ushort, uint, long, ulong, char, string o un tipo
 Ejecución secuencial. enumeración(enumeration)
 Transferencia de control.
 Estructura de control: selección if simple. Estructuras de Selección:
 If-Then-Else. Sintaxis:
 Select-Case.
 Do-While. switch(expresión-de-control)
 Do-Until. {
case expresión-contante:
 For-Next.
sentencias;
break;
Funciones
case expresión-contante:
sentencias;
En programación, una función es un grupo de instrucciones
break;
con un objetivo en particular y que se ejecuta al ser llamada
}
desde otra función o procedimiento. Una función puede
llamarse múltiples veces e incluso llamarse a sí misma (función
Estructuras de Iteración:
recurrente).
For:
 Las funciones pueden recibir datos desde afuera al ser
llamadas a través de los parámetros y deben entregar La Estructura for se utiliza cuando se conoce previamente
un resultado. cuantas veces ha de repetirse un bloque de código. Este bloque
 Se diferencian de los procedimientos porque estos no se repetirá mientras la condición evalué una expresión booleana
devuelven un resultado. verdadera, no será posible evaluar otro tipo de expresión.
 En general las funciones deben tener un nombre único
en el ámbito para poder ser llamadas, un tipo
INSTITUTO TECNOLÓGICO DE TLAXIACO 3

Sintaxis:
for(inicializador;condición;iterador)
{acciones;}

Estructuras de Iteración:
While:
La estructura while se utiliza cuando no se conoce previamente
cuantas veces ha de repetirse un bloque de código, por lo que
puede ejecutarse 0 o más veces. Este bloque se repetirá mientras
la condición evalué una expresión booleana verdadera, no será
posible evaluar otro tipo de expresión.

Estructuras de Iteración:
Do:
La diferencia entre la sentencia while y do es que do se evalúa
después de su primera iteración, por lo que al menos siempre
se ejecuta una vez.

Sintaxis.
do
{acciones;}
while(condición);
(Kupdf, 2017)

CONCLUSIÓN

La generación de código intermedio y el esquema de


generación, es una manera eficaz de programar sistemas, ayuda
a hacer códigos menos complejos, además por medio de árboles
de derivación usan la lógica permitiendo así la programación
más sencilla. Es óptimo para la ejecución de cualquier
compilador.

I. REFERENCIAS
(29 de Enero de 2015). Obtenido de docplayer:
[Link]
[Link]
Kupdf. (5 de Octubre de 2017). Obtenido de
[Link]
generacion_59d59dbd08bbc5ff73686f0d_pdf
Olivera, J. C. (21 de Feb de 2016). Obtenido de docplayer:
[Link]
[Link]

También podría gustarte