Ora, computadores são máquinas de tomar decisões. A lógica digital se baseia em operações lógicas. Cada uma delas decide se algo é VERDADEIRO ou FALSO (os únicos dois valores possíveis) baseado no fato de que uma ou mais condições são, por sua vez, VERDADEIRAS ou FALSAS. Vejamos alguns exemplos.
Terminei a coluna anterior prometendo explicar de forma simples como usar a Lógica Digital no processo de tomada de decisões. Então vamos a ela.
Com vimos na coluna “Transistores para principiantes”, a lógica digital é um ramo da lógica matemática cujas variáveis podem assumir apenas os valores “VERDADEIRO” e “FALSO” que, por sua vez, podem ser usados para representar respectivamente os algarismos “um” e “zero”, empregados nas operações internas dos computadores.
Ora, computadores são máquinas de tomar decisões. Por menos que isto seja evidente, por mais que computadores pareçam máquinas maravilhosas capazes de fazer coisas incríveis (e, de fato, o são), acredite: tudo isto não passa do resultado de sucessivas tomadas de decisões baseadas em condições impostas pelo programa que está sendo executado. Esta é a base do processamento de dados. Pois, do ponto de vista da lógica (o que exclui as decisões no campo amoroso), decisões são tomadas com base na aplicação de condições. Desde a mais simples até a mais complexa, cada decisão é tomada após sopesar uma ou mais condições.
Se você pretende sair e deve decidir se veste ou não um agasalho, basta avaliar a condição “está frio lá fora”. Se for verdadeira, convém vestir o casaco, se falsa pode dispensar o agasalho. E para que um médico decida se deve ou não submeter seu paciente a uma cirurgia arriscada, será preciso sopesar uma complexa trama de condições que levem em conta as condições de saúde do paciente, os riscos inerentes à intervenção cirúrgica e uma série de outras condições igualmente importantes. Mas, em qualquer caso, decisões são baseadas em condições.
A lógica digital se baseia em operações lógicas. Cada uma delas decide se algo é VERDADEIRO ou FALSO (os únicos dois valores possíveis) baseado no fato de que uma ou mais condições são, por sua vez, VERDADEIRAS ou FALSAS. Vejamos alguns exemplos.
Uma situação possível: você pretende ir à praia. A decisão a ser tomada, então, é se a afirmação “vou à praia” será verdadeira ou falsa. Sabe-se que não é conveniente ir à praia com chuva. A condição, então, é estar ou não chovendo. Para tomar a decisão será preciso investigar a condição verificando se a afirmação “Está chovendo” é verdadeira ou falsa. E como você somente irá à praia se NÃO estiver chovendo, a condição será tomada baseada na aplicação da operação NOT (que inverte o valor verdadeiro ou falso da resposta).
Vejamos como isto funciona na prática. Para tomar a decisão deve-se gerar uma equação lógica e resolvê-la. O que, embora não pareça, é uma coisa muito simples.
Toda equação tem dois termos que, para que a equação seja válida, devem ser iguais. Na aplicação da lógica digital ao nosso caso, o primeiro termo é a decisão a ser tomada (vou à praia). O segundo é uma expressão lógica que represente a condição (no nosso caso, a simples aplicação da operação NOT ao fato de estar chovendo). Para gerar a equação basta igualar ambos os termos:
(vou à praia) = [NOT (está chovendo)]
Sua resolução é igualmente simples, já que o resultado tem que ser uma variável lógica cujo valor somente pode ser VERDADEIRO ou FALSO. Então vamos resolvê-la começando pelo segundo termo, como convém.
A solução deve levar em conta que o valor da condição (está chovendo) pode ser VERDADEIRO ou FALSO e que a operação lógica NOT inverte este valor.
Suponha que não esteja chovendo. Então:
(está chovendo) = (FALSO)
Portanto:
[NOT (está chovendo)] = [NOT (FALSO)] = VERDADEIRO
O que significa que o segundo termo da equação é VERDADEIRO. Substituindo este valor na equação e levando em conta a igualdade, teremos:
(vou à praia) = VERDADEIRO
E, assim, a tomada de decisão usando a lógica digital concluiu que você vai à praia. Então, quando regressar, use um pouco de seu tempo para recalcular a equação acima quando não chove, ou seja, no caso de:
[(está chovendo) = VERDADEIRO]
Mas nem tudo é assim tão simples de decidir. Diferentemente da simples aplicação da operação NOT, cujo resultado depende apenas do valor de uma única condição, há decisões mais intrincadas que dependem da combinação dos valores de duas ou mais condições. Por exemplo: suponhamos que a decisão a ser tomada seja ir ou não ao cinema e imaginemos que, para que você decida ir, é necessário estar de folga no trabalho. Mas note que atender a esta condição é necessário porém não suficiente, pois também é preciso ter dinheiro para o ingresso. Portanto há que combinar as duas condições: você irá ao cinema se estiver de folga E (AND) tiver a grana da entrada.
A operação lógica a ser empregada neste caso para combinar as duas condições é AND. Portanto a expressão que formará o segundo termo da equação lógica, será:
[(estou de folga) AND (tenho dinheiro)]
O primeiro termo é sempre a decisão a ser tomada. Logo, a equação lógica cuja solução decidirá se você irá ou não ao cinema será:
(vou ao cinema) = [(estou de folga) AND (tenho dinheiro)]
Para obter os resultados possíveis da operação AND vamos aplicar a ela as leis da lógica digital usando todas as combinações possíveis dos valores VERDADEIRO e FALSO (não vai dar muito trabalho, são apenas quatro). Aqui estão:
[FALSO] AND [FALSO] = FALSO
[FALSO] AND [VERDADEIRO] = FALSO
[VERDADEIRO] AND [FALSO] = FALSO
[VERDADEIRO] AND [VERDADEIRO] = [VERDADEIRO]
Como se vê, o segundo termo da equação somente resulta VERDADEIRO quando ocorrer a última das combinações acima, ou seja, quando ambas as condições também o forem. E como ele deve ser igual ao primeiro, você somente irá ao cinema se estiver de folga E (AND) tiver dinheiro para a entrada.
Como se vê, mesmo com duas condições, a solução da equação lógica foi simples.
Finalmente, a terceira e última das operações básicas da lógica digital, que também deve ser aplicada a duas (ou mais) condições, é a operação OR cujo resultado é VERDADEIRO se apenas uma das condições for VERDADEIRA. Um exemplo: você está morrendo de preguiça e somente decidirá sair de casa se a dita casa pegar fogo ou se a Mariana Ximenes tocar a campainha lhe convidando para sair (as gentis leitoras, por obséquio, escolham um personagem que inspire igual vontade de sair caso toque a campainha; afinal é apenas um exemplo fictício). Então você sairá de casa em caso de incêndio OU convite da Mariana.
A equação da lógica digital que levará à tomada de decisão de sair de casa será então:
(saio de casa) = (incêndio) OR (convite da Mariana Ximenes)
Se você aplicar o mesmo raciocínio usado acima para combinar os valores VERDADEIRO e FALSO em torno da operação OR, verá que basta que qualquer um deles assuma o valor VERDADEIRO para que o resultado assuma o mesmo valor VERDADEIRO. E resolvendo a equação (ou seja: aplicando ao segundo termo da equação acima os resultados assim obtidos) verá que para que você saia de casa basta que uma das condições seja verdadeira (espero que a última, embora considere mais provável a primeira).
Da mesma forma que na aritmética, combinar as duas operações fundamentais (adição e subtração) resulta na obtenção das demais (a multiplicação é uma combinação de somas sucessivas, a divisão de subtrações, a potenciação de multiplicações e a radiciação de divisões), na lógica digital obtém-se as operações derivadas NAND, NOR e XOR combinando-se as três operações fundamentais NOT, AND e OR (quer ver como? Consulte a coluna “Lógica digital e Álgebra Booleana” já citada acima).
E a lógica digital admite apenas estas seis operações: NOT, AND, OR, NAND, NOR e XOR. Portanto, em princípio, não há de ser algo demasiadamente complicado.
E o que isto tem a ver com os transistores?
Tudo.
Pois, combinando transistores em circuitos digitais, pode-se criar dispositivos capazes de emular cada uma das operações lógicas acima descritas. Circuitos que, por sua vez, podem ser combinados para emular qualquer expressão da lógica digital. Isto quer dizer que apenas usando transistores torna-se possível fabricar circuitos que replicam, na prática, estas expressões. Ou seja: pode-se construir circuitos elétricos capazes de tomar decisões, o que constitui a base da eletrônica digital.
É claro que, para isto, vamos precisar de uma ferramenta poderosa capaz de “resolver” as expressões da lógica digital. Da mesma forma que usamos as leis da aritmética para resolver problemas numéricos e as leis da álgebra matemática para resolver as expressões algébricas, precisamos de algo análogo à aritmética ou à álgebra matemática para resolver as expressões da lógica digital.
Que ferramenta é esta e a curiosa história de como ela foi concebida veremos na próxima coluna.
Até lá
B. Piropo
Terminei a coluna anterior prometendo explicar de forma simples como usar a Lógica Digital no processo de tomada de decisões. Então vamos a ela.
Com vimos na coluna “Transistores para principiantes”, a lógica digital é um ramo da lógica matemática cujas variáveis podem assumir apenas os valores “VERDADEIRO” e “FALSO” que, por sua vez, podem ser usados para representar respectivamente os algarismos “um” e “zero”, empregados nas operações internas dos computadores.
Ora, computadores são máquinas de tomar decisões. Por menos que isto seja evidente, por mais que computadores pareçam máquinas maravilhosas capazes de fazer coisas incríveis (e, de fato, o são), acredite: tudo isto não passa do resultado de sucessivas tomadas de decisões baseadas em condições impostas pelo programa que está sendo executado. Esta é a base do processamento de dados. Pois, do ponto de vista da lógica (o que exclui as decisões no campo amoroso), decisões são tomadas com base na aplicação de condições. Desde a mais simples até a mais complexa, cada decisão é tomada após sopesar uma ou mais condições.
Se você pretende sair e deve decidir se veste ou não um agasalho, basta avaliar a condição “está frio lá fora”. Se for verdadeira, convém vestir o casaco, se falsa pode dispensar o agasalho. E para que um médico decida se deve ou não submeter seu paciente a uma cirurgia arriscada, será preciso sopesar uma complexa trama de condições que levem em conta as condições de saúde do paciente, os riscos inerentes à intervenção cirúrgica e uma série de outras condições igualmente importantes. Mas, em qualquer caso, decisões são baseadas em condições.
A lógica digital se baseia em operações lógicas. Cada uma delas decide se algo é VERDADEIRO ou FALSO (os únicos dois valores possíveis) baseado no fato de que uma ou mais condições são, por sua vez, VERDADEIRAS ou FALSAS. Vejamos alguns exemplos.
Uma situação possível: você pretende ir à praia. A decisão a ser tomada, então, é se a afirmação “vou à praia” será verdadeira ou falsa. Sabe-se que não é conveniente ir à praia com chuva. A condição, então, é estar ou não chovendo. Para tomar a decisão será preciso investigar a condição verificando se a afirmação “Está chovendo” é verdadeira ou falsa. E como você somente irá à praia se NÃO estiver chovendo, a condição será tomada baseada na aplicação da operação NOT (que inverte o valor verdadeiro ou falso da resposta).
Vejamos como isto funciona na prática. Para tomar a decisão deve-se gerar uma equação lógica e resolvê-la. O que, embora não pareça, é uma coisa muito simples.
Toda equação tem dois termos que, para que a equação seja válida, devem ser iguais. Na aplicação da lógica digital ao nosso caso, o primeiro termo é a decisão a ser tomada (vou à praia). O segundo é uma expressão lógica que represente a condição (no nosso caso, a simples aplicação da operação NOT ao fato de estar chovendo). Para gerar a equação basta igualar ambos os termos:
(vou à praia) = [NOT (está chovendo)]
Sua resolução é igualmente simples, já que o resultado tem que ser uma variável lógica cujo valor somente pode ser VERDADEIRO ou FALSO. Então vamos resolvê-la começando pelo segundo termo, como convém.
A solução deve levar em conta que o valor da condição (está chovendo) pode ser VERDADEIRO ou FALSO e que a operação lógica NOT inverte este valor.
Suponha que não esteja chovendo. Então:
(está chovendo) = (FALSO)
Portanto:
[NOT (está chovendo)] = [NOT (FALSO)] = VERDADEIRO
O que significa que o segundo termo da equação é VERDADEIRO. Substituindo este valor na equação e levando em conta a igualdade, teremos:
(vou à praia) = VERDADEIRO
E, assim, a tomada de decisão usando a lógica digital concluiu que você vai à praia. Então, quando regressar, use um pouco de seu tempo para recalcular a equação acima quando não chove, ou seja, no caso de:
[(está chovendo) = VERDADEIRO]
Mas nem tudo é assim tão simples de decidir. Diferentemente da simples aplicação da operação NOT, cujo resultado depende apenas do valor de uma única condição, há decisões mais intrincadas que dependem da combinação dos valores de duas ou mais condições. Por exemplo: suponhamos que a decisão a ser tomada seja ir ou não ao cinema e imaginemos que, para que você decida ir, é necessário estar de folga no trabalho. Mas note que atender a esta condição é necessário porém não suficiente, pois também é preciso ter dinheiro para o ingresso. Portanto há que combinar as duas condições: você irá ao cinema se estiver de folga E (AND) tiver a grana da entrada.
A operação lógica a ser empregada neste caso para combinar as duas condições é AND. Portanto a expressão que formará o segundo termo da equação lógica, será:
[(estou de folga) AND (tenho dinheiro)]
O primeiro termo é sempre a decisão a ser tomada. Logo, a equação lógica cuja solução decidirá se você irá ou não ao cinema será:
(vou ao cinema) = [(estou de folga) AND (tenho dinheiro)]
Para obter os resultados possíveis da operação AND vamos aplicar a ela as leis da lógica digital usando todas as combinações possíveis dos valores VERDADEIRO e FALSO (não vai dar muito trabalho, são apenas quatro). Aqui estão:
[FALSO] AND [FALSO] = FALSO
[FALSO] AND [VERDADEIRO] = FALSO
[VERDADEIRO] AND [FALSO] = FALSO
[VERDADEIRO] AND [VERDADEIRO] = [VERDADEIRO]
Como se vê, o segundo termo da equação somente resulta VERDADEIRO quando ocorrer a última das combinações acima, ou seja, quando ambas as condições também o forem. E como ele deve ser igual ao primeiro, você somente irá ao cinema se estiver de folga E (AND) tiver dinheiro para a entrada.
Como se vê, mesmo com duas condições, a solução da equação lógica foi simples.
Finalmente, a terceira e última das operações básicas da lógica digital, que também deve ser aplicada a duas (ou mais) condições, é a operação OR cujo resultado é VERDADEIRO se apenas uma das condições for VERDADEIRA. Um exemplo: você está morrendo de preguiça e somente decidirá sair de casa se a dita casa pegar fogo ou se a Mariana Ximenes tocar a campainha lhe convidando para sair (as gentis leitoras, por obséquio, escolham um personagem que inspire igual vontade de sair caso toque a campainha; afinal é apenas um exemplo fictício). Então você sairá de casa em caso de incêndio OU convite da Mariana.
A equação da lógica digital que levará à tomada de decisão de sair de casa será então:
(saio de casa) = (incêndio) OR (convite da Mariana Ximenes)
Se você aplicar o mesmo raciocínio usado acima para combinar os valores VERDADEIRO e FALSO em torno da operação OR, verá que basta que qualquer um deles assuma o valor VERDADEIRO para que o resultado assuma o mesmo valor VERDADEIRO. E resolvendo a equação (ou seja: aplicando ao segundo termo da equação acima os resultados assim obtidos) verá que para que você saia de casa basta que uma das condições seja verdadeira (espero que a última, embora considere mais provável a primeira).
Da mesma forma que na aritmética, combinar as duas operações fundamentais (adição e subtração) resulta na obtenção das demais (a multiplicação é uma combinação de somas sucessivas, a divisão de subtrações, a potenciação de multiplicações e a radiciação de divisões), na lógica digital obtém-se as operações derivadas NAND, NOR e XOR combinando-se as três operações fundamentais NOT, AND e OR (quer ver como? Consulte a coluna “Lógica digital e Álgebra Booleana” já citada acima).
E a lógica digital admite apenas estas seis operações: NOT, AND, OR, NAND, NOR e XOR. Portanto, em princípio, não há de ser algo demasiadamente complicado.
E o que isto tem a ver com os transistores?
Tudo.
Pois, combinando transistores em circuitos digitais, pode-se criar dispositivos capazes de emular cada uma das operações lógicas acima descritas. Circuitos que, por sua vez, podem ser combinados para emular qualquer expressão da lógica digital. Isto quer dizer que apenas usando transistores torna-se possível fabricar circuitos que replicam, na prática, estas expressões. Ou seja: pode-se construir circuitos elétricos capazes de tomar decisões, o que constitui a base da eletrônica digital.
É claro que, para isto, vamos precisar de uma ferramenta poderosa capaz de “resolver” as expressões da lógica digital. Da mesma forma que usamos as leis da aritmética para resolver problemas numéricos e as leis da álgebra matemática para resolver as expressões algébricas, precisamos de algo análogo à aritmética ou à álgebra matemática para resolver as expressões da lógica digital.
Que ferramenta é esta e a curiosa história de como ela foi concebida veremos na próxima coluna.
Até lá
B. Piropo