Está en la página 1de 37

Lenguajes y autómatas 2

Integrantes
Avilés Zapata Gloria Dayan
Bravo Hernandez Luis Javier
Bernabe Mendoza Cinthia Guadalupe Horario:09-10
Brito Rayon Roberto Carlos
Cipriano García Daniel
Profesor
Honorio Candelario Emigdio
Unidad22
Unidad

Generación de código
intermedio
2.1 Notaciones

Notaciones: forma especial en la que se puede expresar una


expresión matemática, se puede decir que existen tres
formas principales: infija, prefija y posfija.
2.1 Notaciones
Operador/símbolo
Operando
Notación prefija: +AB

Notación infija: A+B

Notación posfija: AB+


2.1.1 prefija

La notación de prefijo fue


propuesta en 1924 por el
matemático, lógico y
filósofo polaco Jan
Łukasiewicz (1878-1956)
2.1.1 prefija

Nos indica que el operador va antes de los operando sus


características principales son:
• "Los operando conservan el mismo orden que la notación infija
equivalente.
• No requiere de paréntesis para indicar el orden de precedencia
de operadores ya que el es una operación
• Se evalúa de izquierda a derecha hasta que encontremos el
primer operador seguido inmediatamente de un par de operando
• Se evalúa la expresión binaria y el resultado se cambia como un
nuevo operando Se repite este hasta que nos quede un solo
resultado Notación prefija: El orden es operador, primer
operando, segundo.
2.1.1 prefija

Ejemplo resolución de las operaciones prefijas


Ejemplo notación prefija
(5+8) (9-3) *2
(8+6 – 6*4/2 )

Se pasa de izquierda a derecha R=2


Notación prefija: +AB
2*) 3-9 () 8+5 ( Notación infija: A+B

Notación posfija: AB+


2.1.1 prefija

Ejemplo notación prefija

(8+6 – 6*4/2 )

R=2
2.1.2 Infija

La expresión o notación infija es la forma más común que utilizamos


para escribir expresiones matemáticas, estas notaciones se refieren
a que el operador esta entre los operadores.

No existe una estructura simple para representar este tipo de


notación en la computadora, por esta razón se utilizan otras
notaciones.
Infija

(A+B), A – 1, E/F, A*C, A + B + C


2.2.3 Postfija

La notación postfija pone el operador al final de los dos operandos,


siendo el orden es primer operando, segundo operando, operador.

La notación postfija utiliza una estructura del tipo LIFO (Last In


First Out) que indica que el ultimo en entrar, es el primero en
salir.
Postfija

AB+5-
2.2 Representaciones
de código intermedio

Existen diversos tipos de códigos


intermedios que varían en cuanto a
su sencillez, otros tipos de
código intermedio que representan
los programas como árboles o
grafos y representaciones mixtas.

Estas notaciones simplifican la


traducción de nuestro código
fuente a nuestro código objeto, ya
que ahorran y acotan símbolos de
la tabla de símbolos.
2.2.1 Notación Polaca

La notación polaca, también conocida como


Infija Polaca notación de prefijo o notación prefija,
es una forma de notación para la lógica,
2*(3+5) *2+3 5 la aritmética, el álgebra y la
computación.
Su característica distintiva es que
coloca los operadores a la izquierda de
sus operandos.
2.2.2 Código P
• La notación postfija pone el operador al final de los dos
operandos, siendo el orden es primer operando, segundo operando,
operador.
• La notación postfija utiliza una estructura del tipo LIFO (Last In
First Out) que indica que el primero en entrar, es el primero en
salir.

• Como el código P fue diseñado para ser directamente ejecutable,


contiene una descripción implícita de un ambiente de ejecución
particular que incluye tamaños de datos, además de mucha
información específica para la maquina P, que debe conocer si se
desea que un programa de código P se comprensible.
2.2.3 Triplos

La principal diferencia entre


estas notaciones y la notación
• En la historia de los
postfija es que ellos incluyen
compiladores han sido
referencias explicitas para los
utilizadas una amplia variedad
resultados de los cálculos
de representaciones intermedias
intermedios, mientras que la
como lo es la siguiente clase
notación posfija los resultados
de representación de código
son implícitos al representarlos
intermedio de un árbol de 3
en una pila.
direcciones,2 para los
• La diferencia entre triples y
operandos y una para la
cuádruplos es que con los
ubicación del resultado. esta
triples es referenciado el
clase incluye un amplio número
valor intermedio hacia el
de representaciones diferentes
número del triple que lo creo,
entre las cuales encontramos
pero en los cuádruplos requiere
cuádruplos y triples.
que ellos tengan nombres
implícitos.
2.2.4 Cuádruplos

• Es una estructura tipo registro con cuatros campos que


se llaman: op, arg1, arg2 y resultado. OP tiene un
código intermedio.

Constituida por 4 elementos: un código de operación, dos operando


de entrada y otro de salida para almacenar el resultado.
Por ejemplo, la proposición de tres direcciones x = y + z se
podría representarmediante el cuádruplo (ADD, x,y, z). Las
proposiciones con operadores unarios nousan el arg2. Los campos
que no seusan se dejan vacíos o un valor NULL. Como senecesitan
cuatro campos se le llama representaciónmediante cuádruplos.
2.3.1 Variables y
constantes.

Variable Constante
Las variables y las constantes nos
permiten darle un nombre a un
valor y utilizar el nombre en
cualquier parte del programa donde
podríamos utilizar el valor.
Una constante es un dato numérico
o alfanumérico que no cambia
durante la ejecución del programa.
Muestra de la declaración de
una constante
Muestra de la
declaración de
una variable
Ejemplo de variable en código

void main() {
// Declaramos una variable para
Ruedas con un valor de guardar la altura
$150.00 mxn double altura = 2.5;
// Declaramos una variable para
guardar el número de ruedas
int ruedas = 4;
// Calculo el área de un rectángulo
de base 3 metros y altura 2.5 metros
println(altura * 3.0);
// Calculo lo que cuesta cambiar las
cuatro ruedas si una vale 150?
println(ruedas * 150); }
Ejemplo en código de constante

void main() {
// Declaramos una constante
final double GRAVEDAD = 9.8;
// Variable con la altura en metros a
la que está situado el objeto
double altura = 10;
// Cálculo del tiempo que tarda en
caer
Graveda double tiempo =
d sqrt(2.0*altura/GRAVEDAD);
println(tiempo); }
2.3.2 Expresiones.

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á Operadores básicos
a otros módulos, o cualquier otra
que necesitemos en nuestro
compilador.
2.3.3 Instrucción de asignación.
La sintaxis general de la instrucción
de asignación es:

nombre_de_la_variable = valor

El valor a la derecha del signo igual


puede ser una constante, otra variable
o una expresión que combine constantes
y variables, pero siempre la variable
y su valor deben ser del mismo tipo de
dato.

Elementos de asignación Ejemplos:

edad% = 5
area! = 12.3
nombre$ = “Pedro”
Instrucciones de
asignación compuesta
Las instrucciones de asignación compuesta
realizan primero una operación en una
expresión antes de asignarla a un elemento
de programación.

Una instrucción de asignación asigna el


valor de una expresión a una variable. En
general, si la variable que se va a asignar
es una propiedad, la propiedad debe ser de
lectura y escritura o de sólo escritura; en
caso contrario, se produce un error de
compilación. Si la variable es una variable
de sólo lectura, la asignación debe
producirse en un constructor Shared o un
constructor de instancia apropiado para el
tipo de la variable; en caso contrario, se
producirá un error de compilación
2.3.4 Instrucciones de control
Ejemplo de estructuras de control de flujo:
El término “estructuras de control”, viene
del campo de la ciencia computacional.
Cuando se representan implementaciones de
Java para las estructuras de control.

REFIRIENDOSE A ELLAS CON LA TERMINOLOGIA DE


LA ESPECIFICACIÓN DEL LENGUAJE DE JAVA, COMO
INSTRUCCIONES.

Con las estructuras de control se puede:

De acuerdo a la condición, ejecutar un grupo


u otro de sentencias(If – Then – Else y
Select – Cast).
Ejecutar un grupo de sentencias mientras
exista una condición(Do-while).
Ejecutar un grupo de sentencias hasta que
exista una condición (Do – until).
Ejecutar un grupo de sentencias un número
determinado de veces (For – Next).
Tipos de estructuras de control:
 Ejecución secuencial.

 Transferencia de control.
 Estructura de control.
 If - simple.
If – Then – else.

Select - case.
Do – while Do – until

For – next
2.3.5 Funciones

En programación una función es un grupo de instrucciones con un objetivo


en particular y que se ejecuta al ser llamada desde otra función o
procedimiento. Una función puede llamarse así misma(función recurrente).

Estas pueden recibir:

Datos desde afuera al ser llamadas a través de los parámetros y deben


entregar un resultado.
Se diferencian de los procedimientos por que estos no devuelven
resultados.
Deben tener un nombre único en el ámbito para poder ser llamadas.
Deben tener un tipo de dato de resultado.
Deben de tener una lista de parámetros de entrada y su código.
Partes de una función

Prototipo de la función

Tipo de valor.
Identificador.
Parámetro.

Definición de la función

Encabezado de la función.
Cuerpo de la función.

Llamada a la función.
Representación de una función
2.3.6 Estructuras

Las estructuras de control se emplean para controlar la ejecución y flujo del


código, las cuales se dividen en:

Estructuras de selección:
Son aquellas que se utilizan para realizar operaciones basadas en el valor de
una expresión.

Estructuras de iteración:
Son aquellas que nos permiten ejecutar un bloque de código repetitivamente
mientras una condición específica sea verdadera.

Estructura If:
Al escribir uno o varios flujos de acción en el código contenido en estos se
ejecutara siempre y cuando la evaluación de la expresión de la sentencia if se
evalué como verdadera.
Estructuras switch:

La estructura de selección switch tiene


una expresión de control y los flujos de
código alternos son ejecutados
dependiendo del valor constante asociado Estructuras de selección:
con esta expresión. Los tipos de datos
permitidos para la expresión de control
son byte, sbyte, short, ushort, uint,
long, ulong, char, string o un tipo
enumeración.
Estructuras de iteración: La estructura for se Por ejemplo:
utiliza cuando se conoce previamente cuantas veces ha For
de repetirse un bloque de código. Este bloque se (inicializador;
repetirá mientras la condición evalue una expresión condición;
booleana verdadera, no será posible evaluar otro tipo iterador)
de expresión. {Acciones; }

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á ientras la condición evalue
una expresión booleana verdadera.
Bibliografias
• Gamez, D. M. (2022, 6 marzo). 2.1.2 Infija. Recuperado 16 de septiembre de
2022, de https://lenguajeyautomatasiildd.blogspot.com/2022/03/212-infija.html
• Gamez, D. M. (2022b, marzo 7). 2.1.3 PostFija. Recuperado 16 de septiembre de
2022, de https://lenguajeyautomatasiildd.blogspot.com/2022/03/213-
postfija.html
• 2.2 Representaciones de código intermedio. (s. f.). Recuperado 16 de
septiembre de 2022, de https://equiporojolya2.blogspot.com/2022/03/22-
representaciones-de-codigo-intermedio.html
• Velasco, G. (2019, 30 septiembre). 2.2.1 Notación Polaca. Blogger. Recuperado
16 de septiembre de 2022, de
https://gabrielvelascoalfaroautomatas2.blogspot.com/2019/09/221-notacion-
polaca.html

Bibliografias
• Figueroa, A. B. L. (2022, 16 septiembre). 2.3.2 Expresiones. Recuperado 16 de
septiembre de 2022, de
https://alexisbladimirlopezfigueroa1998.blogspot.com/2019/09/232-
expresiones.html

• Anonimo, G. (2022, 16 septiembre). 2.3.1 Variables y constantes. Recuperado


16 de septiembre de 2022, de
https://gabrielvelascoalfaroautomatas2.blogspot.com/2019/09/231-variables-y-
constantes.html

• El lenguaje de programacioj. (s. f.). Descubre la programacion. Recuperado 16


de septiembre de 2022, de https://descubre.inf.um.es/lenguaje-
02.php#:~:text=Las%20variables%20y%20las%20constantes,ser%C3%A1n%20los
%20valores%20que%20guardar%C3%A1n

También podría gustarte