lenguajes de programacion y algebra booleana

23
Lenguaje de bajo nivel Un lenguaje de programación de bajo nivel es el que proporciona un conjunto de instrucciones aritmeticológicas sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware. Contenido [ocultar ] 1 Complejidad Vs Dificultad 2 Interacción Máquina Vs Humano 3 Primera generación 4 Segunda generación 5 Véase también [editar ] Complejidad Vs Dificultad Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy difícil. Dado que este lenguaje viene dado por las especificaciones técnicas del hardware, no permite una abstracción fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fácilmente trasladado a lenguaje de máquina . La estructura de los lenguajes son como sigue: 1. Lenguaje Máquina - Las invocaciones a memoria, como los procesos aritmético lógicos son posiciones literales de conmutadores físicos del hardware en su representación booleana. Estos lenguajes son literales de tareas.

Upload: joseph-paniagua

Post on 05-Aug-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Lenguajes de Programacion y Algebra Booleana

Lenguaje de bajo nivelUn lenguaje de programación de bajo nivel es el que proporciona un conjunto de instrucciones aritmeticológicas sin la capacidad de encapsular dichas instrucciones en funciones que no estén ya contempladas en la arquitectura del hardware.

Contenido

[ocultar]

1 Complejidad Vs Dificultad 2 Interacción Máquina Vs Humano 3 Primera generación 4 Segunda generación 5 Véase también

[editar] Complejidad Vs Dificultad

Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy difícil. Dado que este lenguaje viene dado por las especificaciones técnicas del hardware, no permite una abstracción fuera de lo estipulado para el microprocesador de un ordenador. Consecuentemente, es fácilmente trasladado a lenguaje de máquina.

La estructura de los lenguajes son como sigue:

1. Lenguaje Máquina - Las invocaciones a memoria, como los procesos aritmético lógicos son posiciones literales de conmutadores físicos del hardware en su representación booleana. Estos lenguajes son literales de tareas.

2. Lenguajes de bajo nivel - Son instrucciones que ensamblan los grupos de conmutadores necesarios para expresar una mínima lógica aritmética. Están íntimamente vinculados al hardware. Por norma general están disponibles a nivel firmware, cmos o chip set. Estos lenguajes están orientados a procesos. Los procesos se componen de tareas. Contienen tantas instrucciones como la arquitectura del hardware así haya sido diseñada.

Por ejemplo: La arquitectura CISC contiene muchas mas instrucciones a este nivel, que la RISC.

Son denominados como ensambladores de un hardware concreto.

1. Lenguajes de medio nivel - Son aquellos que, basándose en los juegos de instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmético, pero a nivel lógico dependen de literales en ensamblador. Estos lenguajes están orientados a procedimientos. Los procedimientos se componen de procesos.

Page 2: Lenguajes de Programacion y Algebra Booleana

Ejemplos: C, Basic.

1. Lenguajes de alto nivel - Son aquellos que permiten una máxima flexibilidad al programador a la hora de abstraerse o de ser literal. Permiten un camino bidireccional entre el lenguaje máquina y una expresión casi oral entre la escritura del programa y su posterior compilación. Estos lenguajes están orientados a objetos. Los objetos se componen de propiedades cuya naturaleza emerge de procedimientos.

Ejemplos: C++, Fortran, Cobol, Lisp.

1. Lenguajes de aplicaciones - Son aquellos que no permiten una bidireccionalidad conceptual entre el lenguaje máquina y los lenguajes de alto nivel, ni tampoco la literalidad a la hora de invocar conceptos lógicos. Se basan en librerías creadas en lenguajes de alto nivel. Pueden permitir la creación de nuevas librerías, pero son propietarias y dependientes de las suministradas por la aplicación. Estos lenguajes están orientados a eventos. Los eventos acontecen cuando las propiedades de un objeto interactúan con otro.

Ejemplos: Visual Basic para aplicaciones.

1. Lenguajes de redes - Son aquellos que se basan en un convenio de instrucciones totalmente independientes de la máquina, y completamente dependientes de la red a la que están orientadas. Se dividen en descriptivos (HTML, XML, VML), de cliente-Servidor (Java, PHP) y de script.

La palabra bajo no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la reducida abstracción entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar controladores de dispositivos.

[editar] Interacción Máquina Vs Humano

En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle, además, está completamente orientado a la máquina.

Adaptación - Máxima entre programación y aprovechamiento del recurso de la máquina.

Velocidad - Máxima al contar con un acceso directo a los recursos, sin capas intermedias.

Portabilidad - Mínima por estar restringido a las especificaciones del fabricante. Abstracción - Mínima por depender completamente de la técnica del hardware. Uso - Requiere de la máxima atención y de una organización estructurada en base a

los planos del hardware y del objetivo del software.

Page 3: Lenguajes de Programacion y Algebra Booleana

[editar] Primera generación

El lenguaje de programación de primera generación (por sus siglas en inglés: 1GL), es el lenguaje de código máquina. Es el único lenguaje que un microprocesador entiende de forma nativa. El lenguaje máquina no puede ser escrito o leído usando un editor de texto, y por lo tanto es raro que una persona lo use directamente.

[editar] Segunda generación

El lenguaje de programación de segunda generación (por sus siglas en inglés: 2GL), es el lenguaje ensamblador. Se considera de segunda generación porque, aunque no es lenguaje nativo del microprocesador, un programador de lenguaje ensamblador debe conocer la arquitectura del microprocesador (como por ejemplo las particularidades de sus registros o su conjunto de instrucciones).

BAJO NIVEL

Cuando las primeras computadoras fueron desarrolladas, la programación consistía en trabajar con unos y ceros, [codigo binario 101010] o incluso paneles con switches. Los lenguajes de programación como el C++, no fueron creados de la nada, ni aparecierón de la noche a la mañana. Se necesitó de una serie de estudios para llegar a los lenguajes avanzados que conocemos hoy en día.

En los últimos años de la decada de los 40’s Kunrad Zuse, ingeniero alemán, buscó una mejor manera de programar las computadoras. Desarrolló un sistema de símbolos que podía ser usado para resolver problemas paso por paso. Éste sistema llevaba el nombre de plankalkul.

Alan Turing fue de los primeros en reconocer que la programación en lenguaje de máquina solo estaba limitando la velocidad y facilidad para programar. Turing escribió un código sencillo para escribir programas. El código de turing era mejor que el binario [10101010] pero aún no era reconocible o simple para la gente que no estaba especializado en él.

John Mauchly creó un código llamado ‘’SHORT CODE’’. Aún era un poco enigmático, pero permitía introducir ecuaciones usando un código especial.

Este ‘SHORT CODE’’ inspiró a Grace Murray. Murray fue la primera en dedicarse a la creacion de lenguajes de alto nivel.

ALTO NIVEL

Page 4: Lenguajes de Programacion y Algebra Booleana

Uno de los primero lenguajes de programación de alto nivel muy utilizado fue el FORTRAN, desarrollado en los 50’s por la IBM. FORTRAN[ abreviado de FORMULA TRANSLATOR] fue diseñado para trabajar con datos matemáticos.

En el ‘58, nace un nuevo lenguaje, el ALGOL, [abreviado de ALGORITHM LANGUAGE, o lenguaje de algoritmo]. Fue diseñado para competir con FORTRAN. La primera versión fué conocida como ALGOL 58, reemplazada en el 60’ por ALGOL 60. el ALGOL no fue tan aceptado como el FORTRAN

El siguiente es el COBOL [COMMON BUSSINESS ORIENTED LANGUAGE ó en español lenguaje orientado al negocio común ] fue creado en el 60’ para ser utilizado como el lenguaje primordial para grandes programas gubernamentales y empresariales. El COBOL aún se usa en muchos sistemas hoy en día.

En el ‘64 el lenguaje BASIC [abreviado de BEGINNERS ALL-PURPOSE SYMBOLIC INSTRUCTION CODE] fue usado por primera vez. Gracias al BASIC la programación se vió en nuevos horizontes, mas gente tenía acceso a ésta. En el ‘65, el lenguaje PL/I fue desarrollado, con la esperanza de que cumpliera con las expectativas generales. Fue diseñado para propósitos tanto cientificos como de negocios o empresas. El PL/I fue una especie de combinación del COBOL, fortran y ALGOL 60. el pl/I resulto ser demasiado complicado, por lo que su ‘’éxito’’ fué solo parcial.

Dos lenguajes que no tuvieron mucha influencia o éxito en su época fueron el SIMULA 1 y SIMULA 67. sin embargo, SIMULA presentó los conceptos de la programación orientada a objetos, la cual influenció a los lenguajes por venir, tales como el C++.

En los finales de los 60’ niklaus wirth desarrolló un lenguaje de ensenanza llamado PASCAL. PASCAL y su sucesor el MODULA-2, presentaron importantes innovaciones y conceptos en cuanto a la estructura de programación, que redujeron los errores e incrementaron la legibilidad

ADA es un lenguaje desarrollado por el departamento de defensa de estados unidos, como un intento por estandarizar los lenguajes usados para los proyectos DOD. ADA, el cual fue creado en 1983, es un lenguaje extenso y complicado.

Otro lenguaje importante es el SMALLTALK. Éste tiene una importancia cingular, pues es el punto de partida para los lenguajes por venir. SMALLTALK, es tanto orientado a objetos como gráfico. Mientras que el SMALLTALK no es usado tan ampliamente como el C++, los conceptos desarrollados junto con el SMALLTALK, son de suma importancia, ya que de ellos se derivó la creacion de los lenguajes como el C++ y el JAVA.

El lenguaje C, es una derivación del ALGOL creado el ‘72 con la intención de conseguir un lenguaje que permitiera crear sistemas operativos. se extendió su utilización a aplicaciones científicas, de gestión, bases de datos. Y el lenguaje C++ es el lenguaje C, pero con la adición de conceptos orientados a objetos.

Page 5: Lenguajes de Programacion y Algebra Booleana

NIVEL VISUAL [cuarta generación]

Los lenguajes de programación actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C.

Los diferentes lenguajes de programación para la web

Actualmente existen diferentes lenguajes de programación para desarrollar en la web, estos han ido surgiendo debido a las tendencias y necesidades de las plataformas. En el presente artículo pretende mostrar las ventajas y desventajas de los lenguajes más conocidos.

Desde los inicios de Internet, fueron surgiendo diferentes demandas por los usuarios y se dieron soluciones mediante lenguajes estáticos. A medida que paso el tiempo, las tecnologías fueron desarrollándose y surgieron nuevos problemas a dar solución. Esto dio lugar a desarrollar lenguajes de programación para la web dinámicos, que permitieran interactuar con los usuarios y utilizaran sistemas de Bases de Datos. A continuación daremos una introducción a los diferentes lenguajes de programación para la web.

Lenguaje HTML

Desde el surgimiento de internet se han publicado sitios web gracias al lenguaje HTML. Es un lenguaje estático para el desarrollo de sitios web (acrónimo en inglés de HyperText Markup Language, en español Lenguaje de Marcas Hipertextuales). Desarrollado por el World Wide Web Consortium (W3C). Los archivos pueden tener las extensiones (htm, html).

Sintaxis:

<html> (Inicio del documento HTML)<head>( Cabecera )</head><body>( Cuerpo )</body></html>

<b> </b> Negrita<p> </p> Definir parrafo<etiqueta> Apertura de la etiqueta</etiqueta> Cierre de la etiqueta

Ventajas:

Sencillo que permite describir hipertexto.

Page 6: Lenguajes de Programacion y Algebra Booleana

Texto presentado de forma estructurada y agradable. No necesita de grandes conocimientos cuando se cuenta con un editor de páginas web o

WYSIWYG. Archivos pequeños. Despliegue rápido. Lenguaje de fácil aprendizaje. Lo admiten todos los exploradores.

Desventajas:

Lenguaje estático. La interpretación de cada navegador puede ser diferente. Guarda muchas etiquetas que pueden convertirse en “basura” y dificultan la corrección. El diseño es más lento. Las etiquetas son muy limitadas.

Lenguaje Javascript

Este es un lenguaje interpretado, no requiere compilación. Fue creado por Brendan Eich en la empresa Netscape Communications. Utilizado principalmente en páginas web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no dispone de herencias. La mayoría de los navegadores en sus últimas versiones interpretan código Javascript.

El código Javascript puede ser integrado dentro de nuestras páginas web. Para evitar incompatibilidades el World Wide Web Consortium (W3C) diseño un estándar denominado DOM (en inglés Document Object Model, en su traducción al español Modelo de Objetos del Documento).

Sintaxis:<script type="text/javascript"> ... </script>

Ventajas:

Lenguaje de scripting seguro y fiable. Los script tienen capacidades limitadas, por razones de seguridad. El código Javascript se ejecuta en el cliente.

Desventajas:

Código visible por cualquier usuario. El código debe descargarse completamente. Puede poner en riesgo la seguridad del sitio, con el actual problema llamado XSS (significa

en inglés Cross Site Scripting renombrado a XSS por su similitud con las hojas de estilo CSS).

Page 7: Lenguajes de Programacion y Algebra Booleana

Lenguaje PHP

Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home Page). Surgió en 1995, desarrollado por PHP Group.

PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas. Los archivos cuentan con la extensión (php).

Sintaxis:La sintaxis utilizada para incorporar código PHP es la siguiente:<?$mensaje = “Hola”;echo $mensaje;?>

También puede usarse:

<?php$mensaje = “Hola”;echo $mensaje;?>

Ventajas:

Muy fácil de aprender. Se caracteriza por ser un lenguaje muy rápido. Soporta en cierta medida la orientación a objeto. Clases y herencia. Es un lenguaje multiplataforma: Linux, Windows, entre otros. Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL,

PostgreSQL, Oracle, MS SQL Server, entre otras. Capacidad de expandir su potencial utilizando módulos. Posee documentación en su página oficial la cual incluye descripción y ejemplos de cada

una de sus funciones. Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. Incluye gran cantidad de funciones. No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

Desventajas:

Se necesita instalar un servidor web. Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más

ineficiente a medida que las solicitudes aumenten de número. La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.

Page 8: Lenguajes de Programacion y Algebra Booleana

La programación orientada a objetos es aún muy deficiente para aplicaciones grandes. Dificulta la modularización. Dificulta la organización por capas de la aplicación.

Seguridad:

PHP es un poderoso lenguaje e intérprete, ya sea incluido como parte de un servidor web en forma de módulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que sea ejecutada en un servidor web sea insegura por naturaleza.

PHP está diseñado específicamente para ser un lenguaje más seguro para escribir programas CGI que Perl o C, y con la selección correcta de opciones de configuración en tiempos de compilación y ejecución, y siguiendo algunas prácticas correctas de programación.

Lenguaje ASP

Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en 1996. Las páginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet Information Server (IIS).

ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar para crear páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer también en Perl and Jscript (no JavaScript). El código ASP puede ser insertado junto con el código HTML. Los archivos cuentan con la extensión (asp).

Sintaxis:<% %>

Ventajas:

Usa Visual Basic Script, siendo fácil para los usuarios. Comunicación óptima con SQL Server. Soporta el lenguaje JScript (Javascript de Microsoft).

Desventajas:

Código desorganizado. Se necesita escribir mucho código para realizar funciones sencillas. Tecnología propietaria. Hospedaje de sitios web costosos.

Page 9: Lenguajes de Programacion y Algebra Booleana

Lenguaje ASP.NET

Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET.

El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensión (aspx). Para su funcionamiento de las páginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003 incluye este framework, solo se necesitará instalarlo en versiones anteriores.

Sintaxis:

Ventajas:

Completamente orientado a objetos. Controles de usuario y personalizados. División entre la capa de aplicación o diseño y el código. Facilita el mantenimiento de grandes aplicaciones. Incremento de velocidad de respuesta del servidor. Mayor velocidad. Mayor seguridad.

Desventajas:

Mayor consumo de recursos.

Lenguaje JSP

Es un lenguaje para la creación de sitios web dinámicos, acrónimo de Java Server Pages. Está orientado a desarrollar páginas web en Java. JSP es un lenguaje multiplataforma. Creado para ejecutarse del lado del servidor.

JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET, desarrollado para la creación de aplicaciones web potentes. Posee un motor de páginas basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor Tomcat.

Sintaxis:<%= new java.util.Date() %>

Características:

Código separado de la lógica del programa. Las páginas son compiladas en la primera petición.

Page 10: Lenguajes de Programacion y Algebra Booleana

Permite separar la parte dinámica de la estática en las páginas web. Los archivos se encuentran con la extensión (jsp). El código JSP puede ser incrustado en código HTML.

Elementos de JSP

Los elementos que pueden ser insertados en las páginas JSP son los siguientes:

Código: se puede incrustar código “Java”. Directivas: permite controlar parámetros del servlet. Acciones: permite alterar el flujo normal de ejecución de una página.

Ventajas:

Ejecución rápida del servlets. Crear páginas del lado del servidor. Multiplataforma. Código bien estructurado. Integridad con los módulos de Java. La parte dinámica está escrita en Java. Permite la utilización se servlets.

Desventajas:

Complejidad de aprendizaje.

Lenguaje Python

Es un lenguaje de programación creado en el año 1990 por Guido van Rossum, es el sucesor del lenguaje de programación ABC. Python es comparado habitualmente con Perl. Los usuarios lo consideran como un lenguaje más limpio para programar. Permite la creación de todo tipo de programas incluyendo los sitios web.

Su código no necesita ser compilado, por lo que se llama que el código es interpretado. Es un lenguaje de programación multiparadigma, lo cual fuerza a que los programadores adopten por un estilo de programación particular:

Programación orientada a objetos. Programación estructurada. Programación funcional. Programación orientada a aspectos.

Sintaxis:

Ejemplo de una clase en Phyton:

def dibujar_muneco(opcion):

Page 11: Lenguajes de Programacion y Algebra Booleana

if opcion == 1: C.create_line(580, 150, 580, 320, width=4, fill="blue") C.create_oval(510, 150, 560, 200, width=2, fill='PeachPuff')

Ventajas:

Libre y fuente abierta. Lenguaje de propósito general. Gran cantidad de funciones y librerías. Sencillo y rápido de programar. Multiplataforma. Licencia de código abierto (Opensource). Orientado a Objetos. Portable.

Desventajas:

Lentitud por ser un lenguaje interpretado.

Lenguaje Ruby

Es un lenguaje interpretado de muy alto nivel y orientado a objetos. Desarrollado en el 1993 por el programador japonés Yukihiro “Matz” Matsumoto. Su sintaxis está inspirada en Phyton, Perl. Es distribuido bajo licencia de software libre (Opensource).

Ruby es un lenguaje dinámico para una programación orientada a objetos rápida y sencilla. Para los que deseen iniciarse en este lenguaje pueden encontrar un tutorial interactivo de ruby. Se encuentra también a disposición de estos usuarios un sitio con informaciones y cursos en español.

Sintaxis:puts "hola"

Características:

Existe diferencia entre mayúsculas y minúsculas. Múltiples expresiones por líneas, separadas por punto y coma “;”. Dispone de manejo de excepciones. Ruby puede cargar librerías de extensiones dinámicamente si el (Sistema Operativo) lo

permite. Portátil.

Ventajas:

Permite desarrollar soluciones a bajo Costo. Software libre. Multiplataforma.

Page 12: Lenguajes de Programacion y Algebra Booleana

Los invitamos a conocer nuestras categorías sobre: Ajax, ASP, Bases de Datos, CSS, Javascript, Perl/CGI, PHP, RubyonRails, XHTML y XML para aprender más sobre los diferentes lenguajes de programación para la web.

George Boole (1815–1864)(Lincoln, Reino Unido, 1815 - Ballintemple, actual Irlanda, 1864) Matemático británico. Procedía de una familia venida a menos y tuvo que desestimar la idea de convertirse en monje al verse obligado a mantener a sus padres. A los dieciséis años enseñaba matemáticas en un colegio privado y más tarde fundó uno propio. A los veintecuatro años, tras la publicación de su primer escrito, pudo ingresar en Cambridge, pero desestimó la oferta, de nuevo a causa de sus deberes respecto a su familia. En 1849 le nombraron profesor de matemáticas del Queen’s College, en Cork, donde permaneció el resto de su vida.

El gran descubrimiento de Boole fue aplicar una serie de símbolos a operaciones lógicas y hacer que estos símbolos y operaciones -por elección cuidadosa- tuvieran la misma estructura lógica que el álgebra convencional. En el álgebra de Boole, los símbolos podían manipularse según reglas fijas que producirían resultados lógicos.

En 1854 publicó Investigación sobre las leyes del pensamiento, libro que trataba por completo de la lógica simbólica y su álgebra. La influencia de esta lógica matemática sobre las matemáticas modernas tendría una evolución lenta: si en un primer momento no parecía más que un intrincado juego de palabras, más adelante se vio que era de lo más útil, y hasta completamente indispensable para conseguir la matemática lógica. Boole se casó a la edad de cuarenta años y tuvo cinco hijas, a las que no llegó a ver adolescentes.

La lógica Booleana es el formalismo matemático por medio del cual se llevan al cabo las operaciones que procesa la computadora a través del manejo y control de información eléctrica, por medio de sus transistores. De esta manera puedo decirle que dentro de la enseñanza de la licenciatura en matemáticas, la más longeva de la Facultad, puesto que se imparte desde hace 42 años, al igual que la licenciatura de la enseñanza de las matemáticas, se destaca el papel de este personaje.

¿Podría explicar de qué forma se da esta lógica Booleana?

Su álgebra consiste en un método para resolver problemas de lógica que recurre solamente a los valores binarios 1 y 0 y a tres operadores fundamentales: AND (y), OR (o) y NOT (no). De esta forma se finca la lógica algebraica Booleana la cual ahora encuentra aplicación en la construcción de computadores, circuitos eléctricos, etc.

Para explicar And, podemos hablar del valor del cero, dará evidentemente cero, para lo cual gráficamente se muestran dos compuertas, donde la información fluirá siempre y cuando en ambas haya información, de no ser así la respuesta es no hay información:

Page 13: Lenguajes de Programacion y Algebra Booleana

A and B = C 0 + 0 = 0 0 + 1 = 0 1 + 0 = 0 1 + 1 = 1 Por su parte para el valor de OR, señala que sí en alguna de las entradas hay información pues se determina que sí existe en alguna de las dos compuertas el flujo de datos:

A or B = C 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 1 En cambio para las compuertas del NOT, observamos lo siguiente: se cuenta con una sola entrada de compuerta, la cual niega la entrada de uno. Sí en A hay un cero, lo niega, y al negar al cero, el valor es 1.

not A = B 0 1 1 0

El álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno (falso y verdadero). Un operador binario “ º “ definido en éste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana. 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 qu 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 propósitos 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 símbolo · representa la operación lógica AND. Cuando se utilizen nombres de variables de una sola letra se eliminará el símbolo ·, por lo tanto AB representa la operación lógica AND entre las variables A y B, a ésto también le llamamos el producto entre A y B. - El símbolo “+” representa la operación lógica OR, decimos que A+B es la operación lógica OR entre A y B, también llamada la suma de A y B. - El complemento lógico, negación ó NOT es un operador unitario, en éste texto utilizaremos el símbolo “ ‘ “ para denotar la negación lógica, por ejemplo, A’ denota la operación lógica NOT de A. - Si varios operadores

Page 14: Lenguajes de Programacion y Algebra Booleana

diferentes aparecen en una sola expresión booleana, el resultado de la expresión depende de la procedencia de los operadores, la cual es de mayor a menor, paréntesis, operador lógico NOT, operador lógico AND y operador lógico OR. Tanto el operador lógico AND como el OR son asociativos por la izquierda. Si dos operadores con la misma procedencia están adyacentes, entonces se evalúan de izquierda a derecha. El operador lógico NOT es asociativo por la derecha. Utilizaremos además 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) = (A·B)+(A·C) y A+(B·C) = (A+B)·(A+C).

P5 Para cada valor A existe un valor A’ tal que A·A’ = 0 y A+A’ = 1. Éste valor es el complemento lógico de A.

P6 · y + son ambos asociativos, ésto es, (AB)C = A(BC) y (A+B)+C = A+(B+C).

Es posible probar todos los teoremas del álgebra booleana utilizando éstos postulados, además es buena idea familiarizarse con algunos de los teoremas más importantes de los cuales podemos mencionar los siguientes:

Teorema 1: A + A = A

Teorema 2: A · A = A

Teorema 3: A + 0 = A

Teorema 4: A · 1 = A

Teorema 5: A · 0 = 0

Teorema 6: A + 1 = 1

Teorema 7: (A + B)’ = A’ · B’

Teorema 8: (A · B)’ = A’ + B’

Teorema 9: A + A · B = A

Teorema 10: A · (A + B) = A

Page 15: Lenguajes de Programacion y Algebra Booleana

Teorema 11: A + A’B = A + B

Teorema 12: A’ · (A + B’) = A’B’

Teorema 13: AB + AB’ = A

Teorema 14: (A’ + B’) · (A’ + B) = A’

Teorema 15: A + A’ = 1

Teorema 16: A · A’ = 0

Los teoremas siete y ocho son conocidos como Teoremas de De Morgan en honor al matemático que los descubrió

Álgebra booleana El álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno (falso y verdadero). Un operador binario “ º “ definido en éste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana. 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 qu 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 propósitos 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 símbolo · representa la operación lógica AND. Cuando se utilizen nombres de variables de una sola letra se eliminará el símbolo ·, por lo tanto AB representa la operación lógica AND entre

Page 16: Lenguajes de Programacion y Algebra Booleana

las variables A y B, a ésto también le llamamos el producto entre A y B. - El símbolo “+” representa la operación lógica OR, decimos que A+B es la operación lógica OR entre A y B, también llamada la suma de A y B. - El complemento lógico, negación ó NOT es un operador unitario, en éste texto utilizaremos el símbolo “ ‘ “ para denotar la negación lógica, por ejemplo, A’ denota la operación lógica NOT de A. - Si varios operadores diferentes aparecen en una sola expresión booleana, el resultado de la expresión depende de la procedencia de los operadores, la cual es de mayor a menor, paréntesis, operador lógico NOT, operador lógico AND y operador lógico OR. Tanto el operador lógico AND como el OR son asociativos por la izquierda. Si dos operadores con la misma procedencia están adyacentes, entonces se evalúan de izquierda a derecha. El operador lógico NOT es asociativo por la derecha. Utilizaremos además 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) = (A·B)+(A·C) y A+(B·C) = (A+B)·(A+C).

P5 Para cada valor A existe un valor A’ tal que A·A’ = 0 y A+A’ = 1. Éste valor es el complemento lógico de A.

P6 · y + son ambos asociativos, ésto es, (AB)C = A(BC) y (A+B)+C = A+(B+C).

Es posible probar todos los teoremas del álgebra booleana utilizando éstos postulados, además es buena idea familiarizarse con algunos de los teoremas más importantes de los cuales podemos mencionar los siguientes:

Teorema 1: A + A = A

Teorema 2: A · A = A

Teorema 3: A + 0 = A

Teorema 4: A · 1 = A

Teorema 5: A · 0 = 0

Teorema 6: A + 1 = 1

Teorema 7: (A + B)’ = A’ · B’

Teorema 8: (A · B)’ = A’ + B’

Page 17: Lenguajes de Programacion y Algebra Booleana

Teorema 9: A + A · B = A

Teorema 10: A · (A + B) = A

Teorema 11: A + A’B = A + B

Teorema 12: A’ · (A + B’) = A’B’

Teorema 13: AB + AB’ = A

Teorema 14: (A’ + B’) · (A’ + B) = A’

Teorema 15: A + A’ = 1

Teorema 16: A · A’ = 0

Los teoremas siete y ocho son conocidos como Teoremas de De Morgan en honor al matemático que los descubrió