DiGrande.it
Braille y Tecnologías para la Discapacidad Visual

Bloques, cortocircuito e índice de interpretación

Una o más instrucciones pueden encerrarse entre paréntesis "(...)" que delimitan un bloque. Encerrar las instrucciones en bloques es útil para evaluar el resultado final de las instrucciones del bloque, y no los resultados individuales de cada instrucción. Por ejemplo:

- A & B | C - La expresión es true si A es true y B es true, o C es true. La evaluación de la expresión se interrumpe si A y B son true, de lo contrario continúa analizando C. Además, si A es false el análisis se interrumpe igualmente con false.

- A & (B | C) - La expresión es true si A es true y B o C son true. La evaluación de la expresión se interrumpe si A es false, o continúa entrando en el bloque de instrucciones, evaluando B, deteniéndose si B es true, o prosiguiendo con la evaluación de C.

EL CORTOCIRCUITO: SHORT CIRCUIT

Si se usan explícitamente los operadores lógicos, las expresiones se interpretan siguiendo la técnica SHORT CIRCUIT (cortocircuito). Esto significa que si la parte ya interpretada proporciona un valor útil para satisfacer la expresión completa, la parte por interpretar será ignorada y el circuito terminará. Por ejemplo:

- A | B - Si A es true, B no se evalúa, ya que de todos modos la expresión daría un resultado true.

- A & B - En este caso, tanto A como B, para satisfacer la expresión, deben tener un valor true, por lo tanto, la expresión se evalúa completamente si A es true. De lo contrario, si A es false, se interrumpe, ya que incluso evaluando B la expresión sería de todos modos false.

CORTOCIRCUITO Y AND IMPLÍCITO

En las expresiones en las que no se especifica explícitamente el operador & (AND), el cortocircuito no se aplica. Por ejemplo:

- A B - La expresión se evalúa tanto en A como en B, incluso si A es false. Al final, si A y B son true la expresión será true.

- A & B - En este caso hemos usado explícitamente el operador AND. Si A es false, B no se evalúa, ya que se activa el cortocircuito que considera la expresión de todos modos false.

CORTOCIRCUITO E INSTRUCCIONES DE FLAG

El lenguaje de Biblos posee instrucciones particulares (flag e índice) que, si se ejecutan, realizan acciones específicas. Estas instrucciones se ejecutan solo si son alcanzadas por el intérprete de las expresiones. Dado que son instrucciones contenidas en la misma línea de código a interpretar, el sistema de cortocircuito podría impedir su ejecución.

Si se usan instrucciones de flag o de desplazamiento del índice, es útil usar los paréntesis para encerrar las instrucciones a analizar con cortocircuito, y colocar fuera de los paréntesis las instrucciones de flag o de índice.

ÍNDICE DE ANÁLISIS E INSTRUCCIONES

Considérese que Biblos analiza el texto mediante una variable de índice. Las instrucciones satisfacen sus propias condiciones (true o false) leyendo el texto mediante esta variable especial. En muchas instrucciones hay que especificar valores. La instrucción se valdrá de la variable de índice para comprobar si dicho valor satisface el texto en el que está posicionado el índice. Cada instrucción devuelve siempre un valor booleano unario (true o false). Devolverá true si el texto y el valor se satisfacen, de lo contrario false.