LOGICA INDICE DEL CONTENIDO PÁGINAS 4. Introducción 5 5. Marco Teórico 5.1 Capitulo 1 Lógica Cuantificacional 6−18 5.2 Capitulo 2 Lógica de Conmutación 19−34 5.3 Capitulo 3 Lógica de Puertas 35−43 6. Conclusión 44 7. Bibliografía 45 INTRODUCCION: Lógica (del griego, logos, 'palabra', 'proposición', 'razón'), es una disciplina y rama de la filosofía que estudia los principios formales del conocimiento humano. Su principal análisis se centra en la validez de los razonamientos y argumentos, por lo que se esfuerza por determinar las condiciones que justifican que el individuo, a partir de proposiciones dadas, llamadas premisas, alcance una conclusión derivada de aquéllas. La validez lógica depende de la adecuada relación entre las premisas y la conclusión, de tal forma que si las premisas son verdaderas la conclusión también lo será. Por ello, la lógica se encarga de analizar la estructura y el valor de verdad de las proposiciones, y su clasificación. La validez de una proposición se tomará de la veracidad de la conclusión. Si una de las premisas, o más, es falsa, la conclusión de una proposición válida será falsa. Por ejemplo: Todos los mamíferos son animales de cuatro patas, todos los hombres son mamíferos, por lo tanto, todos los hombres son animales de cuatro patas es una proposición válida que conduce a una conclusión falsa. Por otro lado, una proposición nula puede, por casualidad, llegar a una conclusión verdadera: Algunos animales tienen dos patas; todos los hombres son animales, por lo tanto todos los hombres tienen dos patas representa una conclusión verdadera, pero la proposición no lo es. Por lo tanto, la validez lógica depende de la forma que adopta la argumentación, no su contenido. Si la argumentación fuera válida, cualquier otro término podría sustituir a cualquiera de los casos utilizados y la validez no se vería afectada. Al sustituir cuatro patas por dos patas se comprueba que ambas premisas pueden ser verdaderas y la conclusión falsa. Por lo tanto, la proposición no es correcta aunque posea una conclusión verdadera. El referente tema es principalmente una tema mucho mas avanzado y también para alimentar el conocimiento y la complejidad de la lógica en el presente se encuentran tres temas fundamentales: El primero la lógica cuantificacional, que es parte de la lógica simbólica, La lógica de conmutación que es perteneciente a la lógica electrónica y por ultimo la lógica de puertas perteneciente netamente a la Informática. MARCO TEORICO. CAPITULO 1 LÓGICA CUANTIFICACIONAL 1 • Razonamientos con proposiciones simples Anteriormente hemos utilizado razonamientos formados por proposiciones compuestas y hemos estudiado diversos métodos para demostrar su validez. Hay otro tipo de razonamientos formados por proposiciones simples: Todos los hombres son mortales Sócrates es hombre Luego Sócrates es mortal Este silogismo clasico es válido, porque la conclusión es una consecuencia lógica de las premisas, donde el termino medio: hombre, se ha relacionado con el termino menor: Sócrates y con el término mayor: mortales. Este razonamiento en la lógica proposicional no es válido, porque si lo simbolizamos y aplicamos, por ejemplo, el método de la implicación tautológica, el cual consiste en conjuncionar las premisas e implicarlas con la conclusión, para luego aplicar las tablas de verdad, veremos que es una proposición contingente, luego el razonamiento sería inválido. Tampoco se pueden aplicar otros métodos demostrativos. No existe ninguna regla en la lógica proposicional que justifique la deducción de la conclusión. La validez de este tipo de razonamiento depende de ña estructura interna de las proposiciones simples que la componen. La lógica cuantificacional estudia la composición íntima de las proposiciones, utiliza nuevos símbolos, leyes y métodos para establecer la validez de los razonamientos. En el anterior ejemplo, la primera proposición es general, el sujeto se refiere a un conjunto de individuos. Esta proposición lleva antepuesto el termino: todos, llamado cuantificador. La segunda proposición es singular, el sujeto se refiere a un solo individuo y la propiedad atribuida conviene a dicho individuo. • Proposiciones singulares La proposición singular se compone de: argumento y predicado. Argumento.− Es el nombre propio o frase que designa objetos individuales: Dinka es estudiosa Juan escribe Este libro es bueno Cuatro es mayor que tres María es menor que Guillermo Predicado.− Es la parte de la proposición que expresa propiedades o relaciones entre términos. El predicado está formado por el verbo con sin complementos: Sócrates es mortal 2 Luís canta Carlos está alegre La Luna es un satélite Cinco es mayor que uno • Simbolización de las proposiciones singulares Los argumentos se simbolizan mediante las letras minúsculas: a, b, c, d Se llaman constantes de individuo. Los predicados se simbolizan mediante las letras mayúculas: A, B, C, F, G, H, Se llaman letras de predicado. Para simbolizar proposiciones singulares, primero se escribe la letra de predicado y luego la constante individual: Juan estudia Ej jE Luis canta Cl lC Marte es un planeta Pm mP Las proposiciones singulares pueden ser negadas y se simbolizan anteponiendo la negación a la fórmula: Daniel no tragaja − Td Kant no es matemático − Mk Las proposiciones que tienen un predicado y dos o más argumentos se simbolizan escribiendo, primero la letra del predicado, seguida de las constantes individuales en el orden en que se presentan: Ramiro ama a Carmen Arc rAc Jorge viaja con Robeto Vjr jVr El novio era mayor que Rosa Mnr Aristóteles nació en Estagira Nae Estas proposiciones pueden ser negadas y se simbolizan anteponiendo la negación a la fórmula: 3 La Tierra no ilumina al Sol − Its Ramiro no ama a Carmen − Arc Las proposiciones singulares pueden formar proposiciones compuestas, en este caso se simbolizan mediante conectivos lógicos: Juan lee y Pedro escribe Lj Ep jLpE Eistein fue matematico o Kant fue filósofo Me v Fk emKf Si Jorge canta entonces Lizy baila Cj ! Bl Si Carlos es primero, entonces Gabriel es segundo y Daniel es tercero Pc! Sg Td Patricia es alegre y Jovial Ap Jp Lorena canta y baila Cl Bl Para argumentos y predicados diferentes se usan letras diferentes, para los mismos argumentos las mismas letras y para los mismos predicados las mismas letras: Juan estudia y Carlos trabaja Ej Tc María estudia y trabaja Em Rm Carmen y Hugo son músicos Mc Mh • Funciones proposicionales Sean las proposiciones singulares: Sócrates es filósofo Fs Liszt es músico Ml Si sustituimos los nombres propios y las constantes de individuos por la variable individual x, tendremos las siguientes expresiones: x es filósofo Fx x es músico Mx Estas expresiones no son proposiciones, ya que no son cerdaderas ni falsas, por estar indeterminado el argumento o individuo del cual se predica, son funciones proposicionales. 4 Las funciones proposicionales son formas que tiene una o más variables libres. Las funciones proposicionales se convierten en proposiciones, sustituyendo la variable por nombres propios o por constantes de individuo: x es filósofo Fx se convierte en: Sócrates es filósofo Fs x no es matemático (f. prop.) se convierte en: Kant no es matemático (prop.) Su simbolización: − Mx (f. prop.) − Mk (prop.) x viajo a y (f. prop.) Lizy viajó a París (prop.) Su simbolización: Vxy (f. prop.) Vlp (prop.) X nació es China (f. prop.) se convierte en: Mao nació en China (prop.) Su simbolizacion Chx (f. prop.) Chm (prop.) x toca el piano y z canta (f. prop.) se convierte en: Jorge toca el piano y Robert canta (prop.) Su simbolización: Tx Cz (f. prop.) Tj ^ Cr (prop.) Ax By función proposicional Ab Bc función proposicional Cx v Ha función proposicional Cd v Ha función proposicional Fx ! Gz función proposicional Fa ! Gb función proposicional Fx Gy ! Hz función proposicional 5 Fa Gb ! Hc función proposicional • Cuantificación Otra forma de convertir las funciones proposicionales en proposiciones es mediante la cuantificación, especificando cuantitativamente el dominio de la variable. Si decimos: x es filósofo Tenemos una función proposicional que no es verdadera ni falsa, pero si le anteponemos el cuantificador: para todo x Para todo x, x es filósofo Tendremos una proposición falsa, equivale a decir: Todos los individuos son filósofos. Si le anteponemos el cuantificador: para algún x Para algún x, x es filósofo Tendremos una proposición verdadera, equivale a decir: Algún individuo es filósofo La frase para todo x recibe el nombre de cuantificador universal, la predicación abarca a todos los individuos. Su símbolo es: (x) o (vx) La frase para algún x recibe el nombre de cuantificador existencial, la predicación abarca por lo menos a un individuo. Su símbolo es: ( x) La simbolización cuantificacional de las anteriores proposiciones será: Todos son filósofos = (x) Fx Algunos son filósofos = ( x) Fx • Alcance del cuantificador x es mutable x es variable libre, porque no aparece en ningún cuantificador. 6 (x) x es mutable x es variable ligada, porque aparece en el cuantificador (x). En la formula (x) (Ax ! Ex) El cuantificador (x) abarca a toda la formula es decir, a la dos x restantes. Esta fórmula cuantificacional se llama cerrada y todas las variables x se llaman ligadas y están encerradas entre paréntesis. En la formula: (x) Fx Gx El cuantificador (x) abarca solamente a una parte de la fórmula, a Fx, esta x es ligada y siguiente x es libre. Esta fórmula cuantificacional se llama abierta, porque hay por lo menos una variable que no se halla dentro del alcance del cuantificador x. Las variables que no se hallan dentro del alcance del cuantificador se llaman libres. Si el cuantificador no esta delante de una formula con paréntesis, el alcance del mismo llega hasta la primera variable de la misma letra; pero si el cuantificador está delante de una fórmula encerrada entre paréntesis, su alñcance llega a todas las variables de la misma letra. Las constantes de individuo se consideran ligadas. Las fórmulas cerradas constituyen proposiciones y las abiertas, funciones proposicionales. Ejemplos: • Leyes de intercambio de cuantificadores (x) Fx " −( x) −Fx ( x) Fx " −(x) −Fx −(x) Fx " ( x) −Fx −( x) Fx (x) − Fx Establecen equivalencia entre cuantificadores universales y parciales Ejemplos: Todo es mutable " No es cierto que algo sea mutable Algo es bueno " No es cierto que nada sea bueno No es cierto que todo sea malo " Algo no es malo 7 No es cierto que algo sea eterno " Nada es enterno • Leyes de oposición aristotélica (x) (Fx ! Gx) " −( x) (Fx −Gx) (x) (Fx ! −Gx) " −( x) (Fx Gx) ( x) (Fx Gx) " −(x) (Fx ! −Gx) ( x) (Fx −Gx) " −(x) (Fx ! Gx) Un cuantificador es equivalente a la negación de su contradictorio. Ejemplos: Todos los cuerpos son pesados " No es cierto que algunos cuerpos no sean pesados Ningún cuerpo es pesado " No es cierto que algunos cuerpos sean pesados Algunos cuerpos son pesados " no es cierto que ningún cuerpo sea pesado Algunos cuerpos no son pesados " No es cierto que todos los cuerpos sean pesados • Leyes del silogismo categórico Existen diecinueve modos válidos, distribuidos en cuatro figuras, cada figura tiene su propia ley o fórmula cuantificacional. Citaremos dos modos de cada figura. Primera figura: MP + SM = SP Barbara: Ma P + Sa M = Sa P (x) (Gx ! Hx)..(x) (Fx ! Gx). !.(x) (Fx ! Hx) A Todos los hombres son falibles A Todos los gobernantes son hombres A Luego todos los gobernantes son falibles Celarent: Me P + Sa M = Se P (x) (Gx ! −Hx) (x) (Fx ! Gx). !.(x) (Fx ! −Hx) E Ningún pez es mamífero A Todos los salmones son peces 8 E Luego ningún salmón es mamífero Segunda figura: PM + SM = SP Cesare: Me P + Sa M = Se P (x) (Hx ! −Gx) (x) (Fx ! Gx). !.(x) (Fx ! −Hx) E Ningún molusco es vertebrado A Todos los peces son vertebrados E Luego ningún pez es molusco Festino: Pe M + Si M = So P (x) (Hx ! −Gx) ( x) (Fx ! Gx). !.( x) (Fx −Hx) E Ningún italiano es español I Algunos europeos son españoles E Luego algunos europeos no son italianos Tercera figura: MP + MS = SP Datisi: Pa M + Si M = Si P (x) (Gx ! Hx) ( x) (Gx ! Fx). !.( x) (Fx Hx) A Todos los rumiantes son mamíferos I Algunos rumiantes son animales domésticos I Luego algunos animales domésticos son mamíferos Ferison: Me P + Mi S = So P (x) (Gx ! −Hx) ( x) (Gx ! Fx). !.( x) (Fx −Hx) E Ningún chino es japonés I Algunos chinos son asiáticos O Luego algunos asiáticos no son japoneses 9 Cuarta figura: PM + MS = SP Cameles: Pa M + MeS = Se P (x) (Hx ! Gx) (x) (Gx ! −Fx). !.(x) (Fx −Hx) A Todos los caballos son solípedos E Ningún solípedo es carnívoro E Luego ningún carnívoro es caballo Dimatis: Pi M + MaS = Si P ( x) (Hx Gx) (x) (Gx ! Fx). !.( x) (Fx Hx) I Algunos católicos son sacerdotes A Todos los sacerdotes son religiosos I Luego algunos religiosos son católicos Los modos Darapti y Felapton de la tercera figura, Fesapo y Bamalip de la cuarta figura se desarrollan, agregándoles una cláusula existencial al antecedente del silogismo, veamos algunos ejemplos: Darapti: Ma P + Ma S = Si P (x) (Gx ! Hx) (x) (Gx ! Fx)..( x) Gx: ! :( x) (Fx Hx) A Todos los hombres son racionales A Todos los hombres son mortales Hay hombres I Luego algunos mortales son racionales Felapton: Me P + Ma S = So P (x) (Gx ! −Hx) (x) (Gx ! Fx)..( x) Gx: ! :( x) (Fx −Hx) E Ningún boliviano es asiático A Todos los bolivianos son americanos Hay bolivianos 10 O Luego algunos americanos no son asiáticos Fesapo: Pe M + MaS = So P (x) (Hx ! −Gx) (x) (Gx ! Fx)..( x) Gx: ! :( x) (Fx Hx) E Ningún argentino es español A Todos los españoles son europeos Hay españoles O Luego algunos europeos no son argentinos • Ley de especificación (x) Fx ! Fy Si un predicado es verdadero de todo, lo es también de un elemento dado. Esta ley permite obtener proposiciones singulares de proposiciones universales: Si todo es mutable, entonces la Tierra es mutable Si todos son mortales, entonces Sócrates es mortal • Ley de particularización Fy ! ( x) Fx Si un predicado es verdadero de un elemento dado, entonces es verdadero de algo. Esta ley permite obtener proposiciones particulares de proposiciones singulares: Si Sócrates es filósofo, entonces alguien es filósofo Si Carlos es artista, entonces algunos son artistas • Leyes de distribución de cuantificadores (x) (Fx Gx) " (x) Fx (x) Gx ( x) (Fx v Gx) " ( x) Fx v ( x) Gx El cuantificador universal es distribuido con respecto a la conjunción y el cuantificador existencial es distributivo con respecto a la disyunción. Todo es grandioso y admirable " Todo es grandioso y todo es admirable 11 Algo es bueno o malo " Algo es bueno o algo es malo La primera ley indica que todos los individuos del universo tienen dos propiedades, si y sólo si, todos tienen la primera y todos tienen la segunda. La segunda ley indica que existe al menos un individuo que tiene una propiedad u otra, si y sólo si, alguno tiene la primera propiedad o alguno tiene la segunda. (x) (Fx v Gx) ! (x) Fx v (x) Gx ( x) (Fx Gx) ! ( x) Fx ( x) Gx El cuantificador universal no es distributivo con respecto a la disyunción y el cuantificador existencial no es distributivo con respecto a la conjunción, pero se cumplen las respectivas implicaciones. Si todo, es eterno o todo es perecedero, entonces todo es eterno o perecedero Si algo es inmortal y eterno, entonces algo es inmortal y algo es eterno Si todos los individuos tienen una propiedad o todos tienen otra propiedad, entonces todos tienen una u otra propiedad, expresa la tercera ley. La cuarta ley expresa, que si algún individuo tiene a la vez dos propiedades, entonces algún individuo tiene la primera propiedad y alguno, la segunda propiedad. Capitulo 2 LÓGICA DE CONMUTACIÓN En electricidad y electrónica, las leyes del álgebra de Boole y de la lógica binaria, pueden estudiarse mediante la lógica de conmutación. Un circuito de conmutación estará compuesto por una serie de contactos que representarán las variables lógicas de entrada y una o varias cargas que representarán las variables lógicas o funciones de salida. Los contactos pueden ser normalmente abiertos (NA) o normalmente cerrados (NC). Los primeros permanecerán abiertos mientras no se actúe sobre ellos (por ejemplo al pulsar sobre interruptor, saturar un transistor, etc.). Los contactos NC funcionarán justamente al contrario. Esto significa que si se actúa sobre un contacto NA se cerrará y si se hace sobre uno NC se abrirá. Dominio Lógico El funcionamiento del computador se basa en el dominio de las señales que se describieron en el ejemplo anterior, pero también un computador es mucho más complejo que aquellas señales, el sólo hecho de mirar la pantalla y ver la metáfora del mundo que aquella representa, hace surgir preguntas tales: ¿cómo funciona esto? O sí algo ya se sabe ¿cómo de un dominio tan pequeño, el de las señales, es posible obtener otro tan complejo como lo que se observa en la pantalla? Para responder aquellas preguntas se debe partir desde el mismo dominio simple de los dos estado originales, el cual es posible representar por un conjunto de símbolos como { 0, 1 } o { V, F }, símbolos que describen a { −1.5 volts, +4.0 volts } respectivamente. 12 Pero se está frente a la misma situación anterior, sólo se ha cambiado la forma, pero ese conjunto de símbolos no tiene ninguna potencialidad, de ninguna forma es posible construir algo con aquellos símbolos. Existe, en las matemáticas, un álgebra llamada Algebra de Boole. Fue desarrollada originalmente por George Boole, alrededor de 1850. La importancia de esta álgebra deriva de los trabajos de Claude Shannon en 1937, quién la utiliza para describir los circuitos digitales. Un álgebra es posible definirla, muy simplificadamente, como un dominio en que además de un conjunto de elementos existe un conjunto de operadores u operaciones que permiten operar con aquellos elementos, generando elementos del propio dominio o de otros. Así, el Algebra de Boole se describe como el siguiente dominio = ( { 0, 1 }, { And, Or, Not } ), donde el conjunto { And, Or, Not } corresponde al conjunto de operadores. Los símbolos con qué se representan estas operaciones son propios de esta visión simplificada del álgebra, ya que en el original son { ^, v, ~ } o desde el punto de vista del diseño de circuitos en ingeniería los símbolos que se utilizan son { ·, +, − }. Otra propiedad de un Algebra es la utilización de variables que permiten representar, en general, cualquiera de los elementos del conjunto. Esta característica permite definir nuevas operaciones a partir de las originales o primitivas del álgebra. Así, una variable X definida sobre le Algebra de Boole puede tomar valores { 0, 1 }, por ejemplo X = 1, o X = 0. Para que sea más simple de entender se recomienda considerar 0 = falso y 1 = verdadero. Operaciones Básicas And. La operación And requiere que todas las señales sean simultáneamente verdaderas para que la salida sea verdadera. Así, el circuito de la figura necesita que ambos interruptores estén cerrados para que la luz encienda. Figura No. 5. Operación And. 13 Los estados posibles del circuito se pueden modelar en la Tabla de Verdad que tiene asociada. Sabemos que los interruptores sólo pueden tener dos estados, abiertos o cerrados, si el interruptor abierto se representa mediante el cero (0 o falso) y el cerrado mediante el valor uno (1 o verdadero) entonces en la tabla de verdad asociada se puede ver la situación que se describía en el párrafo anterior, cuando se decía que la luz sólo prende cuando ambos interruptores están cerrados, es decir, si A = 1 y B = 1 entonces L = 1. La compuerta lógica es una forma de representar la operación And pero en el ámbito de los circuitos electrónicos, para ese caso A y B son las señales de entrada (con valores = 0 1) y L es la señal de salida. Para efectos de este curso, la operación And la representaremos como la función And( A, B ), donde A y B serían los parámetros de entrada (los mismos valores de A y B en el circuito) y L = And( A, B ), correspondería a la forma de asignación de valor a L. En este caso el parámetro de salida es la misma función And. Or. La operación Or tiene similares características a la operación And, con la diferencia que basta que una señal sea verdadera para que la señal resultante sea verdadera. En la figura se puede ver tal situación. Figura No. 6. Operación Or. Note que en el circuito los interruptores están en paralelo, por lo cual basta que uno de ellos esté cerrado para que el circuito se cierre y encienda la luz. La operación Or también tiene una representación funcional como Or( A, B ) donde A y B serían los parámetros de entrada (los mismos valores de A y B en el circuito) y L = Or( A, B ), correspondería a la forma de asignación de valor a L. En este caso, el parámetro de salida es la misma función Or. 14 Not: La última de la tres operaciones fundamentales, la cual también se conoce como negación, complemento o inversión, es mucho más simple que las anteriores. En la figura se puede observar el circuito, que en este caso tiene la particularidad de que al estar el interruptor abierto la luz enciende, cuando él está en posición de cerrado la luz permanecería apagada. Figura No. 7. Operación Not. La notación funcional para esta operación será Not( A ), donde A corresponde a la señal de entrada y Not( A ) corresponde al valor complementario de A. Con las operaciones básicas ya definidas es posible redefinir el Algebra de una manera más formal, por ejemplo, dándole el nombre de Dominio Lógico y caracterizandolo de la siguiente manera: Dominio Lógico ( l ð Dominio Lógico ) = ( { 0, 1 }, { l: And( l, l ), l:Or( l, l ), l:Not( l ) } ) Note que cada una de las operaciones o funciones de este dominio se ha explicitado claramente la cantidad y el tipo de parámetros con los cuales ellas operan (operandos) y el tipo de valor que la operación devuelve, en este caso todos los parámetros son del tipo lógico ( l ). Así, cuando se habla del dominio del computador al resolver un problema, este dominio tiene como base el dominio recién descrito. Los circuitos electrónicos que dan vida al computador pueden ser representados todos mediante este Dominio Lógico. Operaciones compuestas El conjunto de las operaciones del dominio básico se puede extender mediante un mecanismo de composición 15 de operaciones, por ejemplo, se quiere agregar la operación XOR, que corresponde a un OR Exclusivo mediante el cual: si ambas entradas son iguales el resultado es cero (0 o falso) y si ambas son distintas, entonces el resultado es uno (1 o verdadero). Graficamente se puede ver la implementación de la compuesta XOR en la figura No. 8. Figura No. 8. Implementación de la Compuesta XOR. Es claro, en la figura, la forma de composición de la operación XOR a partir de las operaciones básicas and, or y not en el formalismo gráfico de las compuertas lógicas. También es posible usar el formalismo funcional, que se consideró en la definición el Domino Lógico, para componer la operación XOr: Or( And( Not( A ), B ), And( A, Not( B ))); donde A, B ð Dominio Lógico De hecho, si se quiere extender el conjunto de las operaciones del Dominio Lógico sería necesario expresar, la operación XOr, en el mismo formato que las operaciones primitivas; sin ser muy rigurosos bastaría con una asignación para que con ello se tenga una forma de definir nuevas operaciones en base a las ya existentes: XOr( A, B ) ð Or( And( Not( A ), B ), And( A, Not( B ))) ; donde A, B, XOr ð Dominio Lógico El símbolo ð permitiría trasladar toda la funcionalidad de la expresión a la nueva operación, incluidos los parámetros de entrada y salida (A, B como parámetros de entrada y el nombre de la operación XOr como parámetro de salida). Con la operación XOr ya definida es posible, entonces, ampliar la definición del Dominio Lógico: Dominio Lógico ( l ð Dominio Lógico ) = ( { 0, 1 }, { l: And( l, l ), l:Or( l, l ), l:Not( l ) l:XOr( l, l ), } ) Por lo cual XOr podría ser utilizado para componer nuevas operaciones de este mismo dominio o, eventualmente, de otros. Construcción de nuevos dominios Pese a que se ha formalizado un dominio básico y, además, se ha creado nuevas operaciones dentro de ese dominio, aún no se cumple el objetivo de poder aproximar el mundo de señales del computador a nivel de 16 complejidad actual observado. En los puntos anteriores se revisó la forma de representación de los números enteros, la cual se basaba en una memoria organizada en palabras de 8 bits. Es decir, si se considera que cada una de las señales básicas puede ser utilizada para componer un bit, entonces sería necesario 8 señales para poder componer un número, donde cada una de estas señales podría tomar los dos estados posibles y, dependiendo de la posición en que ella esté −recuerden lo hablado sobre sistemas numéricos posicionales− tendría más o menos incidencia en el valor del número a representar, por ejemplo, el siguiente número binario, representa al 165 decimal −según la transformación estudiada: xb = 10100101 X10 = V(xb) = 1× 27+0× 26+1× 25+0× 24+0× 23+1× 22+0× 21+1× 20 = 165 Con esta forma de representación es posible entonces sintetizar un conjunto de números enteros a partir de las señales originales, combinándolas. En este caso el conjunto de enteros puede ser uno que vaya desde 0 a 255, pero si se amplia el número de señales paralelas consideradas, este espectro se puede aumentar o, considerando el signo, se pueden incluir números negativos. Así, para crear el conjunto de los números enteros a partir del conjunto de las señales se debe organizar éstas en cadenas paralelas −la forma usual de los buses dentro del computador− donde la posición de cada una tiene un peso específico en la síntesis del número que se está representando. En la notación que se está propugnando, un conjunto de estas cadenas puede ser visto de la siguiente forma: Dominio Enteros Binarios ( nb Î Dominio Enteros Binarios) = ( { Ln...L7L6L5L4L3L2L1L0 / Li Î Dominio Lógico} ) Ahora, si bien existe una representación factible de números enteros a partir de las señales primitivas, un dominio de los enteros (que en este caso se ha denominado enteros binarios por no estar expresados en base decimal) no está completo si es que no existen operaciones que permitan manejarlos, por lo cual es necesario componer tales operaciones a partir de del dominio lógico o de las mismas operaciones ya desarrolladas para este dominio. Suma en los enteros binarios La suma de dos números binarios se realiza de la misma manera que la suma en los números decimales. Por ejemplo, la siguiente es una suma decimal: 3 7 6 los números en negrillas corresponden a los dígitos menos significativos +461 831 Los dígitos en las posiciones menos significativos son operados primero, produciendo la suma 7. Luego, los dígitos en la segunda posición son sumados para dar el resultado 13, que produce un acarreo de 1 hacia la tercera posición, lo que produce la suma 8. Los mismos pasos generales son seguidos en la suma binaria. Sin embargo, aquí sólo hay que considerar cuatro casos al sumar dos dígitos binarios: 0+0=0 1+0=1 1 + 1 = 0 + acarreo de 1 (uno) a la siguiente posición 1 + 1 + 1 = 1 + acarreo de 1 (uno) a la siguiente posición 17 El último caso ocurre cuando dos bit de una cierta posición tienen 1 (uno) y además hay un acarreo desde la posición previa. Los siguientes son varios ejemplos de sumas de dos números binarios: 011 (3) +110 (6) 1001 (9) 1001 (9) +1111 (15) 11000 (24) 11,011 (3,375) +10,110 (2,750) 110,001 (6.125) No es necesario considerar la suma de más de dos números binarios al mismo tiempo, ya que todos los sistemas de circuitos digitales que actualmente ejecutan la suma sólo pueden manejar dos números a la vez. La suma es una de las operaciones aritméticas más importantes en los sistemas digitales, de hecho, las operaciones de resta, multiplicación y división pueden ser definidas en base a la suma. Si se quiere entonces sumar dos números enteros binarios en un computador, es necesario para ello que exista la operación suma de enteros binarios. De manera análoga a como se definió la operación XOr, es posible definir ahora una operación de suma. La unidad aritmética Todas las operaciones aritméticas se realizan en la unidad aritmética, también conocida como unidad aritmético−lógica −ver punto 1.2 de este apunte−, de un computador. La Figura No. 9 es un diagrama de bloques que describe los principales elementos incluidos en una unidad aritmética típica. El principal propósito de una unidad aritmética es aceptar datos binarios que están almacenados en memoria y ejecutar las operaciones aritméticas sobre aquellos datos de acuerdo a las instrucciones dadas desde la unidad de control. La unidad aritmética tiene al menos dos registros de flip−flops: el registro B y el registro acumulador. Además contiene los circuitos lógicos que permiten ejecutar las operaciones sobre los números binarios almacenados en ambos registros. La típica secuencia de ejecución para una suma (ADD) puede ser la siguiente: 18 Figura No. 9. Unidad Aritmética • La unidad de control recibe una instrucción (desde la unidad de memoria) indicando que un número almacenado en una ubicación particular de memoria (dirección) deberá ser sumado a el número actualmente almacenado en el acumulador. • El número a ser sumado es transferido desde la memoria al registro B. • El número en el registro B y el número en el acumulador son sumados en los circuitos lógicos (comandados desde la unidad de control). La suma resultante en enviada al acumulador para ser almacenada. • Al nuevo número en el acumulador se le puede sumar otro, o si el proceso aritmético en particular ha terminado, el número puede ser transferido a memoria para almacenarlo. Estos pasos demuestran de donde el registro acumulador deriva su nombre. Este registro "acumula" los valores que resultan de ejecutar sucesivas sumas entre nuevos números extraídos desde memoria y el resultado de las sumas anteriores almacenado en el acumulador. Para cualquier problema aritmético que contienen varios pasos, el acumulador siempre contiene el resultado de los pasos intermedios, así como el resultado final cuando la ejecución ha terminado. Un sumador binario en paralelo Los computadores y calculadoras implementan la operación de suma sobre dos números binarios al mismo tiempo, donde cada numero binario puede tener varios dígitos binarios. En la tabla se muestra la suma de dos números binarios de cinco bits. Uno de los operandos es almacenado en el acumulador; esto es, el acumulador contienen cinco Flip−Flops, almacenando, en cada uno, los dígitos 10101. De la misma forma el otro de los operandos, el que será sumado al primero, es almacenado en el registro B (en este caso, 00111). 19 El proceso de suma comienza por la suma de los bit menos significativos de ambos operandos. Así, 1+1 = 10, que significa que la suma para esa posición es 0 y el acarreo es1. 1º Operando, almacenado en el acumulador 2º Operando, almacenado en el Registro B Suma Acarreo (para ser agregado a la siguiente posición) 1 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 Este acarreo (o bit de carry) será sumado a la siguiente posición, junto a los bit correspondientes de los operandos. Así, en la segunda posición 1+0+1 = 10, que corresponde nuevamente a la suma 0 y el carry 1. Este carry será sumado a la siguiente posición junto a los correspondientes bits de los operandos y así sucesivamente hasta las últimas posiciones. A cada paso en el proceso de suma se realiza la adición de tres bits; los dos de los operandos y el de carry que viene de la posición previa. El resultado de la suma de estos 3 bits produce 2 bits: un bit de suma y otro de carry que deberá ser sumado a la siguiente posición. Este mismo proceso es usado para cada posición. Ahora, si se quiere diseñar un circuito lógico que permita implementar este proceso, entonces simplemente se deberá usar el mismo circuito para cada una de las posiciones. Esto se ilustra en la Figura No. 10. En este diagrama las variables Ai representan los bits del operando almacenados en el acumulador (que también puede ser llamado el registro A). Las variables Bi representan los bits del segundo operando almacenados en el registro B. Las variables Ci representan los bits de carry entre las correspondientes posiciones. Las variables Si son los bits de la suma para cada posición. Los circuitos Full−Adder usados en cada posición tienen tres entradas: un bit A, un bit B y un bit C; y producen dos salidas: un bit de suma (S) y un bit de carry (C). Por ejemplo, el Full−Adder No. 0 tienen como entradas A0, B0 y C0, y produce las salidas S0 y C1. Lo anterior se repite para todos los bits de los operandos. Actualmente los computadores usan palabras de 32 y 64 bits, al contrario del de la figura que sólo es un sumador de 5 bits. 20 Figura No. 10. Diagrama de Bloques de un sumador paralelo de 5−bits usando full−adders. El arreglo de la figura No. 10 se llama sumador paralelo (parallel adder) por que todos los bits de los operandos se usan simultáneamente en todos los circuitos. Esto significa que la suma en cada posición ocurre al mismo tiempo. Que es distinto de las sumas que se hacen en papel. Ya que se toma cada posición una a la vez, comenzando desde las posiciones menos significativas. El diseño de un Full−Adder El diseño de un Full−Adder es un típico problema de ingeniería −en este caso de electrónica− y resulta muy interesante y didáctico seguirlo paso a paso, se recomienda para ello consultar el libro "Digital Systems: Principles and Applications" de Ronald J. Tocci en las páginas 146 y 147. Lo primero que se hará es construir una Tabla de Verdad que muestre los valores de entrada y salida para todos los casos (recuerde que sólo se intenta diseñar un Full−Adder). En la siguiente tabla se puede ver aquello, con tres entradas (A, B y Cin) y dos salidas (S y Cout). Existen ocho posibles casos para las tres entradas, y para cada caso se desea la salida listada en los valores de salida. Por ejemplo, considere el caso A = 1, B = 0, y Cin = 1. Un Full−Adder (que abreviaremos FA) puede sumar estos bits para obtener las salidas S = 0 y Cout=1. A 0 0 0 0 B 0 0 1 1 Cin 0 1 0 1 S 0 1 1 0 Cout 0 0 0 1 21 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 Como existen dos salidas, se puede diseñar el circuito por cada salida individualmente, comenzando con la salida de la suma S. Por la tabla de verdad se ve que hay cuatro casos donde S tiene valor 1. Si se compone una expresión para ello, usando el Dominio Lógico, y luego de refinarla, según un método que no es el caso desarrollar acá, se obtienen la siguiente expresión final: S = Xor( A, Xor( B, Cin )) (a) Si se considera ahora la salida Cout, también se puede componer una operación, en el dominio lógico, que permita realizarla: Cout = Or( And( B, Cin ), Or( And( A, Cin ), And( A, B ))) (b) Las expresiones a y b pueden ser implementadas como se muestra en la Figura No. 11, cada Full−Adder de la Figura No. 10 puede ser implementado según el circuito lógico que aparece en esta figura. Para desarrollar este circuito en términos del formato que se ha estado propugnando para los dominios, es necesario ampliar a la capacidad de definición de operaciones. Para ello es necesario que las nuevas operaciones, además de permitir combinaciones directas de las ya definidas, permitan otro tipo de combinaciones con más poder de cómputo. Ese es el objetivo de los lenguajes de Programación, permitir ampliar la capacidad de definición de nuevos dominios y operaciones, de manera que esta ampliación permita ampliar a su vez el espectro de los problemas posibles de abordar mediante el uso de un computador. Figura No. 11. Circuito Completo para Full−Adders. El PseudoLenguaje que se describe en el siguiente punto tiene la cualidad de permitir a quien lo ocupa ampliar su capacidad de resolver problemas mediante el uso de computador. CAPITULO 3 LÓGICA DE PUERTAS Una puerta lógica, o lógica de puerta, es un dispositivo electrónico que es la expresión física de un operador booleano en la lógica de conmutación. Cada puerta lógica consiste en una red de dispositivos interruptores que cumple las condiciones booleanas para el operador particular. Son esencialmente circuitos de conmutación integrados en un chip. Claude Elwood Shannon experimentaba con relés o interruptores electromagnéticos para conseguir las condiciones de cada compuerta lógica, por ejemplo, para la función booleana Y (AND) colocaba interruptores en circuito serie, ya que con uno solo de éstos que tuviera la condición «abierto», la salida de la compuerta Y sería = 0, mientras que para la implementación de una compuerta O (OR), la conexión de los interruptores tiene una configuración en circuito paralelo. La tecnología microelectrónica actual permite la elevada integración de transistores actuando como conmutadores en redes lógicas dentro de un pequeño circuito integrado. El chip de la CPU es una de las máximas expresiones de este avance tecnológico. 1. Lógica directa 22 1.1 Puerta SI o Buffer Símbolo de la función lógica SI a) Contactos, b) Normalizado y c) No normalizado La puerta lógica SI, realiza la función booleana igualdad. En la práctica se suele utilizar como amplificador de corriente (buffer en inglés). La ecuación característica que describe el comportamiento de la puerta SI es: Su tabla de verdad es la siguiente: Tabla de verdad puerta SI Entrada A Salida A 0 0 1 1 1.2 Puerta Y (AND) Símbolo de la función lógica Y a) Contactos, b) Normalizado y c) No normalizado La puerta lógica Y, más conocida por su nombre en inglés AND, realiza la función booleana de producto lógico. Su símbolo es un punto (·), aunque se suele omitir. Así, el producto lógico de las variables A y B se indica como AB, y se lee A y B o simplemente A por B. La ecuación característica que describe el comportamiento de la puerta AND es: Su tabla de verdad es la siguiente: Tabla de verdad puerta AND Entrada A Entrada B 0 0 0 1 1 0 1 1 Salida AB 0 0 0 1 Se puede definir la puerta AND, como aquella compuerta que entrega un 1 lógico sólo si todas las entradas están a nivel alto 1. 23 1.3 Puerta O (OR) Símbolo de la función lógica O a) Contactos, b) Normalizado y c) No normalizado La puerta lógica O, más conocida por su nombre en inglés OR, realiza la operación de suma lógica. La ecuación característica que describe el comportamiento de la puerta OR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta OR Entrada A Entrada B 0 0 0 1 1 0 1 1 Salida A + B 0 1 1 1 Podemos definir la puerta O como aquella que proporciona a su salida un 1 lógico si al menos una de sus entradas está a 1. 1.4 Puerta OR−exclusiva (XOR) Símbolo de la función lógica O−exclusiva. a) Contactos, b) Normalizado y c) No normalizado La puerta lógica O−exclusiva, más conocida por su nombre en inglés XOR, realiza la función booleana A'B+AB'. Su símbolo es el más (+) inscrito en un círculo. En la figura de la derecha pueden observarse sus símbolos en electrónica. La ecuación característica que describe el comportamiento de la puerta XOR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta XOR Entrada A Entrada B 0 0 0 1 Salida A B 0 1 24 1 1 0 1 1 0 Se puede definir esta puerta como aquella que da por resultado uno, cuando los valores en las entradas son distintos. ej: 1 y 0, 0 y 1 (en una compuerta de dos entradas). Si la puerta tuviese tres o más entradas, la XOR tomaría la función de suma de paridad, cuenta el número de unos a la entrada y si son un número impar, pone un 1 a la salida, para que el número de unos pase a ser par. Esto es así porque la operación XOR es asociativa, para tres entradas escribiríamos: a (b c) o bien (a b) c. Su tabla de verdad sería: XOR de tres entradas Entrada A Entrada B Entrada C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Salida A B C 0 1 1 0 1 0 0 1 2 Lógica negada 2.1 Puerta NO (NOT) Símbolo de la función lógica NO a) Contactos, b) Normalizado y c) No normalizado La puerta lógica NO (NOT en inglés) realiza la función booleana de inversión o negación de una variable lógica. La ecuación característica que describe el comportamiento de la puerta NOT es: Su tabla de verdad es la siguiente: 25 Tabla de verdad puerta NOT Salida Entrada A 0 1 1 0 Se puede definir como una puerta que proporciona el estado inverso del que esté en su entrada. 2.2 Puerta NO−Y (NAND) Símbolo de la función lógica NO−Y. a) Contactos, b) Normalizado y c) No normalizado La puerta lógica NO−Y, más conocida por su nombre en inglés NAND, realiza la operación de producto lógico negado. En la figura de la derecha pueden observarse sus símbolos en electrónica. La ecuación característica que describe el comportamiento de la puerta NAND es: Su tabla de verdad es la siguiente: Tabla de verdad puerta NAND Entrada A Entrada B 0 0 0 1 1 0 1 1 Salida 1 1 1 0 Podemos definir la puerta NO−Y como aquella que proporciona a su salida un 0 lógico únicamente cuando todas sus entradas están a 1. 2.3 Puerta NO−O (NOR) Símbolo de la función lógica NO−O. a) Contactos, b) Normalizado y c) No normalizado La puerta lógica NO−O, más conocida por su nombre en inglés NOR, realiza la operación de suma lógica negada. En la figura de la derecha pueden observarse sus símbolos en electrónica. La ecuación característica que describe el comportamiento de la puerta NOR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta NOR Entrada A Entrada B 0 0 0 1 1 0 Salida 1 0 0 26 1 1 0 Podemos definir la puerta NO−O como aquella que proporciona a su salida un 1 lógico sólo cuando todas sus entradas están a 0. La puerta lógica NOR constituye un conjunto completo de operadores. 2.4 Puerta equivalencia (XNOR) Símbolo de la función lógica equivalencia. a) Contactos, b) Normalizado y c) No normalizado La puerta lógica equivalencia, más conocida por su nombre en inglés XNOR, realiza la función booleana AB+A'B'. Su símbolo es un punto (·) inscrito en un círculo. En la figura de la derecha pueden observarse sus símbolos en electrónica. La ecuación característica que describe el comportamiento de la puerta XNOR es: Su tabla de verdad es la siguiente: Tabla de verdad puerta XNOR Entrada A Entrada B Salida 0 0 1 1 0 1 0 1 1 0 0 1 Se puede definir esta puerta como aquella que proporciona un 1 lógico, sólo si las dos entradas son iguales, esto es, 0 y 0 ó 1 y 1. CONCLUSION. La lógica es la ciencia del razonamiento que nos permite hacer deducciones. En la electrónica los circuitos encargados de hacer deducciones lógicas son los circuitos lógicos. "Si usted se encuentra en un de los pasillos de un edificio y acciona el pulsor de llamada de los ascensores, en este momen-to aparecer el que se encuentre más cerca; ya dentro de la cabina cada pasajero pulsa el botón del piso deseado; el ascen-sor se detiene en los pisos en un orden lógico, sin tener en-cuenta el orden en que fueron accionados los pulsadores ante-riormente. Esa inteligencia se habilita a la máquina a tomar decisiones en el resultado de un pequeño número de circuitos elementales denominados circuitos lógicos. De acuerdo con la definición anterior que hemos dado a los circuitos lógicos podemos decir que estos circuitos encuentran aplicación en muchos campos como: La telegrafía, la telefonía, los procesos industriales, etc. en estos campos normalmente encontramos un computador digital (máquina hecha a base de circuitos lógicos) que se programan de manera tal que en cada circunstancia esté capacitada para tomar las decisiones lógicas correspondientes. En un proceso industrial, por ejemplo, el computador se programa para manejar todo un ciclo de producción y poder sacar en el menor tiempo posible la mayor cantidad de productos y al menor costo. En general podemos decir que la aplicación de la lógica en los computadores es casi infinita en nuestra vida moderna. En un ferrocarril, por ejemplo, el movimiento y el uso de los trenes debe estarse controlando permanentemente para transportar la máxima cantidad de mercancía en un tiempo aceptable y con el mínimo costo. 27 BIBLIOGRAFÍA • Lógica formal y simbólica de Juvenal Canedo Chavez PRODUCCIONES Cima Vigésima octava edición aumentada. • Biblioteca Premium Microsoft Encarta 2006 • www.electronicafacil.net/tutoriales/tutorial218.html • es.wikipedia.org/wiki/Circuito_de_conmutación • descartes.cnice.mecd.es/materiales_didacticos/logica_digital/LogicaDigital • Diccionario de Filosofía. José Ferrater Mora. Sudamericana. Buenos Arires. • Introducción de la lógica Simbólica. Gerold Stal. Ediciones Universidad de Chile • http://es.wikipedia.org/wiki/Circuito_de_conmutaci%C3%B3n" • www.lawebdelprogramador.com/temas/enlace.php?idp=1500&id=67&texto=Otros 10 p q rp^q!r 28