Está en la página 1de 22

EVALUACIÓN DE

EXPRESIONES
Programación lógica y funcional
efra

EXPRESIONES!
Una expresión se define como una combinación de
operadores y operandos de cuya evaluación se obtiene un
valor. Vista desde otro punto de vista, son el método
fundamental que tiene el programador de expresar
computaciones.
efra

Operadores y Operandos
Los operandos pueden ser nombres que denotan objetos variables o
constantes, funciones, literales de cualquier tipo adecuado de
acuerdo con los operadores u otras expresiones más simples.

Un operador es uno o varios símbolos que indican que debe ser


llevada a cabo una operación especificada sobre un cierto número de
operandos.
efra

Tipos de Operadores
Los operadores pueden ser:

● Unarios: Cuando tan solo tienen un operando. Son operadores


prefijos. ( a++ )
● Binarios: 2 Operandos. Son operadores infijos. ( a+b )
● Ternarios: 3 Operandos. ( mayor=(a>b)?a:b )
efra

Composición de Expresiones ¿?
Las expresiones están compuestas de:

● Operadores
● Operandos
● Paréntesis
● Llamadas a funciones
efra

Una expresión incluso puede ser una constante, una


variable, una invocación de una función que devuelva un
valor, una expresión condicional (como el operador ternario
en Java)
ORDEN DE LA EVALUACIÓN DE LOS OPERADORES.
El orden en que se evalúan los operandos viene dado por unas reglas:

● Reglas de procedencia: que operación es la que se resolverá


● Reglas de asociatividad:se utilizan para descubrir hechos que ocurren en
común dentro de un determinado conjunto de datos
● Uso de paréntesis: se genera un grupo asociado que resuelve el interior.

pablo
Clasificación de Operadores
1. Aritméticos (Resultado es un número): potencia, *, /, mod, div, +, -
2. Relacionales (Resultado es un valor de verdad): =, <, >, <=, >=, <>
3. Lógicos o Booleanos (Resultado es un valor de verdad): not, and, or
4. Alfanuméricos: + (Concatenación)
5. Asociativos. El único operador asociativo es el paréntesis ( )

pablo
JERARQUÍA DE OPERADORES (pablo)
¿QUÉ HACEN LOS LENGUAJES DE PROGRAMACIÓN AL RESPECTO?

C permite evaluación de circuito corto con los operadores booleanos.

PASCAL no permite evaluación de circuito corto. No se pueden usar sentencias del siguiente tipo:

A:array[1..10] of integer;

If (i<=10) and (a[i]>0) then

Porque se accede a una posición no válida de un array.

ADA: “and”, “or” no son operaciones de circuito corto y “or them” y “and them” si son operaciones de
circuito corto.

If (i<=10) and them (a[i]>0) them


Evaluación en Cortocircuito
En ocasiones se puede conocer el valor de algunas expresiones sin evaluarlas
completamente. Por ejemplo, de algunas expresiones lógicas como el AND o el OR. Si el
primer operando toma un determinado valor, entonces el valor de la expresión completa a
veces se puede conocer sin necesidad de evaluar el segundo operando, si no es
estrictamente necesario para conocer el valor de la expresión. Esto se le conoce como
evaluación en cortocircuito.
while (i < a.lenght and a[i] == 0){

GIo
Tipos de Evaluación:
● Evaluación Estricta o Ansiosa.
● Evaluación Diferida o Perezosa.
Evaluación Estricta o Ansiosa.
La evaluación estricta o ansiosa, también conocida como eager, exige que la
función se aplique únicamente cuando sus argumentos hayan sido
completamente evaluados.

Holliver
Ventajas de la Evaluación Estricta.

● Elimina la necesidad de rastrear y programar la evaluación de expresiones


● Permite al programador dictar el orden de ejecución, haciendo más sencillo determinar
cuando sub-expresiones dentro de expresiones serán evaluadas.

Holliver
Desventajas de la Evaluación Estricta.

● Forza la evaluación de expresiones que quizá no sean necesarias en tiempo de


ejecución, o quizá puede retrasar la evaluación de algunas que pudiesen resultar más
necesarias.
● Obliga al programador a organizar el código de manera que tenga un orden de
ejecución (mencionado también como ventaja, desde el punto de vista que se vea).

Holliver
Evaluación Diferida o Perezosa.
No hay muchos lenguajes que incluyan evaluación perezosa, pero se puede imitar hasta
cierto punto. Esta consiste en no evaluar un argumento hasta que no se necesite. Uno de
los beneficios de la evaluación perezosa consiste en la posibilidad de manipular estructuras
de datos infinitas. No es posible construir o almacenar un objeto infinito en su totalidad. Sin
embargo, gracias a la evaluación perezosa se puede construir objetos potencialmente
infinitos pieza a pieza según las necesidades de evaluación.

Holliver
Ventajas de la Evaluación Diferida.
VENTAJAS
● El incremento en el rendimiento al evitar cálculos innecesarios, y en tratar
condiciones de error al evaluar expresiones compuestas.
● Estas operaciones pueden reducir el consumo de memoria de una aplicación,
debido a que solamente los valores se crean cuando se necesitan.
● La capacidad de definir estructuras de control como abstracciones, en lugar de
operaciones primitivas.
Jorge
Desventajas de la Evaluación Diferida.
● Resulta difícil el combinarla con la programación imperativa, dadas sus
operaciones básicas.
● Puede fragmentar la memoria.
Comparativa en código.
Evaluación estricta: Evaluación Diferida:

ewq

Jorge
Conclusión
El programar no solamente se basa en escribir algunas líneas de código, sino también
abarca el conocer qué está haciendo la computadora y cómo es que evalúa las
expresiones.

Asimismo, el conocer cómo es que se jerarquizan las operaciones, nos ahorrará muchos
problemas de lógica que quizá el compilador no pueda gestionar.

Las expresiones son base para cualquier cosa que se desee programar,
independientemente del paradigma que se elija, es por eso que el conocer cómo es que un
lenguaje de programación evalúa dichas expresiones, resulta muy útil.

También podría gustarte