Evaluación de Prefijos en Lenguaje de Programación Platzi
Clase 44 de 58 • Curso de Creación de Lenguajes de Programación: Intérpretes
Resumen
¿Qué son los prefijos en el lenguaje de programación Platzi?
En el lenguaje de programación Platzi, los prefijos son una parte crucial para entender cómo se evalúan las expresiones. El prefijo, cuando está frente a un entero, puede implicar un valor negativo. En cambio, el mismo signo, si está entre dos números, se interpreta como una resta. Los prefijos también pueden ser operadores como el símbolo de interrogación o exclamación, que denotan una negación. Este entendimiento semántico difiere de la sintaxis, que se enfoca en aspectos como la correcta apertura y cierre de paréntesis, el uso adecuado de los keywords, entre otros.
¿Cómo se evalúan los prefijos en Platzi?
Para evaluar correctamente los prefijos en Platzi, es esencial modificar la función evaluate
. Este proceso implica no solo reconocer los prefijos, sino también operar sobre los valores booleanos o enteros que se les presentan. Veamos cómo se realiza en el código:
def evaluate_prefix_expression(operator, right):
if operator == "!": # Bank operator
return evaluate_bank_operator_expression(right)
elif operator == "-": # Minus operator
return evaluate_minus_operator_expression(right)
else:
return None # Placeholder para manejo de errores en el futuro
Las funciones específicas como evaluate_bank_operator_expression()
y evaluate_minus_operator_expression()
se utilizan para devolver los valores correctos codificados en python. La función evaluate_suffix_expression
necesita ser implementada para acceder a las propiedades del nodo operator o el nodo right.
¿Cómo funcionan los operadores específicos?
Bank Operator
El Bank Operator es un operador booleano, cuyo propósito es invertir el valor booleano que tiene a su derecha. La función para evaluar el Bank Operator se ve así:
def evaluate_bank_operator_expression(right):
if right is True:
return False
elif right is False:
return True
Este enfoque garantiza que cada valor booleano se procese y devuelva correctamente. Cabe destacar que estamos implementando comparaciones de objetos en Python ya que en este lenguaje existen valores booleanos únicos True
y False
.
Minus Operator
Por otro lado, el Minus Operator transforma un valor entero positivo a su representación negativa:
def evaluate_minus_operator_expression(right):
if type(right) == int:
return -right
return None # Otra vez, un placeholder para el futuro manejo de errores
Esta función es directa, pero eficaz, revisando que el tipo de dato sea un entero antes de realizar cualquier operación.
Pruebas y errores comunes al evaluar prefijos
A la hora de implementar y probar estas funciones, es crucial verificar que cada operador y su correspondiente evaluación se comporten de acuerdo a las expectativas:
- Errores frecuentes: Si el prefijo no está bien definido o evaluado puede devolver
None
. - Pruebas sugeridas: Validar tanto enteros positivos como negativos, así como condiciones booleanas para obtener sus opuestos usando el Bank Operator.
Recuerda que este es solo un paso inicial en la comprensión y desarrollo del lenguaje de programación Platzi. Se abordará el uso de infijos en siguientes sesiones, expandiendo aún más nuestra capacidad de crear e interpretar programas. Sigue avanzando en esta emocionante travesía del desarrollo de lenguajes, el esfuerzo valdrá la pena.