Вы находитесь на странице: 1из 6

La lgica es una disciplina que se ocupa de los mtodos de razonamiento, proporciona reglas y tcnicas para determinar si un argumento es vlido

o no. El razonamiento lgico se emplea en matemticas para demostrar teoremas; en ciencias de la computacin para verificar si son o no correctos los programas; Se dice que una variable tiene valor booleano cuando, en general, la variable contiene un 0 lgico o un 1 lgico. Esto, en la mayora de los lenguajes de programacin, se traduce en false (falso) o true(verdadero), respectivamente. Una variable puede no ser de tipo booleano, y guardar valores que, en principio, no son booleanos; ya que, globalmente, los compiladores trabajan con esos otros valores, numricos normalmente aunque tambin algunos permiten cambios desde, incluso, caracteres, finalizando en valor booleano. El 0 lgico

El valor booleano de negacin suele ser representado como false, aunque tambin permite y equivale al valor natural, entero y decimal (exacto) 0, as como la cadena "false", e incluso la cadena "0". El 1 lgico

En cambio, el resto de valores apuntan al valor booleano de afirmacin, representado normalmente como true, ya que, por definicin, el valor 1 se tiene cuando no es 0. Cualquier nmero distinto de cero se comporta como un 1 lgico, y lo mismo sucede con casi cualquier cadena (menos la "false", en caso de ser sta la correspondiente al 0 lgico). La lgica computacional es la misma lgica matemtica aplicada al contexto de las ciencias de la computacin. Su uso es fundamental a varios niveles: en los circuitos computacionales, en la programacin lgica y en el anlisis y optimizacin (de recursos temporales y espaciales) de algoritmos.

CIRCUITOS COMPUTACIONALES El nivel menos abstracto dentro de una computadora est constituido por circuitos electrnicos que responden a diferentes seales elctricas, siguiendo los patrones de la lgica booleana; esto es, compuertas lgicas que devuelven un valor dependiendo de las entradas que se le dan al sistema. Existen ocho compuertas lgicas bsicas con las cuales se pueden formar sistemas muy complejos: AND, OR, Inverter, Buffer, NAND,NOR, XOR y XNOR. Todas ellas son representadas mediante un smbolo y una tabla de valores de verdad, que es simplemente un cuadro donde se ubican todas las posibles entradas y los valores que devolvera la compuerta dados dichos valores. Todo sistema computacional, por muy complejo que sea, no est compuesto por ms que circuitos electrnicos que nicamente entienden un lenguaje binario. La lgica computacional se encarga de modelar y optimizar tales sistemas a este nivel. ALGORITMOS En matemticas, ciencias de la computacin y disciplinas relacionadas, un Algoritmo (del griego y latn, dixit algorithmus y ste a su vez del matemtico persa Al Juarismi)es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguindolos pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la Algoritmia. El pseudocdigo es una herramienta algortmica que permite escribir pseudoprogramas (una imitacin de un programa real) utilizando un lenguaje de pseudo-programacin que es una imitacin de los lenguajes de programacin de alto nivel. As, un pseudocdigos una combinacin de smbolos (+, -, *, /, %, >, >=, <, <=, !=, ==, y, o, no), trminos(Leer, Imprimir, Abrir, Cerrar, Hacer...Mientras, Mientras...Hacer, Para...Mientras, etc)y otras caractersticas comnmente utilizadas en uno o ms lenguajes de alto nivel.

PROGRAMACION LOGICA La programacin lgica consiste en la aplicacin del corpus de conocimiento sobre lgica para el diseo de lenguajes de programacin; La programacin lgica es un tipo de paradigmas de programacin dentro del paradigma de programacin declarativa. El resto de los sub paradigmas de programacin dentro de la programacin declarativa son: programacin funcional, programacin basada en restricciones, programas DSL (de dominio especfico) e hbridos. La programacin lgica gira en torno al concepto de predicado, o relacin entre elementos. La programacin funcional se basa en el concepto de funcin (Que no es ms que una evolucin de los predicados), de corte ms matemtico. La programacin lgica encuentra su Hbitat natural en aplicaciones de inteligencia artificial o relacionada:

Sistemas expertos, donde un sistema de informacin imita las recomendaciones de un experto sobre algn dominio de conocimiento. Demostracin automtica de teoremas, donde un programa genera nuevos teoremas sobre una teora existente. Reconocimiento de lenguaje natural, donde un programa es capaz de comprender (con limitaciones) la informacin contenida en una expresin lingstica humana. Etc. La programacin lgica tambin se utiliza en aplicaciones ms "mundanas" pero de manera muy limitada, ya que la programacin tradicional es ms adecuada a tareas de propsito general. Relacin entre la lgica combinacional y secuencial con la programacin En sta leccin hemos dado una repasada muy bsica a los elementos que forman la base de los modernos sistemas de cmputo, en la seccin dedicada al diseo electrnico estudiaremos a profundidad los conceptos aqu presentados, pero para aquellos que estn ms interesados en el aspecto programtico podemos decir que con los elementos vistos en sta leccin es posible implementar mquinas de estado, sin embargo la moraleja de sta leccin es muy importante: cualquier algoritmo que podamos implementar en software, lo podemos a su vez implementar directamente en hardware. sto sugiere que la lgica booleana es la base computacional en los modernos sistemas de cmputo actuales. Cualquier programa que Usted escriba, independientemente del lenguaje que utilice, sea ste de alto bajo nivel, se puede especificar como una secuencia de ecuaciones booleanas. Un hecho igualmente interesante es el punto de vista opuesto, es posible implementar cualquier funcin de hardware directamente en software, en la actualidad sta es la funcin principal del lenguaje ensamblador y otros con capacidad de trabajar directamente en hardware, como el C y el C++. Las consecuencias de ste fenmeno apenas se estn explotando, se infiere la existencia de un futuro muy prometedor para el profesional de la programacin, especialmente aquellos dedicados a los sistemas incrustados (embedded systems), los microcontroladores y los profesionales dedicados a la Programacin Orientada a Objetos. Para tener xito en stos campos de la investigacin es fundamental comprender las funciones booleanas y la manera de implementarlas en software. An y cuando Usted no desee trabajar en hardware, es importante conocer las funciones booleanas ya que muchos lenguajes de alto nivel procesan expresiones booleanas, como es el caso de los enunciados if-then los bucles while. 1. Introduccin Las lgebras booleanas, estudiadas por primera vez en detalle por George Boole , constituyen un rea de las matemticas que ha pasado a ocupar un lugar prominente con el advenimiento de la computadora digital. Son usadas ampliamente en el diseo de circuitos de distribucin y computadoras, y sus aplicaciones van en aumento en muchas otras reas. En el nivel de lgica digital de una computadora, lo que comnmente se llama hardware, y que est formado por los componentes electrnicos de la mquina, se trabaja con diferencias de tensin, las cuales generan funciones que son calculadas por los circuitos que forman el nivel. stas funciones, en la etapa de disea del hardware, son interpretadas como funciones de boole. En el presente trabajo se intenta dar una definicin de lo que es un lgebra de boole; se tratan las funciones booleanas, haciendo una correlacin con las frmulas

proposicionales. Asimismo, se plantean dos formas cannicas de las funciones booleanas, que son tiles para varios propsitos, tales como el de determinar si dos expresiones representan o no la misma funcin. Pero para otros propsitos son a menudo engorrosas, por tener ms operaciones que las necesarias. Particularmente, cuando estamos construyendo los circuitos electrnicos con que implementar funciones booleanas, el problema de determinar una expresin mnima para una funcin es a menudo crucial. No resultan de la misma eficiencia en dinero y tiempo, principalmente, dos funciones las cuales calculan lo mismo pero donde una tiene menos variables y lo hace en menor tiempo. Como solucin a este problema, se plantea un mtodo de simplificacin, que hace uso de unos diagramas especiales llamados mapas o diagramas de Karnaugh, y el cual tiene la limitacin de poder trabajar adecuadamente slo con pocas variables. Se realizan estas presentaciones con el fin de demostrar la afinidad existente entre el lgebra de boole y la lgica proposicional, y con el objeto de cimentar el procedimiento de simplificacin presentado en la lgica de proposiciones. 2. Resea Histrica A mediados del siglo XIX, George Boole (1815-1864), en sus libros: "The Mathematical Analysis of Logic" (1847) y "An Investigation of te Laws of Thought" (1854), desarroll la idea de que las proposiciones lgicas podan ser tratadas mediante herramientas matemticas. Las proposiciones lgicas (asertos, frases o predicados de la lgica clsica) son aquellas que nicamente pueden tomar valores Verdadero/Falso, o preguntas cuyas nicas respuestas posibles sean S/No. Segn Boole, estas proposiciones pueden ser representadas mediante smbolos y la teora que permite trabajar con estos smbolos, sus entradas (variables) y sus salidas (respuestas) es la Lgica Simblica desarrollada por l. Dicha lgica simblica cuenta con operaciones lgicas que siguen el comportamiento de reglas algebraicas. Por ello, al conjunto de reglas de la Lgica Simblica se le denomina LGEBRA DE BOOLE. A mediados del siglo XX el lgebra Booleana result de una gran importancia prctica, importancia que se ha ido incrementando hasta nuestros das, en el manejo de informacin digital (por eso hablamos de Lgica Digital). Gracias a ella, Shannon (1930) pudo formular su teora de la codificacin y JohnVon Neumann pudo enunciar el modelo de arquitectura que define la estructura interna de los ordenadores desde la primera generacin. Todas las variables y constantes del lgebra booleana, admiten slo uno de dos valores en sus entradas y salidas: S/No, 0/1 o Verdadero/Falso. Estos valores bivalentes y opuestos pueden ser representados por nmeros binarios de un dgito (bits), por lo cual el lgebra booleana se puede entender cmo el lgebra del Sistema Binario. Al igual que en lgebra tradicional, tambin se trabaja con letras del alfabeto para denominar variables y formarecuaciones para obtener el resultado de ciertas operaciones mediante una ecuacin o expresin booleana. Evidentemente los resultados de las correspondientes operaciones tambin sern binarios. Todas las operaciones (representadas por smbolos determinados) pueden ser materializadas mediante elementos fsicos de diferentes tipos (mecnicos, elctricos, neumticos o electrnicos) que admiten entradas binarias o lgicas y que devuelven una respuesta (salida) tambin binaria o lgica. Ejemplos de dichos estados son: Abierto/Cerrado (interruptor), Encendida/Apagada (bombilla), Cargado/Descargado (condensador) , Nivel Lgico 0/Nivel lgico 1 (salida lgica de un circuito semiconductor), etctera.

Los dispositivos con los cuales se implementan las funciones lgicas son llamados puertas (o compuertas) y, habitualmente, son dispositivos electrnicos basados en transistores. Estos dispositivos, y otros que veremos a lo largo de esta unidad, son los que permiten el diseo, y la ulterior implementacin, de los circuitos de cualquier ordenador moderno, as como de muchos de los elementos fsicos que permiten la existencia de lastelecomunicaciones modernas, el control de mquinas, etctera. De hecho, pensando en los ordenadores como una jerarqua de niveles, la base o nivel inferior sera ocupada por la lgica digital (en el nivel ms alto del ordenador encontraramos los actuales lenguajes de programacin de alto nivel). En esta unidad se representan las puertas lgicas elementales, algunas puertas complejas y algunos ejemplos de circuitos digitales simples, as como algunas cuestiones de notacin. Por otra parte se plantean actividades de trabajo, muchas de las cuales implican una respuesta escrita en vuestro cuaderno de trabajo. El deseo del autor es que os resulte sencillo y ameno adentraros en el mundo de la lgica digital y despertaros la curiosidad, tanto por ella, como por la matemtica que subyace en ella.

Para cualquier sistema algebraico existen una serie de postulados iniciales, de aqu se pueden deducir reglas adicionales, teoremas y otras propiedades del sistema, el lgebra booleana a menudo emplea los siguientes postulados: Cerrado. El sistema booleano se considera cerrado con respecto a un operador binario si para cada par de valores booleanos se produce un solo resultado booleano. Conmutativo. Se dice que un operador binario " " es conmutativo si A B = B A para todos los posibles valores de A y B. Asociativo. Se dice que un operador binario " " es asociativo si (A B) C = A (B C) para todos los valores booleanos A, B, y C. Distributivo. Dos operadores binarios " " y " % " son distributivos si A (B % C) = (A B) % (A C) para todos los valores booleanos A, B, y C. Identidad. Un valor booleano I se dice que es un elemento de identidad con respecto a un operador binario " " si A I = A. Inverso. Un valor booleano I es un elemento inverso con respecto a un operador booleano " " si A I = B, y B es diferente de A, es decir, B es el valor opuesto de A. Para nuestros propsitos basaremos el lgebra booleana en el siguiente juego de operadores y valores: - Los dos posibles valores en el sistema booleano son cero y uno, a menudo llamaremos a stos valores respectivamente como falso y verdadero. - El smbolo representa la operacin lgica AND. Cuando se utilicen nombres de variables de una sola letra se eliminar el smbolo , por lo tanto AB representa la operacin lgica AND entre las variables A y B, a esto tambin le llamamos el producto entre A y B. - El smbolo "+" representa la operacin lgica OR, decimos que A+B es la operacin lgica OR entre A y B, tambin llamada la suma de A y B. - El complemento lgico, negacin NOT es un operador unitario, en ste texto utilizaremos el smbolo " ' " para denotar la negacin lgica, por ejemplo, A' denota la operacin lgica NOT de A.

- Si varios operadores diferentes aparecen en una sola expresin booleana, el resultado de la expresin depende de la procedencia de los operadores, la cual es de mayor a menor, parntesis, operador lgico NOT, operador lgico AND y operador lgico OR. Tanto el operador lgico AND como el OR son asociativos por la izquierda. Si dos operadores con la misma procedencia estn adyacentes, entonces se evalan de izquierda a derecha. El operador lgico NOT es asociativo por la derecha.

Utilizaremos adems los siguientes postulados: P1 El lgebra booleana es cerrada bajo las operaciones AND, OR y NOT P2 El elemento de identidad con respecto a es uno y con respecto a + es cero. No existe elemento de identidad para el operador NOT P3 Los operadores y + son conmutativos. P4 y + son distributivos uno con respecto al otro, esto es, A (B+C) = (AB)+ (AC) y A+ (BC) = (A+B) (A+C). P5 Para cada valor A existe un valor A' tal que AA' = 0 y A+A' = 1. ste valor es el complemento lgico de A. P6 y + son ambos asociativos, sto es, (AB) C = A (BC) y (A+B)+C = A+ (B+C).

Вам также может понравиться