La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

NOMBRE: ABIGAIL ALEJANDRA PIO LARA

Presentaciones similares


Presentación del tema: "NOMBRE: ABIGAIL ALEJANDRA PIO LARA"— Transcripción de la presentación:

1 NOMBRE: ABIGAIL ALEJANDRA PIO LARA
MATERIA: LENGUAJES Y AUTOMATAS TEMA: RESUMEN DE LA I UNIDAD PROFESOR: M.C. JOSE ANGEL TOLEDO

2 TEORIA DE CONJUNTOS

3 INTRODUCCION Según lo leido en este tema la Teoría de conjuntos, es una rama de las matemáticas a la que el matemático alemán Georg Cantor dio su primer tratamiento formal en el siglo XIX. El concepto de conjunto es uno de los más fundamentales en matemáticas

4 ALGUNAS DEFINICIONES Un conjunto es una agrupación, clase o colección de objetos denominados elementos del conjunto, un conjunto se representa frecuentemente mediante llaves que contienen sus elementos, ya sea de forma explícita, escribiendo todos y cada uno de los elementos, o dando una fórmula, regla o proposición que los describa. Por ejemplo, S1 = {2, 4}; S2 = {2, 4, 6, ..., 2n, ...} = {todos los enteros pares}; S3 = {x | x2- 6x }; S4 = {todos los varones vivos llamados Juan}. S3 se describe como el conjunto de todas las x tales que x2- 6x Subconjuntos y superconjuntos Si todo elemento de un conjunto R pertenece también al conjunto S, R es un subconjunto de S, y S es un superconjunto de R; utilizando símbolos, R S, o S R. Todo conjunto es un subconjunto y un superconjunto de sí mismo. Unión e intersección Si A y B son dos subconjuntos de un conjunto S, los elementos que pertenecen a A, a B o a ambos forman otro subconjunto de S llamado unión de A y B Los elementos comunes a A y B forman un subconjunto de S denominado intersección de A y B . Diferencia y complementario El conjunto de elementos que pertenecen a A pero no a B se denomina conjunto diferencia entre A y B, escrito A - B (y a veces A\B). Si A es un subconjunto del conjunto l, el conjunto de los elementos que pertenecen a l pero no a A, es decir, l - A, se denomina conjunto complementario de A (con respecto a l), lo que se escribe l - A = A' (que también puede aparecer como A, Ã o ~A).

5 ALGEBRA DE CONJUNTOS LPara cualquier conjunto A, B, y C: A ∩ A = A;
A ∩ B = B ∩ A; A ∪ B = B ∪ A; (A ∩ B) ∩ C = A ∩ (B ∩ C); (A ∪ B) ∪ C = A ∪ (B ∪ C); C \ (A ∩ B) = (C \ A) ∪ (C \ B); C \ (A ∪ B) = (C \ A) ∩ (C \ B); C \ (B \ A) = (A ∩ C) ∪ (C \ B); (B \ A) ∩ C = (B ∩ C) \ A = B ∩ (C \ A); (B \ A) ∪ C = (B ∪ C) \ (A \ C); A ⊆ B sí y solamente si A ∩ B = A; A ⊆ B sí y solamente si A ∪ B = B; A ⊆ B sí y solamente si A \ B = Ø; A ∩ B = Ø sí y solamente si B \ A = B; A ∩ B ⊆ A ⊆ A ∪ B; A ∩ {} = Ø; A ∪ {} = A; {} \ A = Ø; A \ {} = A.

6 MULTIPLICACION DE CONJUNTOS
Si A y B son dos conjuntos, el conjunto de todos los posibles pares ordenados de elementos de la forma (a, b), donde a pertenece a A y b pertenece a B, se denomina producto cartesiano de A y B, que se escribe normalmente A × B . CORRESPONDENCIA ENTRE CONJUNTOS Los elementos del conjunto A = {1, 2, 3} se pueden relacionar, emparejar o hacer corresponder con los elementos del conjunto B = {x, y, z} de distintas maneras, de forma que: a todo elemento de B le corresponda uno de A, a todo elemento de A le corresponda uno de B, elementos distintos de un conjunto están emparejados con elementos distintos del otro.

7 DIAGRAMA DE VENN A cada conjunto se le considera encerrado dentro de una curva (plana) cerrada. Los elementos del conjunto considerado pueden ser específicamente dibujados o pueden quedar (implícitamente) sobreentendidos. Los diagramas son empleados, para representar tanto a los conjuntos como a sus operaciones, y constituyen una poderosa herramienta geométrica, desprovista de validez lógica EJEMPLO

8 PRODUCTO CARTESIANO DE CONJUNTOS
Se dice que si A y B son dos conjuntos, el conjunto de todos los posibles pares ordenados de elementos de la forma (a, b), donde a pertenece a A y b pertenece a B, se denomina producto cartesiano de A y B, que se escribe normalmente A × B. Correspondencia entre conjuntos Se dice que existe una correspondencia de conjuntos si los elementos del conjunto A = {1, 2, 3} se pueden relacionar o hacer corresponder mediante una correspondencia f con los del conjunto B = {x, y, z} de modo que a todo elemento de A le corresponda uno, ninguno o varios elementos de B. Como nota importante se debe saber que: Cuando una correspondencia es tal que a cada elemento del primer conjunto le corresponde uno y sólo uno del segundo conjunto, entonces se llama aplicación

9 OPERACIONES CON CONJUNTOS
Unión: Dados dos conjuntos cualesquiera A y B llamamos "Unión" de A y B al conjunto formado por todos los elementos que pertenecen a A o a B. Intersección: Dados dos conjuntos cualesquiera A y B llamamos "Interseccion" de A y B al conjunto formado por todos los elementos que pertenecen a A y pertenecen a B. Diferencia: Dados dos conjuntos cualesquiera A y B llamamos "Diferencia" de A "menos" B al conjunto formado por los elementos que pertenecen a A y no pertenecen a B.

10 LOGICA PROPOSICIONAL

11 INTRODUCCION Se dice que la lógica proposicional trabaja con sentencias u oraciones a las cuales se les puede asociar un valor de verdad (cierto o falso); estas sentencias se conocen como sentencias declarativas o, simplemente, proposiciones pueden existir proposiciones que son simples, así como proposiciones que están construidas por otras proposiciones usando elementos (conectivas lógicas) que las asocian . La lógica proposicional (o cálculo proposicional) tiene el propósito de simbolizar cualquier tipo de razonamiento para su análisis y tratamiento, esta usa sentencias declarativas a las que se puede asociar un valor de verdad (cierto o falso); es decir, usa proposiciones. Ejemplo: P y Q son proposiciones: P : El aguila es un ave Q : La ballena es un mamifero

12 CONECTIVAS LOGICAS La construcción de fórmulas compuestas requiere del uso de elementos que permitan establecer una relación entre los átomos que la forman; estos elementos se conocen como conectivas lógicas. Conectiva Símbolos asociados Negación (No) ~, ¬ , - Conjunción (Y) Ù, &, * Disyunción (O) Ú, |, + Condicional (Si ... entonces) Bicondicional (Si y solo si) « , =

13 Como es posible determinar si una proposición es cierta o falsa, al encontrarse con proposiciones unidas por conectivas lógicas, es necesario conocer cuales son las reglas que se aplican para determinar si la proposición completa es cierta o falsa. P Q ¬ P PÙQ PÚQ P® Q P« Q V F

14 JERARQUIA DE CONECTIVAS
para determinar el valor de verdad de una proposición compuesta, es necesario conocer cuales son las reglas que se aplican para determinar si la proposición completa es cierta o falsa; asimismo, al tener fórmulas con dos o más conectivas, se deben conocer las reglas de precedencia y asociatividad de las conectivas para asegurar que la evaluación es correcta. donde ¬ (negación) es el operador con mayor jerarquía en la secuencia y « (bicondicional) es el operador con el menor peso.

15 INTERPRETACION DE FORMULAS
Una interpretación de una fórmula es una asignación de valores de verdad a un conjunto de átomos; para una fórmula con dos átomos se tienen dos posibles interpretaciones, para una con tres se tienen ocho interpretaciones, y en general para una fórmula con n átomos de tienen 2n interpretaciones. P Q R S P® Q ¬ ( P® Q) RÙS ¬ ( P® Q) ® ( RÙS) V F

16 De la evaluación de una fórmula, se pueden definir los siguientes conceptos
Tautología o fórmula válida: Una fórmula es una tautología si es verdadera para todas sus posibles interpretaciones. Una tautología también se conoce como una fórmula válida. Contradicción, fórmula inconsistente o fórmula insatisfactible: Una fórmula es una contradicción si es falsa para todas sus posibles interpretaciones. Una contradicción también se conoce como una fórmula inconsistente o una fórmula insatisfactible. Fórmula consistente o fórmula satisfactible: Una fórmula que al menos tiene una interpretación verdadera se conoce como una fórmula consistente o satisfactible. Fórmula inválida: Una fórmula es inválida si es falsa para al menos una interpretación

17 FORMULAS EQUIVALENTES
Al evaluar las fórmulas P->Q y ¬ PvQ se observa que todas sus interpretaciones son iguales, por lo que se dice que ambas fórmulas son equivalentes EJEMPLO: P Q ¬ P P® Q ¬ PÚQ V F

18 Ley de equivalencia Fórmula Doble Implicación F«G = (F® G)Ù(G® H) Implicación F® G = ¬ FÚG Distribución FÚ(GÙH) = (FÚG)Ù(FÚH) FÙ(GÚH) = (FÙG)Ú(FÙH) Asociación (FÚG)ÚH = FÚ(GÚH) (FÙG)ÙH = FÙ(GÙH) Complementación FÙ¬ F = Contradicción FÚ¬ F = Tautología ¬ ¬ F = F Conmutación FÚG = GÚF FÙG = GÙF Cero FÚTautología = Tautología FÙContradicción = Contradicción Identidad FÚContradicción = F FÙTautología = F Idempotencia FÚF = F FÙF = F Absorción FÚFÙQ = F FÙ(FÚQ) = F FÚ¬ FÙQ = FÚQ Leyes de Morgan ¬ (FÚQÚH) = ¬ FÙ¬ QÙ¬ H ¬ (FÙQÙH) = ¬ FÚ¬ QÚ¬ H Existen varias equivalencias entre fórmulas de la lógica proposicional, las cuales se conocen como leyes de equivalencia. La tabla 3 muestra estas leyes. Se utiliza el símbolo Tautología para indicar una tautología y el símbolo Contradicción para indicar una contradicción

19 CIRCUITOS LOGICOS Debido a que una proposición puede ser evaluada y resultar solo verdadera o falsa, se puede deducir alguna equivalencia con el álgebra booleana, que maneja solamente dos valores (0 y 1). Las propiedades del cálculo proposicional son equivalentes a las del álgebra desarrollada por Boole. En el álgebra booleana, una proposición es equivalente a una variables, y las conectivas lógicas se utilizan como compuertas lógicas. La figura 1 muestra las compuestas lógicas más representativas de esta álgebra. Los esquemas que resultan de aplicar las compuertas lógicas se conocen como circuitos lógicos.

20 HISTORIA DE LOS LENGUAJES

21 INTRODUCCION Es muy importante, el lenguaje de programación es el medio de comunicación entre el hombre y la máquina. El modelo general de las computadoras, desde que fue esbozado por von Neumann, no ha cambiado mucho, mientras que la invención humana para proponerse nuevos problemas a resolver, usando la computadora, parece no tener límites. Un lenguaje es un conjunto de palabras. Por tanto el conjunto {1,12,123,1234,12345,123456} es un lenguaje sobre el alfabeto compuesto por digitos. De forma similar, la colección de palabras inglesas “correctas” es un lenguaje sobre el alfabeto ingles. Obsérvese que si ∑ es un alfabeto, también es un lenguaje, el formado por todas las cadenas con un único símbolo.

22 En consecuencia, los lenguajes de programación tienen que adaptarse a éstas crecientes necesidades y aumentar la expresividad para poder resolver problemas muy diversos y cada vez más complejos. Además, tienen que ofrecer cierta eficiencia en la ejecución. Es un logro difícil de alcanzar y por lo tanto, se requiere una búsqueda constante de nuevos lenguajes para ello. Aquí se expone un breve panorama de los más importantes tipos de lenguajes de programación.

23 AÑO LENGUAJE INVENTOR DESCRIPCION 1900 BINARIO Bool primer lenguaje 1946 Plankalkul Konrad Zuse creado para jugar al ajedrez 1949 Short Code lenguaje traducido a mano 1950 ASM (ensamblador) lenguaje ensamblador 1951 A-0 Grace Hopper fue el primer compilador 1952 AUTOCODE Alick E. Glennie compilador muy rudimentario 1956 FORTRAN IBM sistema de TRAducción de FORmulas matemáticas COBOL Compilador 1958 ALGOL 58 1960 LISP Interprete orientado a la Inteligencia Artificial 1961 FORTRAN IV IBM sistema de TRAducción de FORmulas matemáticas

24 AÑO LENGUAJE INVENTOR DESCRIPCION 1961 COBOL 61 Extendido 1960 ALGOL 60 Revisado 1964 PASCAL Niklaus Wirth programacion estructurada BASIC Universidad de Dartmouth (california) Beginners All Purpose Symbolic Instruction Code 1965 SNOBOL APL solo anotacion COBOL 65 1966 PL/I FORTRAN 66 IBM sistema de TRAducción de FORmulas matemáticas 1967 SIMULA 67

25 AÑO LENGUAJE INVENTOR DESCRIPCION 1968 ALGOL 68 SNOBOL4 1970 GW-BASIC antiguo y clasico BASIC 1970 APL/360 1972 SMALLTALK Centro de Investigación de Xerox en Palo Alto pequeño y rapido C Laboratorios Bell lenguaje con tipos 1974 COBOL 74 1975 PL /I Lenguaje sencillo 1977 FORTRAN 77 IBM sistema de TRAducción de FORmulas matemáticas 1980s SMALLTALK/V Digitalk 1980 C con clases lenguaje con clases

26 AÑO LENGUAJE INVENTOR DESCRIPCION 1981 PROLOG Ministerio Japonés de Comercio Internacional e Industria (MITI) Lenguaje estandar para la Inteligencia Artificial 1982 ADA Ministerio de Defensa de los EE.UU lenguaje muy seguro 1984 C++ AT&T Bell Laboratories (Bjarne Stroustrup) compilador 1985 CLIPPER compilador para bases de datos QuickBASIC 1.0 Microsoft® compilador de BASIC 1986 QuickBASIC 2.0 soporte de tarjeta gráfica EGA 1987 QuickBASIC 3.0 43 lineas con la tarjeta EGA QuickBASIC 4.0 tarjetas Hercules, VGA

27 AÑO LENGUAJE INVENTOR DESCRIPCION 1987 CLIPPER SUMMER '87 compilador para bases de datos 1988 QuickBASIC 4.5 Microsoft® tarjeta SVGA 1989 QuickBASIC 7.1 ultima version de QuickBASIC ASIC v5.0 interprete tipo QBASIC shareware 1990 VISUAL C++ VISUAL BASICScript lenguaje de script HTML Tim Berners-Lee para internet 1993 XML C. M. Sperberg-McQueen SGML Charles F. Goldfarb

28 AÑO LENGUAJE INVENTOR DESCRIPCION 1990 WML para internet ASP Microsoft® PHP 1995 JAVA Sun Microsystems para internet y proposito general CLIPPER 5.01 compilador para bases de datos GNAT ADA95 Ministerio de Defensa de los EE.UU lenguaje muy seguro FORTRAN 95 IBM sistema de TRAducción de FORmulas matemáticas 1991 VISUAL BASIC 1.0 Microsoft® 1992 VISUAL BASIC 2.0

29 AÑO LENGUAJE INVENTOR DESCRIPCION 1993 VISUAL BASIC 3.0 Microsoft® 1994 VISUAL BASIC 4.0 1995 VISUAL BASIC 5.0 1998 VISUAL BASIC 6.0 1990s C# 2001 VISUAL BASIC .NET La evolución de Visual Basic

30 Los primeros lenguajes de programación surgieron de la idea de Charles Babagge a mediados del siglo XIX.  Consistía en lo que el denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con el colaboro Ada Lovelace, la cual es considerada como la primera programadora de la historia, pues realizo programas para aquella supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación. En 1936, Turing y Post introdujeron un formalismo de manipulación de símbolos (la denominada máquina de Turing) con el que se puede realizar cualquier cómputo que hasta ahora podemos imaginar. Los "Lenguajes Maquina" y los "Lenguajes Ensambladores" (primera y segunda generación)  son dependientes de la maquina. Cada tipo de maquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado. El lenguaje ensamblador es simplemente una representación simbólica del lenguaje maquina asociado, lo cual permite una programación menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecánica subyacente para realizar una programación efectiva en cualquiera de estos niveles lenguajes.  Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés.

31 Lenguajes Imperativos
Lenguajes Imperativos. En este tipo de lenguajes, cuyo origen está ligado a la propia arquitectura de von Neumann, la arquitectura consta de una secuencia de celdas, llamadas memoria, en la cual se pueden guardar en forma codificada, lo mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial una serie de operaciones, principalmente aritméticas y booleanas, llamadas comandos. En general, un lenguaje imperativo ofrece al programador conceptos que se traducen de forma natural al modelo de la máquina. Los lenguajes imperativos más destacados de la historia han sido: FORTRAN, Algol, Pascal, C, Modula-2, Ada. Lenguajes Funcionales.  Una función convierte ciertos datos en resultados. Si supiéramos cómo evaluar una función, usando la computadora, podríamos resolver automáticamente muchos problemas. Así pensaron algunos matemáticos, que no le tenían miedo a la máquina, e inventaron los lenguajes de programación funcionales. Aprovecharon la posibilidad que tienen las funciones para manipular datos simbólicos, y no solamente numéricos, y la propiedad de las funciones que les permite componer, creando de esta manera, la oportunidad para resolver problemas complejos a partir de las soluciones a otros más sencillos. También se incluyó la posibilidad de definir funciones recursivamente. El lenguaje funcional más antiguo, y seguramente el más popular hasta la fecha, es LISP.  En la década de los 80 hubo una nueva ola de interés por los lenguajes funcionales, añadiendo la tipificación y algunos conceptos modernos de modularización y polimorfismo, como es el caso del lenguaje ML.

32 Lenguajes Lógicos.  El conocimiento básico de las matemáticas se puede representar en la lógica en forma de axiomas, a los cuales se añaden reglas formales para deducir cosas verdaderas (teoremas) a partir de los axiomas. Algunos matemáticos, a finales de siglo XX y principios de XXI, encontraron la manera de automatizar computacionalmente el razonamiento lógico que permitió que diera origen a los lenguajes lógicos. También se conoce a estos lenguajes, y a los funcionales, como lenguajes declarativos, porque el programador, parar solucionar un problema, todo lo que tiene que hacer es describirlo vía axiomas y reglas de deducción en el caso de la programación lógica y vía funciones en el caso de la programación funcional. En los lenguajes lógicos se utiliza el formalismo de la lógica para representar el conocimiento sobre un problema y para hacer preguntas que, si se demuestra que se pueden deducir a partir del conocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas. Así se encuentran soluciones a problemas formulados como preguntas. El PROLOG es el primer lenguaje lógico y el más conocido y utilizado. También en este caso, las aplicaciones a la Inteligencia Artificial mantienen el lenguaje vivo y útil. Lenguajes Orientados a Objetos.  A mediados de los años 60 se empezó a vislumbrar el uso de las computadoras para la simulación de problemas del mundo real. Pero el mundo real está lleno de objetos. Así es que a dos noruegos, Dahl y Nygaard, se les ocurrió el concepto de objeto y sus colecciones, llamadas clases de objetos, que permitieron introducir abstracciones de datos a los lenguajes de programación.  A ellos también les debemos el concepto de polimorfismo introducido vía procedimientos virtuales. Todos estos conceptos fueron presentados en el lenguaje Simula 67, desde el año En los años 80 hubo una verdadera ola de propuestas de lenguajes de programación con conceptos de objetos encabezada por Smalltalk, C++, Modula-3, Ada 95 y terminando con Java.

33 Lenguajes Concurrentes, Paralelos y Distribuidos. 
La necesidad de ofrecer concurrencia en el acceso a los recursos computacionales se remonta a los primeros sistemas operativos.  Por ejemplo, mientras un programa realizaba una operación de entrada o salida otro podría gozar del tiempo del procesador para sumar dos números. Cuando los procesadores cambiaron de tamaño y de precio, se abrió la posibilidad de contar con varios procesadores en una máquina y ofrecer el procesamiento en paralelo, es decir, procesar varios programas al mismo tiempo. Esto dio el impulso a la creación de lenguajes que permitían expresar el paralelismo. Finalmente, llegaron las redes de computadoras, que también ofrecen la posibilidad de ejecución en paralelo, pero con procesadores distantes, lo cual conocemos como la programación distribuida. Históricamente encontramos en la literatura soluciones conceptuales y mecanismos tales como: semáforos, regiones críticas, monitores, envío de mensajes (CSP), llamadas a procedimientos remotos (RPC), que posteriormente se incluyeron como partes de los lenguajes de programación en Concurrent Pascal, Modula, Ada, OCCAM, y últimamente en Java.


Descargar ppt "NOMBRE: ABIGAIL ALEJANDRA PIO LARA"

Presentaciones similares


Anuncios Google