nombre: abigail alejandra pio lara materia: lenguajes y automatas tema: resumen de la i unidad

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

Upload: amethyst-randall

Post on 30-Dec-2015

29 views

Category:

Documents


0 download

DESCRIPTION

NOMBRE: ABIGAIL ALEJANDRA PIO LARA MATERIA: LENGUAJES Y AUTOMATAS TEMA: RESUMEN DE LA I UNIDAD PROFESOR: M.C. JOSE ANGEL TOLEDO. TEORIA DE CONJUNTOS. INTRODUCCION. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

NOMBRE:NOMBRE: ABIGAIL ALEJANDRA PIO ABIGAIL ALEJANDRA PIO LARALARA

MATERIA:MATERIA: LENGUAJES Y AUTOMATAS LENGUAJES Y AUTOMATAS

TEMA:TEMA: RESUMEN DE LA I UNIDAD RESUMEN DE LA I UNIDAD

PROFESOR:PROFESOR: M.C. JOSE ANGEL M.C. JOSE ANGEL TOLEDOTOLEDO

Page 2: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD
Page 3: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

INTRODUCCIONINTRODUCCION

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

Page 4: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

ALGUNAS DEFINICIONESALGUNAS DEFINICIONES Un conjunto es una agrupación, clase o colección de objetos denominados Un conjunto es una agrupación, clase o colección de objetos denominados

elementos del conjunto, un conjunto se representa frecuentemente mediante elementos del conjunto, un conjunto se representa frecuentemente mediante llaves que contienen sus elementos, ya sea de forma explícita, escribiendo 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 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 que los describa. Por ejemplo, S1 = {2, 4}; S2 = {2, 4, 6, ..., 2n, ...} = {todos los enteros pares}; S3 = {x | x2- 6x + 11 3}; S4 = {todos los varones vivos los enteros pares}; S3 = {x | x2- 6x + 11 3}; S4 = {todos los varones vivos llamados Juan}. S3 se describe como el conjunto de todas las x tales que x2- llamados Juan}. S3 se describe como el conjunto de todas las x tales que x2- 6x + 11 3.6x + 11 3.

Subconjuntos y superconjuntos Subconjuntos y superconjuntos Si todo elemento de un conjunto R pertenece 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 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 R; utilizando símbolos, R S, o S R. Todo conjunto es un subconjunto y un superconjunto de sí mismo. superconjunto de sí mismo.

Unión e intersecciónUnión e intersección Si A y B son dos subconjuntos de un conjunto S, los 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 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 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 .de S denominado intersección de A y B .

Diferencia y complementario Diferencia y complementario El conjunto de elementos que pertenecen a A 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 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 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 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 complementario de A (con respecto a l), lo que se escribe l - A = A' (que también puede aparecer como A, Ã o ~A). también puede aparecer como A, Ã o ~A).

Page 5: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

ALGEBRA DE CONJUNTOSALGEBRA DE CONJUNTOS LPara cualquier conjunto LPara cualquier conjunto AA, , BB, y , y CC: : AA ∩  ∩ AA =  = AA; ; AA ∪  ∪ AA =  = AA; ; AA \  \ AA = {};  = {}; AA ∩  ∩ BB =  = BB ∩  ∩ AA; ; AA ∪  ∪ BB =  = BB ∪  ∪ AA; ; ((AA ∩  ∩ BB) ∩ ) ∩ CC =  = AA ∩ ( ∩ (BB ∩  ∩ CC); ); ((AA ∪  ∪ BB) ∪ ) ∪ CC =  = AA ∪ ( ∪ (BB ∪  ∪ CC); ); CC \ ( \ (AA ∩  ∩ BB) = () = (CC \  \ AA) ∪ () ∪ (CC \  \ BB); ); CC \ ( \ (AA ∪  ∪ BB) = () = (CC \  \ AA) ∩ () ∩ (CC \  \ BB); ); CC \ ( \ (BB \  \ AA) = () = (AA ∩  ∩ CC) ∪ () ∪ (CC \  \ BB); ); ((BB \  \ AA) ∩ ) ∩ CC = ( = (BB ∩  ∩ CC) \ ) \ AA =  = BB ∩ ( ∩ (CC \  \ AA); ); ((BB \  \ AA) ∪ ) ∪ CC = ( = (BB ∪  ∪ CC) \ () \ (AA \  \ CC); ); AA ⊆  ⊆ BB sí y solamente si sí y solamente si AA ∩  ∩ BB =  = AA; ; AA ⊆  ⊆ BB sí y solamente si sí y solamente si AA ∪  ∪ BB =  = BB; ; AA ⊆  ⊆ BB sí y solamente si sí y solamente si AA \  \ BB = Ø;  = Ø; AA ∩  ∩ BB = Ø sí y solamente si  = Ø sí y solamente si BB \  \ AA =  = BB; ; AA ∩  ∩ BB ⊆  ⊆ AA ⊆  ⊆ A A ∪ ∪ BB; ; AA ∩ {} = Ø;  ∩ {} = Ø; AA ∪ {} =  ∪ {} = AA; ; {} \ {} \ AA = Ø;  = Ø; AA \ {} =  \ {} = AA. .

Page 6: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

MULTIPLICACION DE MULTIPLICACION DE CONJUNTOSCONJUNTOS

Si Si AA y y BB son dos conjuntos, el conjunto de todos los posibles pares son dos conjuntos, el conjunto de todos los posibles pares ordenados de elementos de la forma (ordenados de elementos de la forma (a, ba, b), donde ), donde aa pertenece a pertenece a AA y y bb pertenece a pertenece a B,B, se denomina producto cartesiano de se denomina producto cartesiano de AA y y B,B, que que se escribe normalmente se escribe normalmente AA × × BB . .

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.

Page 7: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

DIAGRAMA DE VENNDIAGRAMA 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

Page 8: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

PRODUCTO CARTESIANO DE PRODUCTO CARTESIANO DE CONJUNTOSCONJUNTOS

Se Se dice que si A y B son dos conjuntos, el conjunto de todos los 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 posibles pares ordenados de elementos de la forma (a, b), donde a pertenece a A y b pertenece a B, se denomina producto cartesiano pertenece a A y b pertenece a B, se denomina producto cartesiano de A y B, que se escribe normalmente A × B. de A y B, que se escribe normalmente A × B.

Correspondencia entre conjuntos Correspondencia entre conjuntos Se dice que existe una Se dice que existe una correspondencia de conjuntos si los elementos del conjunto A = correspondencia de conjuntos si los elementos del conjunto A = {1, 2, 3} se pueden relacionar o hacer corresponder mediante una {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 correspondencia f con los del conjunto B = {x, y, z} de modo que a todo elemento de A le corresponda uno, ninguno o varios todo elemento de A le corresponda uno, ninguno o varios elementos de B. elementos de B.

Como nota importante se debe saber que:Como nota importante se debe saber que: Cuando una Cuando una correspondencia es tal que a cada elemento del primer conjunto le correspondencia es tal que a cada elemento del primer conjunto le corresponde uno y sólo uno del segundo conjunto, entonces se corresponde uno y sólo uno del segundo conjunto, entonces se llama aplicación llama aplicación

Page 9: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

OPERACIONES CON OPERACIONES CON CONJUNTOSCONJUNTOS

Unión:Unión: Dados dos conjuntos cualesquiera A y B llamamos Dados dos conjuntos cualesquiera A y B llamamos "Unión" de A y B al conjunto formado por todos los "Unión" de A y B al conjunto formado por todos los elementos que pertenecen a A o a B.elementos que pertenecen a A o a B.

Intersección: Intersección: Dados dos conjuntos cualesquiera A y B Dados dos conjuntos cualesquiera A y B llamamos "Interseccion" de A y B al conjunto formado por llamamos "Interseccion" de A y B al conjunto formado por todos los elementos que pertenecen a A y pertenecen a B.todos los elementos que pertenecen a A y pertenecen a B.

Diferencia:Diferencia: Dados dos conjuntos cualesquiera A y B Dados dos conjuntos cualesquiera A y B llamamos "Diferencia" de A "menos" B al conjunto formado llamamos "Diferencia" de A "menos" B al conjunto formado por los elementos que pertenecen a A por los elementos que pertenecen a A y no pertenecen a B.y no pertenecen a B.

Page 10: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD
Page 11: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

INTRODUCCIONINTRODUCCION

Se dice que la lógica proposicional trabaja con sentencias u Se dice que la lógica proposicional trabaja con sentencias u oraciones a las cuales se les puede asociar un valor de verdad oraciones a las cuales se les puede asociar un valor de verdad (cierto o falso); estas sentencias se conocen como sentencias (cierto o falso); estas sentencias se conocen como sentencias declarativas o, simplemente, proposiciones pueden existir declarativas o, simplemente, proposiciones pueden existir proposiciones que son simples, así como proposiciones que están proposiciones que son simples, así como proposiciones que están construidas por otras proposiciones usando elementos (conectivas construidas por otras proposiciones usando elementos (conectivas lógicas) que las asocian .lógicas) que las asocian .

La lógica proposicional (o cálculo proposicional) tiene el propósito La lógica proposicional (o cálculo proposicional) tiene el propósito de simbolizar cualquier tipo de razonamiento para su análisis y de simbolizar cualquier tipo de razonamiento para su análisis y tratamiento, esta usa sentencias declarativas a las que se puede tratamiento, esta usa sentencias declarativas a las que se puede asociar un valor de verdad (cierto o falso); es decir, usa asociar un valor de verdad (cierto o falso); es decir, usa proposiciones. Ejemplo: Pproposiciones. Ejemplo: P y  y QQ son proposiciones: son proposiciones:

P : P : El aguila es un aveEl aguila es un ave Q : Q : La ballena es un mamiferoLa ballena es un mamifero

Page 12: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

CONECTIVAS LOGICASCONECTIVAS LOGICAS

La construcción de La construcción de fórmulas compuestas fórmulas compuestas requiere del uso de requiere del uso de elementos que permitan elementos que permitan establecer una relación establecer una relación entre los átomos que la entre los átomos que la forman; estos elementos forman; estos elementos se conocen como se conocen como conectivas lógicas. conectivas lógicas.

Conectiva Símbolos asociados

Negación (No) ~, ¬ , -

Conjunción (Y) , &,

Disyunción (O) , , +

Condicional (Si ... entonces)

Bicondicional (Si y solo si) , =

Page 13: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

Como es posible determinar si una Como es posible determinar si una proposición es cierta o falsa, al proposición es cierta o falsa, al encontrarse con proposiciones encontrarse con proposiciones unidas por conectivas lógicas, es unidas por conectivas lógicas, es necesario conocer cuales son las necesario conocer cuales son las reglas que se aplican para reglas que se aplican para determinar si la proposición determinar si la proposición completa es cierta o falsa.completa es cierta o falsa.

P Q ¬ P PQ PQ P Q P Q

V V F V V V V

V F F F V F F

F V V F V V F

F F V F F V V

Page 14: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

JERARQUIA DE CONECTIVASJERARQUIA DE CONECTIVAS

para determinar el valor de verdad de una proposición para determinar el valor de verdad de una proposición compuesta, es necesario conocer cuales son las reglas que se compuesta, es necesario conocer cuales son las reglas que se aplican para determinar si la proposición completa es cierta o aplican para determinar si la proposición completa es cierta o falsa; asimismo, al tener fórmulas con dos o más conectivas, se falsa; asimismo, al tener fórmulas con dos o más conectivas, se deben conocer las reglas de precedencia y asociatividad de las deben conocer las reglas de precedencia y asociatividad de las conectivas para asegurar que la evaluación es correcta. conectivas para asegurar que la evaluación es correcta.

donde ¬ (negación) es el operador con mayor jerarquía en la donde ¬ (negación) es el operador con mayor jerarquía en la secuencia y « (bicondicional) es el operador con el menor peso. secuencia y « (bicondicional) es el operador con el menor peso.

Page 15: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

INTERPRETACION DE INTERPRETACION DE FORMULASFORMULAS

Una interpretación de una fórmula es una asignación de valores 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 de verdad a un conjunto de átomos; para una fórmula con dos átomos se tienen dos posibles interpretaciones, para una con átomos se tienen dos posibles interpretaciones, para una con tres se tienen ocho interpretaciones, y en general para una tres se tienen ocho interpretaciones, y en general para una fórmula con fórmula con nn átomos de tienen 2 átomos de tienen 2nn interpretaciones. interpretaciones.

P Q R S P Q ¬ ( P Q) RS ¬ ( P Q) ( RS)

V F V V F V V V

Page 16: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

De la evaluación de una fórmula, se pueden definir los De la evaluación de una fórmula, se pueden definir los

siguientes conceptossiguientes conceptos Tautología o fórmula válida:Tautología o fórmula válida: Una fórmula es una tautología Una fórmula es una tautología

si es verdadera para todas sus posibles interpretaciones. si es verdadera para todas sus posibles interpretaciones. Una tautología también se conoce como una fórmula válida. Una tautología también se conoce como una fórmula válida.

Contradicción, fórmula inconsistente o fórmula Contradicción, fórmula inconsistente o fórmula insatisfactible:insatisfactible: Una fórmula es una contradicción si es falsa Una fórmula es una contradicción si es falsa para todas sus posibles interpretaciones. Una contradicción para todas sus posibles interpretaciones. Una contradicción también se conoce como una fórmula inconsistente o una también se conoce como una fórmula inconsistente o una fórmula insatisfactible.fórmula insatisfactible.

Fórmula consistente o fórmula satisfactible:Fórmula consistente o fórmula satisfactible: Una fórmula Una fórmula que al menos tiene una interpretación verdadera se conoce que al menos tiene una interpretación verdadera se conoce como una fórmula consistente o satisfactible. como una fórmula consistente o satisfactible.

Fórmula inválida:Fórmula inválida: Una fórmula es inválida si es falsa para al Una fórmula es inválida si es falsa para al menos una interpretación menos una interpretación

Page 17: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

FORMULAS EQUIVALENTESFORMULAS EQUIVALENTES

Al evaluar las fórmulas P->Q y ¬ PvQ se observa que todas sus Al evaluar las fórmulas P->Q y ¬ PvQ se observa que todas sus interpretaciones son iguales, por lo que se dice que ambas interpretaciones son iguales, por lo que se dice que ambas fórmulas son equivalentes fórmulas son equivalentes

EJEMPLO:EJEMPLO:

P Q ¬ P P Q ¬ PQ

V V F V V

V F F F F

F V V V V

F F V V V

Page 18: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

Existen varias equivalencias entre Existen varias equivalencias entre fórmulas de la lógica fórmulas de la lógica proposicional, las cuales se proposicional, las cuales se conocen como leyes de conocen como leyes de equivalencia. La tabla 3 muestra equivalencia. La tabla 3 muestra estas leyes. Se utiliza el símbolo estas leyes. Se utiliza el símbolo Tautología para indicar una Tautología para indicar una tautología y el símbolo tautología y el símbolo Contradicción para indicar una Contradicción para indicar una contradicción contradicción

Ley de equivalencia Fórmula

Doble Implicación FG = (F G)(G H)

Implicación F G = ¬ FG

Distribución F(GH) = (FG)(FH)

F(GH) = (FG)(FH)

Asociación (FG)H = F(GH)

(FG)H = F(GH)

Complementación F¬ F = Contradicción

F¬ F = Tautología

¬ ¬ F = F

Conmutación FG = GF

FG = GF

Cero FTautología = Tautología

FContradicción = Contradicción

Identidad FContradicción = F

FTautología = F

Idempotencia FF = F

FF = F

Absorción FFQ = F

F(FQ) = F

F¬ FQ = FQ

Leyes de Morgan ¬ (FQH) = ¬ F¬ Q¬ H

¬ (FQH) = ¬ F¬ Q¬ H

Page 19: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

CIRCUITOS LOGICOSCIRCUITOS LOGICOS

Debido a que una proposición puede ser evaluada y resultar Debido a que una proposición puede ser evaluada y resultar solo verdadera o falsa, se puede deducir alguna equivalencia solo verdadera o falsa, se puede deducir alguna equivalencia con el álgebra booleana, que maneja solamente dos valores (0 con el álgebra booleana, que maneja solamente dos valores (0 y 1). Las propiedades del cálculo proposicional son y 1). Las propiedades del cálculo proposicional son equivalentes a las del álgebra desarrollada por Boole. equivalentes a las del álgebra desarrollada por Boole.

En el álgebra booleana, una proposición es equivalente a una En el álgebra booleana, una proposición es equivalente a una variables, y las conectivas lógicas se utilizan como compuertas variables, y las conectivas lógicas se utilizan como compuertas lógicas. La figura 1 muestra las compuestas lógicas más lógicas. La figura 1 muestra las compuestas lógicas más representativas de esta álgebra. Los esquemas que resultan representativas de esta álgebra. Los esquemas que resultan de aplicar las compuertas lógicas se conocen como circuitos de aplicar las compuertas lógicas se conocen como circuitos lógicos. lógicos.

Page 20: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD
Page 21: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

INTRODUCCIONINTRODUCCION

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

Page 22: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

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

Aquí se expone un breve panorama de los Aquí se expone un breve panorama de los más importantes tipos de lenguajes de más importantes tipos de lenguajes de programaciónprogramación..

Page 23: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

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. Glenniecompilador muy rudimentario

1956 FORTRAN IBMsistema de TRAducción de FORmulas matemáticas

1956 COBOLCompilador

1958 ALGOL 58

1960 LISPInterprete orientado a la Inteligencia Artificial

1961 FORTRAN IV IBMsistema de TRAducción de FORmulas matemáticas

Page 24: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

1961 COBOL 61 Extendido

1960 ALGOL 60 Revisado

1964 PASCAL Niklaus Wirth programacion estructurada

1964 BASICUniversidad de Dartmouth (california)

Beginners All Purpose Symbolic Instruction Code

AÑO LENGUAJE INVENTOR DESCRIPCION

1965 SNOBOL

1965 APL solo anotacion

1965 COBOL 65

1966 PL/I

1966 FORTRAN 66 IBMsistema de TRAducción de FORmulas matemáticas

1967 SIMULA 67

Page 25: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

AÑO LENGUAJE INVENTOR DESCRIPCION

1968 ALGOL 68

1968 SNOBOL4

1970 GW-BASIC antiguo y clasico BASIC

1970 APL/360

1972 SMALLTALKCentro de Investigación de Xerox en Palo Alto

pequeño y rapido

1972 C Laboratorios Bell lenguaje con tipos

1974 COBOL 74

1975 PL /I Lenguaje sencillo

1977 FORTRAN 77 IBMsistema de TRAducción de FORmulas matemáticas

1980s SMALLTALK/V Digitalk pequeño y rapido

1980 C con clases Laboratorios Bell lenguaje con clases

Page 26: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

AÑO LENGUAJE INVENTOR DESCRIPCION

1981 PROLOG

Ministerio Japonés de Comercio Internacional e Industria (MITI)

Lenguaje estandar para la Inteligencia Artificial

1982 ADAMinisterio de Defensa de los EE.UU

lenguaje muy seguro

1984 C++

AT&T Bell Laboratories (Bjarne Stroustrup)

compilador

1985 CLIPPERcompilador para bases de datos

1985 QuickBASIC 1.0 Microsoft® compilador de BASIC

1986 QuickBASIC 2.0 Microsoft®soporte de tarjeta gráfica EGA

1987 QuickBASIC 3.0 Microsoft® 43 lineas con la tarjeta EGA

1987 QuickBASIC 4.0 Microsoft® tarjetas Hercules, VGA

Page 27: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

AÑO LENGUAJE INVENTOR DESCRIPCION

1987 CLIPPER SUMMER '87compilador para bases de datos

1988 QuickBASIC 4.5 Microsoft® tarjeta SVGA

1989 QuickBASIC 7.1 Microsoft®ultima version de QuickBASIC

1989 ASIC v5.0interprete tipo QBASIC shareware

1990 VISUAL C++

1990 VISUAL BASICScript Microsoft® lenguaje de script

1990 HTML Tim Berners-Lee para internet

1993 XMLC. M. Sperberg-McQueen

para internet

1993 SGMLCharles F. Goldfarb

para internet

Page 28: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

AÑO LENGUAJE INVENTOR DESCRIPCION

1990 WML para internet

1990 ASP Microsoft® para internet

1990 PHP para internet

1995 JAVASun Microsystems

para internet y proposito general

1995 CLIPPER 5.01compilador para bases de datos

1995 GNAT ADA95Ministerio de Defensa de los EE.UU

lenguaje muy seguro

1995 FORTRAN 95 IBMsistema de TRAducción de FORmulas matemáticas

1991 VISUAL BASIC 1.0 Microsoft®

1992 VISUAL BASIC 2.0 Microsoft®

Page 29: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

AÑO LENGUAJE INVENTOR DESCRIPCION

1993 VISUAL BASIC 3.0 Microsoft®

1994 VISUAL BASIC 4.0 Microsoft®

1995 VISUAL BASIC 5.0 Microsoft®

1998 VISUAL BASIC 6.0 Microsoft®

1990s C#

2001 VISUAL BASIC .NET Microsoft® La evolución de Visual Basic

Page 30: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

Los primeros lenguajes de programación surgieron de la idea de Los primeros lenguajes de programación surgieron de la idea de Charles Babagge a mediados del siglo XIX.  Consistía en lo que el 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 denominaba la maquina analítica, pero que por motivos técnicos no pudo construirse hasta mediados del siglo XX.pudo construirse hasta mediados del siglo XX.

Con el colaboro Ada Lovelace, la cual es considerada como la Con el colaboro Ada Lovelace, la cual es considerada como la primera programadora de la historia, pues realizo programas para primera programadora de la historia, pues realizo programas para aquella supuesta maquina de Babagge, en tarjetas perforadas. aquella supuesta maquina de Babagge, en tarjetas perforadas. Como la maquina no llego nunca a construirse, los programas de Como la maquina no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un punto de partida de la programación.un punto de partida de la programación.

En 1936, Turing y Post introdujeron un formalismo de manipulación En 1936, Turing y Post introdujeron un formalismo de manipulación de símbolos (la de símbolos (la denominada máquina de Turingdenominada máquina de Turing) con el que se puede ) con el que se puede realizar cualquier cómputo que hasta ahora podemos imaginar. Los realizar cualquier cómputo que hasta ahora podemos imaginar. Los ""Lenguajes MaquinaLenguajes Maquina" y los "" y los "Lenguajes EnsambladoresLenguajes Ensambladores" (primera y " (primera y segunda generación)  son dependientes de la maquina. Cada tipo de segunda generación)  son dependientes de la maquina. Cada tipo de maquina, tal como VAX de digital, tiene su propio lenguaje maquina maquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado. El lenguaje distinto y su lenguaje ensamblador asociado. El lenguaje ensamblador es simplemente una representación simbólica del ensamblador es simplemente una representación simbólica del lenguaje maquina asociado, lo cual permite una programación lenguaje maquina asociado, lo cual permite una programación menos tediosa que con el anterior. Sin embargo, es necesario un menos tediosa que con el anterior. Sin embargo, es necesario un conocimiento de la arquitectura mecánica subyacente para realizar conocimiento de la arquitectura mecánica subyacente para realizar una programación efectiva en cualquiera de estos niveles lenguajes.una programación efectiva en cualquiera de estos niveles lenguajes.

  Los lenguajes de alto nivel son normalmente fáciles de aprender Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como porque están formados por elementos de lenguajes naturales, como el inglés.el inglés.

Page 31: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

Lenguajes Imperativos.Lenguajes Imperativos. En este tipo de lenguajes, cuyo origen En este tipo de lenguajes, cuyo origen está ligado a la propia arquitectura de von Neumann, la está ligado a la propia arquitectura de von Neumann, la arquitectura consta de una secuencia de celdas, llamadas arquitectura consta de una secuencia de celdas, llamadas memoria, en la cual se pueden guardar en forma codificada, lo memoria, en la cual se pueden guardar en forma codificada, lo mismo datos que instrucciones; y de un procesador, el cual es mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de manera secuencial una serie de operaciones, capaz de ejecutar de manera secuencial una serie de operaciones, principalmente aritméticas y booleanas, llamadas comandos. En principalmente aritméticas y booleanas, llamadas comandos. En general, un lenguaje imperativo ofrece al programador conceptos general, un lenguaje imperativo ofrece al programador conceptos que se traducen de forma natural al modelo de la máquina. Los que se traducen de forma natural al modelo de la máquina. Los lenguajes imperativos más destacados de la historia han sido: lenguajes imperativos más destacados de la historia han sido: FORTRAN, Algol, Pascal, C, Modula-2, AdaFORTRAN, Algol, Pascal, C, Modula-2, Ada. .

Lenguajes Funcionales.Lenguajes Funcionales.    Una función convierte ciertos datos en Una función convierte ciertos datos en resultados. Si supiéramos cómo evaluar una función, usando la resultados. Si supiéramos cómo evaluar una función, usando la computadora, podríamos resolver automáticamente muchos computadora, podríamos resolver automáticamente muchos problemas. Así pensaron algunos matemáticos, que no le tenían problemas. Así pensaron algunos matemáticos, que no le tenían miedo a la máquina, e inventaron los lenguajes de programación miedo a la máquina, e inventaron los lenguajes de programación funcionales. funcionales.

Aprovecharon la posibilidad que tienen las funciones para Aprovecharon la posibilidad que tienen las funciones para manipular datos simbólicos, y no solamente numéricos, y la manipular datos simbólicos, y no solamente numéricos, y la propiedad de las funciones que les permite componer, creando de propiedad de las funciones que les permite componer, creando de esta manera, la oportunidad para resolver problemas complejos a esta manera, la oportunidad para resolver problemas complejos a partir de las soluciones a otros más sencillos. También se incluyó partir de las soluciones a otros más sencillos. También se incluyó la posibilidad de definir funciones recursivamente. la posibilidad de definir funciones recursivamente.

El lenguaje funcional más antiguo, y seguramente el más popular El lenguaje funcional más antiguo, y seguramente el más popular hasta la fecha, es hasta la fecha, es LISPLISP.  En la década de los 80 hubo una nueva ola .  En la década de los 80 hubo una nueva ola de interés por los lenguajes funcionales, añadiendo la tipificación de interés por los lenguajes funcionales, añadiendo la tipificación y algunos conceptos modernos de modularización y polimorfismo, y algunos conceptos modernos de modularización y polimorfismo, como es el caso del lenguaje como es el caso del lenguaje ML.ML.

Page 32: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

Lenguajes Lógicos. Lenguajes Lógicos.  El conocimiento básico de las matemáticas se puede 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 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. 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 Algunos matemáticos, a finales de siglo XX y principios de XXI, encontraron la manera de automatizar computacionalmente el razonamiento lógico que manera de automatizar computacionalmente el razonamiento lógico que permitió que diera origen a los lenguajes lógicos.permitió que diera origen a los lenguajes lógicos.

También se conoce a estos lenguajes, y a los funcionales, como lenguajes También se conoce a estos lenguajes, y a los funcionales, como lenguajes declarativos, porque el programador, parar solucionar un problema, todo lo 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 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 de la programación lógica y vía funciones en el caso de la programación funcional. funcional.

En los lenguajes lógicos se utiliza el formalismo de la lógica para representar el 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 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 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 de las reglas de deducción estipuladas, se vuelven teoremas. Así se encuentran soluciones a problemas formulados como preguntas.encuentran soluciones a problemas formulados como preguntas.

El El PROLOGPROLOG es el primer lenguaje lógico y el más conocido y utilizado. También 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 en este caso, las aplicaciones a la Inteligencia Artificial mantienen el lenguaje vivo y útil. vivo y útil.

Lenguajes Orientados a Objetos.  Lenguajes Orientados a Objetos. 

A mediados de los años 60 se empezó a vislumbrar el uso de las computadoras 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 para la simulación de problemas del mundo real. Pero el mundo real está lleno de objetos. de objetos.

Así es que a dos noruegos, Dahl y Nygaard, se les ocurrió el concepto de objeto 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 y sus colecciones, llamadas clases de objetos, que permitieron introducir abstracciones de datos a los lenguajes de programación.  A ellos también les abstracciones de datos a los lenguajes de programación.  A ellos también les debemos el concepto de polimorfismo introducido vía procedimientos virtuales.debemos el concepto de polimorfismo introducido vía procedimientos virtuales.

Todos estos conceptos fueron presentados en el lenguaje Simula 67, desde el Todos estos conceptos fueron presentados en el lenguaje Simula 67, desde el año 1967. En los años 80 hubo una verdadera ola de propuestas de lenguajes año 1967. En los años 80 hubo una verdadera ola de propuestas de lenguajes de programación con conceptos de objetos encabezada por de programación con conceptos de objetos encabezada por Smalltalk, C++, Smalltalk, C++, Modula-3, Ada 95Modula-3, Ada 95 y terminando con y terminando con JavaJava..

Page 33: NOMBRE:  ABIGAIL ALEJANDRA PIO LARA MATERIA:  LENGUAJES Y AUTOMATAS TEMA:  RESUMEN DE LA I UNIDAD

Lenguajes Concurrentes, Paralelos y Distribuidos.Lenguajes Concurrentes, Paralelos y Distribuidos.    La necesidad de ofrecer concurrencia en el acceso a los recursos La necesidad de ofrecer concurrencia en el acceso a los recursos

computacionales se remonta a los primeros sistemas operativos. computacionales se remonta a los primeros sistemas operativos.  Por ejemplo, mientras un programa realizaba una operación de  Por ejemplo, mientras un programa realizaba una operación de entrada o salida otro podría gozar del tiempo del procesador para entrada o salida otro podría gozar del tiempo del procesador para sumar dos números. sumar dos números.

Cuando los procesadores cambiaron de tamaño y de precio, se Cuando los procesadores cambiaron de tamaño y de precio, se abrió la posibilidad de contar con varios procesadores en una abrió la posibilidad de contar con varios procesadores en una máquina y ofrecer el procesamiento en paralelo, es decir, procesar máquina y ofrecer el procesamiento en paralelo, es decir, procesar varios programas al mismo tiempo. Esto dio el impulso a la varios programas al mismo tiempo. Esto dio el impulso a la creación de lenguajes que permitían expresar el paralelismo. creación de lenguajes que permitían expresar el paralelismo. Finalmente, llegaron las redes de computadoras, que también Finalmente, llegaron las redes de computadoras, que también ofrecen la posibilidad de ejecución en paralelo, pero con ofrecen la posibilidad de ejecución en paralelo, pero con procesadores distantes, lo cual conocemos como la programación procesadores distantes, lo cual conocemos como la programación distribuida. distribuida.

Históricamente encontramos en la literatura soluciones Históricamente encontramos en la literatura soluciones conceptuales y mecanismos tales como: semáforos, regiones conceptuales y mecanismos tales como: semáforos, regiones críticas, monitores, envío de mensajes (CSP), llamadas a críticas, monitores, envío de mensajes (CSP), llamadas a procedimientos remotos (RPC), que posteriormente se incluyeron procedimientos remotos (RPC), que posteriormente se incluyeron como partes de los lenguajes de programación en como partes de los lenguajes de programación en Concurrent Concurrent Pascal, Modula, Ada, OCCAM,Pascal, Modula, Ada, OCCAM, y últimamente en y últimamente en Java.Java.