Os operadores lógicos são aqueles que nos permitem fazer a conjunção para efetuar o teste de uma expressão boleana, ou seja, eles fazem a comparação de duas expressões e retornam o valor (V) verdadeiro, ou (F) falso. Os operadores lógicos são frequentemente usados em instruções de decisão, como em testes da instrução se/senao ou selecao/caso. Também são usados nas expressões que controlam as estruturas de repetição, tais como nos laços. Há três tipos de operadores lógicos implementados no Hall. São eles:
& faz a operação lógica E (and), simbolizada pelo eperset ou ampersand
| faz a operação lógica OU (or), simbolizada pelo pipe e,
! faz a operação lógica NÃO (not), simbolizada pela exclamação.