Operadores Lógicos

Para entendermos o que significa cada uma das propriedades que aqui vão ser chamadas para a análise dos operadores lógicos, deverá ser lida a parte final do artigo Lógica proposicional.

AND

Operador AND
Figura 1

A análise de uma proposição através do operador lógico AND (E), ou conjunção lógica, resulta em um valor lógico verdadeiro se e somente se, todos as proposições atómicas que a compõem tiverem um valor verdadeiro.

Vejamos o caso do João. É do sexo masculino, portanto pertence ao conjunto B ou é um objeto com a qualidade que define os objetos que pertencem ao conjunto B. Tem mais de 20 anos, portanto pertence ao conjunto A.
Quando analisada a proposição “O João tem 32 anos” ou “O João é do sexo masculino” AND “tem mais de 20 anos de idade”,  as propriedades a e a analisar pelo operador serão verdadeiras, devolvendo este o valor verdadeiro.
E a Isabel, o Francisco e a Teresa? Em qualquer destes casos, para qualquer um deles  as propriedades a e/ou b assumem o valor 0. Logo, o operador AND devolve uma resposta 0.

Verificamos que só para os clientes da “Noites Felizes” que pertencem em simultâneo a ambos os conjuntos A e B o operador AND devolve verdadeiro.
Podemos então concluir  que o operador AND define a Interceção dos conjuntos A e B, como se pode ver no diagrama de Venn na Figura 1.

As expressões algébricas ou de lógica proposicional que representam este operador podem ser:

a . b ⇔ a AND b

E o símbolo da porta lógica que representa a análise destas duas proposições atómicas, agora como os operandos a e b com os valores 1 ou 0, devolvendo  verdadeiro ou falso, agora como uma saída S com o valor 0 ou 1, é o representado na Figura 1 ao centro.

 A tabela verdade deste operador, representada na Figura 1 do lado direito,  diz-nos o valor da saída S da porta lógica AND para os diversas combinações dos operandos a e b, confirmando aquilo que acabámos de constatar, i.e.  que a resposta é verdadeira se e só se ambas as entradas forem verdadeiras. Podemos assim concluir que:

O operador AND devolve verdade para o conjunto dos clientes do sexo masculino  com mais de 20 anos, expresso pela intersecção dos elementos dos conjuntos A e B, isto é, C.

No caso do parqueamento a variável que representa a presença do carro é verdade (1) e o pagamento também é verdade (1). Sendo estas as entradas de uma porta lógica AND a sua saída será verdade (1) fechando o circuito de movimentação da barreira.

OR

OR Operator, gate symbol and truth table
Figura 11

A análise de uma proposição através do operador lógico OR (OU) ou disjunção lógica, resulta em um valor falso se e só se, todos os operandos tiverem um valor falso.

Vejamos o caso da Isabel. É do sexo feminino, portanto não tem a qualidade que define os objetos que pertencem ao conjunto B, pelo que não lhe pertence. Tem mais de 20 anos, portanto pertence ao conjunto A.
Quando analisada a proposição “A Isabel tem 25 anos” ou “A Isabel não é do sexo masculino” OR “tem mais de 20 anos de idade”,  a propriedade b é falsa, a propriedade é verdadeira e o resultado da sua análise devolvido pelo operador OR será verdadeiro.
Para o Francisco e para o João, para quem pelo menos uma ou ambas as propriedades a ou b assumem o valor verdadeiro, a sua análise pelo operador OR devolve verdadeiro. Só para a Teresa, para quem ambas as propriedades a e b têm valores falsos, o operador OR vai devolver falso.

Verificamos que para qualquer dos clientes da “Noites Felizes” que pertença a algum dos conjuntos A ou B o operador OR devolve verdadeiro.
Podemos então concluir  que o operador OR define a União dos conjuntos A e B, como se pode ver no diagrama de Venn da Figura 2.

As expressões algébricas ou de lógica proposicional que representam este operador podem ser:

a + b ⇔ a OR b

E o símbolo da porta lógica que representa a análise destas duas proposições atómicas, agora como os operandos a e b com os valores 1 ou 0, devolvendo  verdadeiro ou falso, agora como uma saída S com o valor 0 ou 1, é o representado na Figura 2 ao centro.

A tabela verdade deste operador, representada na Figura 2 do lado direito,  diz-nos o valor da saída S da porta lógica OR para os diversas combinações dos operandos a e b, confirmando aquilo que acabámos de constatar, i.e.  que a resposta é falsa se e só se ambas as entradas forem falsas. Podemos assim concluir que:

O operador OR devolve verdade para todos os clientes que, ou têm mais de 20 anos (independentemente do sexo) ou são do sexo masculino (independentemente da idade), resultando num conjunto expresso pela União dos conjuntos A e B.

No caso do parqueamento,  a porta OR poderia ser utilizada para verificar duas hipóteses de pagamento, pela introdução do cartão ou por Via Verde, devolvendo uma resposta verdade (1) quando alguma das duas se verificasse. Estando a sua saída ligada à entrada referente ao pagamento na porta AND atrás referida, desde que alguma das formas de pagamento e a presença do carro se verificassem a saída da porta AND seria verdade (1) abrindo o circuito de movimentação da barreira.

NOT

Operador NOT
Figura 12

A análise de uma proposição pelo operador lógico NOT (NÃO) ou inversor lógico, resulta verdadeiro se a proposição em análise for falsa e vice-versa.

Vejamos o caso do Francisco.  Tem menos de 20 anos, portanto não pertence ao conjunto A.
Quando analisada a proposição “O Francisco tem 18 anos” ou “O Francisco” NOT “tem mais de 20 anos de idade”,  a propriedade a é falsa e o resultado da sua análise devolvido pelo operador será verdadeiro.
Para a Teresa o operador NOT também devolve verdadeiro mas para o João e para a Isabel já devolve falso, pois ambos são maiores de 20 anos.

Verificamos que para qualquer cliente da “Noites Felizes” que não pertença ao conjunto A o operador NOT devolve verdadeiro.
Podemos assim concluir que o operador NOT define a Diferença do conjunto A, como se pode ver no diagrama de Venn da Figura 3.
Este é o caso representado na Figura, mas o mesmo se poderá dizer relativamente ao conjunto B.

As expressões algébricas ou de lógica proposicional que representam este operador podem ser:

¬A   ⇔ NOT A

O símbolo da porta lógica deste operador é o que está representado na Figura 3 ao centro e a tabela verdade é a que está representada na mesma figura mas à direita.

O operador NOT representa o conjunto de todos os clientes que têm menos de 20 anos independentemente do sexo, quando analisada a idade, excesso pela Diferença de A ou o conjunto de todos os clientes do sexo feminino independentemente da idade, quando analisado o sexo, excesso pela Diferença de B.

No caso do parqueamento, a porta NOT seria a ideal para colocar após a porta AND num circuito divergente do principal para o fecho da barreira. Como logo que o carro sai a porta AND passa a devolver um valor falso (0), tal resultaria numa saída verdade (1) do operador NOT, fechando assim o circuito que fecha a barreira.

Concluímos neste artigo a apresentação dos operadores Booleanos básicos. Básicos porque a partir destes se podem obter todos os outros, que vamos começar a apresentar nos artigos seguintes.

NAND

Figura 1

NAND , ou negação da conjunção lógica, expressa usualmente como “não (isto E aquilo)” é um operador lógico obtido através dos operadores NOT e AND usando a relação A NAND B = NOT (A AND B).

Uma proposição analisada através de um operador NAND produz um valor falso, se e só se, todas as suas proposições atómicas forem verdadeiros, ou seja, o NAND produz um valor verdadeiro se pelo menos uma das suas proposições atómicas for falsa.

Para a Isabel, para o Francisco e para a Teresa, pelo menos uma ou ambas as propriedades a e/ou b assumem o valor falso, pelo que a sua análise pelo operador NAND devolve verdadeiro.
Só para o João, para quem ambas as propriedades a e b têm valores verdadeiros, o operador NAND vai devolver falso.

Verificamos que para qualquer dos clientes da “Noites Felizes” que não pertença em simultâneo a ambos os conjuntos A e B, ou seja, que não pertença à sua intersecção, o operador NAND devolve verdadeiro.
Podemos então concluir  que o operador NAND define a Diferença da Intersecção dos conjuntos A e B, pois define o conjunto dos objetos que não pertencem à sua intersecção, como se pode ver no diagrama de Venn da Figura 1.

As expressões algébricas ou de lógica proposicional que representam este operador podem ser:

(a . b)  ou  a NAND b

O símbolo da porta lógica e a Tabela verdade deste operador são os que estão representados na Figura 1. Podemos assim concluir que:

O operador NAND devolve verdade para todos os clientes com exceção dos maiores de 20 anos do sexo masculino, resultando num conjunto expresso pela Diferença da Intersecção dos conjuntos A e B.

No caso do nosso parqueamento diríamos que, enquanto se verificar em simultâneo o facto de o carro já ter recebido o talão à entrada e estar presente na zona de entrada não é fornecido bilhete ao carro seguinte. Isto é: o carro já recebeu bilhete (1) AND está na zona de entrada (1) devolve o valor verdade (1) O operador NOT, ou inversor, converte-o em falso (0) e não despoleta o mecanismo para nova admissão porque mantém o circuito fechado.

NOR

Figura 2

NOR ou negação da disjunção lógica, expressa usualmente como “não (isto OU aquilo)“, é um operador lógico obtido através dos operadores NOT e OR usando a relação A NOR B = NOT (A OR B).

Uma proposição analisada através de um operador NOR produz um valor verdadeiro, se e só se, todas as suas proposições atómicas forem falsas, ou seja, o NOR produz um valor falso se pelo menos uma das suas proposições atómicas for verdadeira.

Para a Isabel, para o Francisco e para o João, pelo menos uma ou ambas as propriedades a e/ou b assumem o valor verdadeiro, pelo que a sua análise pelo operador NOR devolve falso.
Só para a Teresa, para quem ambas as propriedades a e b têm valores falsos, o operador NOR vai devolver verdadeiro.
Verificamos que para os clientes da “Noites Felizes” que não pertençam a nenhum dos conjuntos A e/ou B , i.e que não pertençam à sua União, o operador NOR devolve verdadeiro.
Podemos então concluir  que o operador NOR define a Diferença da União dos conjuntos A e B, pois define o conjunto dos objetos que não pertencem à sua União, como se pode ver no diagrama de Venn da Figura 2.

As expressões algébricas que representam este operador podem ser:

a+b  ou  a NOR b ou NOT (a OR b)

O símbolo da porta lógica e a tabela verdade deste operador  estão representados na Figura 2. Podemos assim concluir que:

O operador NOR devolve verdade para todos os clientes menores de 20 anos do sexo feminino, resultando num conjunto expresso pela Diferença da União dos conjuntos A e B.

O parqueamento que temos estado a analisar tem duas limitações: não pode receber carros com mais de 1,80 mt de altura, devido a disponibilidades de altura útil dos pisos, nem com mais de 4,20 mt de comprimento, devido ao raio de curvatura das rampas.
Para isso instalaram sensores à entrada do parque que determinam a altura e o comprimento dos carros, produzindo valores 0 ou 1 conforme for falso ou verdadeiro estarem acima daquelas medidas e ligaram-nos à entradas de uma porta NOR.
Só no caso de ambas as medições serem falsas (0) a porta NOR produz uma saída verdadeira (1) que vai, através de um circuito próprio, informar a porta AND que pode abrir a barreira.
Não é nosso objetivo criar o circuito para este efeito, mas só para satisfazer a curiosidade, se a saída da porta NOR estiver ligada a uma 1ª porta AND onde liga o detetor de presença do carro e a saída desta 1ª porta AND à entrada da porta AND que verifica a presença do carro e o pagamento, só quando NOR for 1 a barreira se abre.

Reparem como, estando nós ainda só a falar das mais elementares expressões de lógica proposicional já temos a entrada de um parque de estacionamento a funcionar com uma série de controlos. E só com análises a verdadeiro e falso, 1 e 0.

XOR

Figura 1

XOR  ou eXclusive OR  (OU exclusivo), é um operador lógico também conhecido por operador diferença ou ainda por disjunção exclusiva.

Uma proposição analisada através de um operador XOR produz um valor verdadeiro quando, sendo uma das suas proposições atómicas verdadeira, a outra for falsaeXclusive OR (OU exclusivo) significa precisamente sempre um dos dois mas nunca ambos. Operador diferença significa sempre diferentes, nunca coincidentes.

Vejamos o caso da Isabel. É do sexo feminino, portanto não tem a qualidade que define os objetos que pertencem ao conjunto B, pelo que não lhe pertence. Tem mais de 20 anos, portanto pertence ao conjunto A.
Quando analisada a proposição “A Isabel tem 25 anos” ou “A Isabel não é do sexo masculino” XOR “tem mais de 20 anos de idade”,  a propriedade b é falsa, a propriedade a  é verdadeira e o resultado da sua análise devolvido pelo operador XOR será verdadeiro, pois as propriedades têm valores diferentes para ela.
Para o Francisco, para quem a propriedade a é falsa e a propriedade b é verdadeira, o operador XOR vai devolver também verdadeiro.
Para o João e para a Teresa, para quem ambas as propriedades a e b assumem o valor verdadeiro ou falso respetivamente, portanto tendo valores iguais para cada um, a sua análise pelo operador XOR devolve falso.

Verificamos que para qualquer cliente da “Noites Felizes” que pertença a algum dos conjuntos A ou B e não pertencendo nunca aos dois o operador XOR devolve verdadeiro, i.e. XOR devolve verdadeiro para os objetos da União dos dois conjuntos excluindo a sua Intersecção, onde as propriedades a e b para eles são sempre diferentes, i.e. quando uma é verdade a outra é falsa e vice versa.
Podemos então concluir  que o operador XOR define a Diferença simétrica dos conjuntos A e B, conforme se pode ver pelo diagrama de Venn da Figura 1.

As expressões algébricas  que representam este operador podem ser:

a b  ou  a XOR b

O símbolo da porta lógica e a Tabela verdade deste operador são os que estão representados na Figura 1. Podemos assim concluir que:

O operador lógico XOR devolve verdade para os clientes do sexo feminino com mais de 20 anos e do sexo masculino com menos de 20 anos, resultando num conjunto expresso pela Diferença simétrica de A e B.

Agora vamos abandonar o parqueamento e manter-nos na “Noites Felizes” para ilustrar uma ação de automatização através de uma porta lógica XOR. Vamos admitir que o proprietário da discoteca resolveu controlar o acesso à mesma de uma forma automática.
Então criou cartões de cliente que restringiam o acesso à mesma. Quem queria entrar tinha que ser possuidor de cartão ou então pedir para lhe criarem um antes de entrar. Só depois de colocado o cartão numa máquina de leitura magnética à entrada da discoteca, lidos e transferidos os dados para o computador (I -Input) e processados os mesmos é que o computador emitia uma instrução para a barreira de entrada (O – Output) permitindo ou não a entrada conforme as instruções que tinha.
Vamos admitir que, por razões que desconheçemos e pertencem ao imaginário, o dito proprietário tinha determinado que em certo dia só entrariam na discoteca as mulheres com mais de 20 anos e os homens com menos de 20 anos.
Para assim ser o leitor do cartão enviava o valor das variáveis a e b para as entradas de uma porta XOR cuja saída, quando 1, fechava o circuito elétrico de abertura da barreira de entrada. Assim quando o cliente fosse um homem (b=1) teria que ter menos de 20 anos (a=0) e se fosse uma mulher (b=0) teria que ter mais de 2

0 anos (a=1) para que a porta XOR lhes permitisse a entrada.
Nestas condições, nesse dia só a Isabel e o Francisco puderam entrar na discoteca. O João e a Teresa ficaram à porta a ver passar a banda.

XNOR

Figura 2

XNOR é um operador lógico também conhecido como operador coincidência cuja ação é a inversa do operador XOR, i.e.  a XNOR b = NOT (a XOR b).
Uma proposição analisada através de um operador XNOR produz um valor verdadeiro quando as suas proposições atómicas são ambas verdadeiras ou são ambas falsas. Operador coincidência significa sempre coincidentes, nunca diferentes.

A Isabel e o Francisco, para quem as propriedades a e b são diferentes, quando analisados por um operador XNOR devolvem falso.
O João e a Teresa, para quem as propriedades a e b são coincidentes, quando analisados por um operador XNOR devolvem verdadeiro.

Verificamos que para qualquer cliente da “Noite Felizes” que em simultâneo pertença a ambos os conjuntos A e B ou a nenhum deles, o operador XNOR devolve verdadeiro. XNOR devolve verdadeiro para os objetos dentro da Intersecção dos dois conjuntos ou fora da sua União, onde as propriedades a e b para eles são sempre coincidentes, i.e. ambas verdadeiras ou ambas falsas.
Podemos então concluir  que o operador XNOR define a Identidade simétrica dos conjuntos A e B, conforme se pode ver pelo diagrama de Venn da Figura 2.

As expressões algébricas  que representam este operador podem ser:

A ≡ B  ou  A XNOR B

O símbolo da porta lógica e a Tabela verdade deste operador são os que estão representados na Figura 2. Podemos assim concluir que:

O operador lógico XNOR devolve verdade para os clientes do sexo feminino com menos de 20 anos e do sexo masculino com mais de 20 anos, resultando num conjunto expresso pela Identidade simétrica de A e B.

Vamos continuar na “Noites Felizes” para ilustrar uma ação de automatização através de uma porta lógica XNOR. Agora o proprietário pretende exatamente o oposto, isto é, que só entrem clientes femininos com menos de 20 anos e clientes masculinos com mais de 20 anos.
Para assim ser o leitor do cartão passou a enviar o valor das variáveis a e b para as entradas de uma porta XNOR cuja saída, quando 1, fechava o circuito elétrico de abertura da barreira de entrada. Assim quando o cliente fosse um homem (b=1) teria que ter mais de 20 anos (a=1) e se fosse uma mulher (b=0) teria que ter menos de 20 anos (a=0) para que a porta XNOR lhes permitisse a entrada.
Nestas condições, nesse dia só o João e a Teresa puderam entrar na discoteca. A Isabel e o Francisco ficaram à porta a ver passar a banda.

Portas Lógicas de Três Estados (Tristate)

Figura 4

As portas Tristate, são portas lógicas que admitem três estados de saída:
0 ou 1 conforme o valor da entrada a seja 0 ou 1 caso a entrada b ou Enable esteja a 0,  ou desligado se a entrada b estiver a 1. Isto no caso das portas Tristate ativas a 0 (b=0), porque também podem ser ativas a 1.
São basicamente um interruptor que, ou deixa passar a informação que tem à entrada ou pura e simplesmente se desliga não deixando passar qualquer informação.
Vamos neste trabalho admitir que a Porta Tristate é ativa a 0, isto é, b=0 ou Enable a 0, por ser esta a situação mais comum em todos os dispositivos que a utilizam.
A porta Tristate é normalmente usada quando se pretende partilhar numa mesma linha vários tipos de informação provenientes de múltiplas linhas e que só podem estar presentes nessa linha individualmente, isto é, uma informação de cada vez, sob pena de gerarem curto circuitos.
Tendo uma porta Tristate em cada uma das linhas que fornece informação e entronca na outra linha única, garantindo que só uma das portas Tristate que controlam os vários acessos pode estar ativa,  conseguimos o pretendido. É fundamental certificarmo-nos que só uma das portas está ativa de cada vez, sob pena de poder destruir um circuito.
Veremos casos concretos de aplicação destas portas mais para a frente, fundamentalmente na secção em que falaremos sobre os circuitos das memórias.

Portas Lógicas com Múltiplas Entradas

Figura 3

Falámos até agora dos operadores lógicos e apresentámos já os símbolos  por que virão a ser designados – portas lógicas. O nome porta aplica-se simbolicamente ao facto de se abrir ou fechar, conforme as entradas proporcionam uma saída aberta (1) ou fechada (0). As portas lógicas são a representação física dos operadores  abstratos que se virão a integrar nos circuitos lógicos que veremos mais adiante.
Temos feito a análise das portas lógicas sempre apresentando duas entradas, mas deveremos fazê-lo para as múltiplas entradas que na realidade as mesmas podem assumir. Assim:

  • A saída de uma porta AND só é verdadeira se forem verdadeiras todas as variáveis de entrada e é falsa se pelo menos uma das entradas for falsa.
  • A saída de uma porta lógica OR só é falsa se todas as variáveis de entrada forem falsas e será verdadeira se pelo menos uma das entradas for verdadeira.
  • A saída de uma porta NAND será falsa para todas as entradas verdadeiras e se qualquer uma das entradas for falsa devolverá um valor verdadeiro na sua saída.
  • A porta NOR terá na saída um valor verdadeiro se todas as entradas forem falsas e basta que uma entrada seja verdadeira, para que devolva um valor falso na sua saída.

conforme se pode verificar na Figura 3.

Conclusão

Já vimos como é que, com os operadores lógicos, conseguimos influenciar decisões com base nos pressupostos.
Os operadores lógicos são algo que está  no entendimento do raciocínio humano, criados por nós para trabalhar a tal dualidade verdadeiro/falso.
Com a combinação destes operadores, ou antes, portas lógicas, porque no fundo apresentam uma saída para uma, duas ou mais entradas, conseguem-se construir circuitos que permitem executar aquilo a que se chama um programa, na sua forma mais elementar, como iremos verificar mais adiante
Em termos mais elaborados, as portas lógicas são abstrações criadas na mente humana que permitem com raciocínios lógicos nelas apoiados criar abstrações muito mais complexas.
Mas o computador não entende abstrações. O computador não tem raciocínio. O computador é um exímio executante daquilo para que o instruímos. Na realidade o computador só sabe entender dois estados dos seus circuitos elétricos: sem tensão e com tensão.
Fomos nós, seres pensantes, que pegámos naquilo que o Sr. George Boole fez com a matemática binária e a lógica filosófica e dissemos que esses estados dos circuitos elétricos dos computadores passavam a representar os estados lógicos 1 e 0 da álgebra de Boole.
E em boa hora associámos o estado dos circuitos elétricos à Álgebra de Boole e à lógica proposicional, porque foi com essa comparação que nasceram as maravilhosas máquinas sem as quais hoje voltaríamos à idade da pedra.
Mas, história à parte, a realidade é que ainda não sabemos como é que um estado de verdadeiro ou falso se converte em tensão ou na sua ausência, num circuito elétrico do computador, enfim, como é que da abstração se passa para a realidade.

E esse é o verdadeiro segredo do nascimento e evolução do dito. Vamos então ver como é que se materializou a lógica em circuitos elétricos.