SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Tema 1
Introducción
Índice
1.1. Definiciones.
1.2 Un poco de historia
1.3. Lenguajes, Gramáticas y Autómatas
Índice
1.1. Definiciones.
1.2 Un poco de historia
1.3. Lenguajes, Gramáticas y Autómatas
1.1 Definiciones
• Lenguaje:
– Forma de representar información basada en un conjunto
finito de signos o símbolos
• Alfabeto:
– Conjunto de símbolos que forman parte de un lenguaje
• Sentencia o palabra o fórmula bien formada:
– Secuencia de símbolos correcta.
• Lenguaje formal:
– Lenguaje descrito mediante un formalismo matemático
1.1 Definiciones
• Computar:
– Procesar información
• Modelo de computación
– Máquina abstracta que toma como entrada una secuencia
de símbolos y los procesa
– Dependiendo del modelo, el resultado del cómputo
puede ser :
• Una secuencia de acciones
• Una salida expresada en un cierto lenguaje
• Una respuesta de aceptación o rechazo de la entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Informática:
– Ciencia aplicada que abarca el estudio y aplicaciones del
tratamiento automático de la información
• Informática teórica:
– Disciplina que estudia las capacidades de los modelos de
computación y sus límites, así como el tipo de problemas que pueden
tratar y la eficiencia con la que pueden ser tratados.
Índice
1.1. Definiciones.
1.2 Un poco de historia
1.3. Lenguajes, Gramáticas y Autómatas
1.2 Un poco de historia
• Lógica matemática
Friedrich Ludwig Gottlob Frege
– Nacido en Wismar (Alemania) en 1848
– Muerto en Bad Kleinen en 1945
– Profesor en la Universidad de Jena
– En 1879 publicó Conceptografía (Begriffsschrift)
– Desarrollo de la lógica de primer orden
(operadores and, or, not, implicación, para-todo, existe)
– La notación que utilizaba era bastante complicada
1.2 Un poco de historia
• Lógica matemática
Giuseppe Peano
– Nacido en Spinetta (Italia) en 1858
– Muerto en Turín e 1932
– Profesor en la Universidad de Turín
y en la Academia Militar Real
– Matemático y filósofo, propuso la notación actual de la
lógica y estudió los principios de la matemática.
– Formulario, enciclopedia con todas las fórmulas y
teoremas conocidos en matemáticas
1.2 Un poco de historia
• Lógica matemática
Bertrand Russell (1872-1970)
– Conoce a Peano en el congreso de Filosofía
de París (1900)
– Publica Principia Mathematica en 1910, 1912,
1913.
Alfred North Whitehead (1861-1947)
– Profesor en las universidades de Londres,
Cambridge y Harvard
– Fue profesor de Russell y escribió con él los
Principia Mathematica
Teoría de Autómatas y Lenguajes Formales
1.2 Un poco de historia
• Lógica matemática
David Hilbert (1862 – 1943)
– Profesor en la Universidad de Gottingen
– El matemático más importante del s. XX.
– Trabajos en análisis funcional, geometría,
fundamentos de física cuántica y de relatividad
general, lógica…
– Axiomatización de la geometría. Problemas de Hilbert.
– Publica en 1928 Principios de lógica teórica
– Problema de la decisión: descubrir un método general para
decidir si una fórmula lógica es verdadera o falsa
1.2 Un poco de historia
• Lógica matemática
Kurt Gödel (1906 – 1978)
– Profesor en Viena y en Princeton
– Publica en 1931 el artículo Sobre proposiciones
formalmente indecidibles de Principia Mathematica y
sistemas relacionados
– Teorema de incompletitud:
“En cualquier formalización consistente de las matemáticas
que sea lo bastante fuerte para definir el concepto de números
naturales, se puede construir una afirmación que ni se puede
demostrar ni se puede refutar dentro de ese sistema.”
1.2 Un poco de historia
• Computabilidad
Alan Mathison Turing (1912 – 1954)
– Estudia en Cambridge y en Princeton (con A. Church)
– Profesor en Cambridge y U. Manchester
– Participa en la ruptura del cifrado de la máquina
Enigma
– Publica en 1936 el artículo Los números computables, con
una aplicación al Entscheidungsproblem. Nacimiento de
la Informática Teórica
– Inventa las máquinas de Turing
1.2 Un poco de historia
• Computabilidad
Alonzo Church (1903 – 1995)
– Profesor en Princeton
– Desarrolla el cálculo lambda, basado en funciones
recursivas. (Base de los lenguajes funcionales)
– En 1936 demuestra la existencia de problemas
indecidibles para el cálculo lambda.
– Entre 1938 y 1939 trabaja con A. Turing
– Tesis de Church-Turing: cualquier modelo computacional
existente tiene las mismas capacidades algorítmicas, o un
subconjunto, de las que tiene una máquina de Turing.
1.2 Un poco de historia
• Computabilidad
Stephen Kleene (1909 - 1994)
– Profesor de la U. Wisconsin
– Discípulo de A. Church. Estudia la teoría de
funciones recursivas.
– Desarrolla las expresiones regulares
– Numerosos estudios en Teoría de Autómatas
1.2 Un poco de historia
• Teoría de autómatas
Claude Elwood Shannon (1916 – 2001)
– Estudia en la U. Michigan. Profesor en el Instituto
de Tecnología de Massachusetts (MIT)
– En 1938 publica A Symbolic Analysis of Relay and
Switching Circuits. Aplicación de la lógica
matemática a los circuitos electrónicos.
– En 1948 publica Una Teoría Matemática de la
Comunicación. Nacimiento de la Teoría de la
Información
– En 1956 edita, junto a McCarthy, Automata Studies,
sobre máquinas secuenciales y autómatas finitos.
1.2 Un poco de historia
• Teoría de autómatas
Autómatas Finitos Deterministas
– D. A. Huffman, The synthesis of sequential switching circuits, J.
Franklin Inst., vol. 257, (1954)
– G. H. Mealy, A method for synthesizing sequential circuits, Bell
System Technical Journal vol. 34 (1955)
– E.F. Moore, Gedanken experiments on sequential machines, en
Automata Studies (1956)
Autómatas Finitos No Deterministas
– M.O. Rabin y D. Scott, Finite automata and their decision problems,
IBM J. Research and Development, vol. 3 (1959)
1.2 Un poco de historia
• Lingüística
Noam Chomsky (1928 - )
– Profesor del Massachusetts Institute of
Technology (MIT)
– Conocido por su activismo político
– Doctorado en 1955 en la U. Harvard con la tesis Estructura
lógica de la teoría lingüística (que no se publicó hasta 1975)
– En 1957 publica Estructuras sintácticas en el que aparece la
clasificación de gramáticas (Jerarquía de Chomsky)
1.2 Un poco de historia
• Teoría de autómatas
Autómatas de Pila
– A. G. Oettinger, Automatic syntactic analysis and the pushdown
store, Proc. Symposia on Applied Math. (1961).
– M.P. Schutzenberger, On context-free languages and pushdown
automata, Information and Control, vol. 6 (1963)
– P.C. Fisher, On computability by certain classes of restricted Turing
machines, Proc. 4th Annl. Symposium on Switching Circuit
Theory and Logical Design (1963)
– D.E. Knuth, On the translation of languages from left to right,
Information and Control, vol. 8 (1965).
Índice
1.1. Definiciones.
1.2 Un poco de historia
1.3. Lenguajes, Gramáticas y Autómatas
Índice
1.1. Definiciones.
1.2 Un poco de historia
1.3. Lenguajes, Gramáticas y Autómatas
1.3 Lenguajes, Gramáticas y
Autómatas
Desde su nacimiento, la teoría de autómatas ha encontrado
aplicación en muy diversos campos. Esto se debe a que resulta muy
natural considerar, tanto los autómatas como las máquinas
secuenciales, sistemas capaces de transmitir (procesar) información.
En definitiva, esto es equiparable a cualquier sistema existente en la
naturaleza, que recibe señales de su entorno, reacciona ante ellas y
emite así nuevas señales al ambiente que le rodea.
1.3 Lenguajes, Gramáticas y
Autómatas
• Algunos de los campos donde ha encontrado aplicación la teoría de
autómatas son:
• Teoría de la Comunicación
• Teoría de Control
• Lógica de los circuitos secuenciales
• Ordenadores
• Teoría lógica de los sistemas evolutivos y auto-reproductivos
• Reconocimiento de patrones
• Fisiología del sistema nervioso
• Traducción automática de lenguajes
• etc
1.3 Lenguajes, Gramáticas y
Autómatas
Chomsky clasificá los lenguajes formales de acuerdo a una
jerarquía de cuatro niveles, conteniendo cada uno de todos
los siguientes.
– El lenguaje más general será, pues, de tipo 0, y no posee
restricción alguna. Este conjunto engloba el conjunto de todos
los lenguajes posibles.
– En el segundo nivel aparecen los lenguajes de tipo 1, también
llamados lenguajes “sensibles al contexto”, al permitir que el
“papel” de las palabras dependa de la posición en que
aparezcan (es decir, del contexto). La mayor parte de los
lenguajes de ordenador pertenecen a este tipo.
1.3 Lenguajes, Gramáticas y
Autómatas
– En tercer lugar aparecen los lenguajes de tipo 2, o lenguajes
“independientes del contexto”. En ellas el significado de una
palabra es independiente del lugar que ocupa en la frase.
– Finalmente, los lenguajes de tipo 3, o lenguajes regulares, son los
que presentan una estructura más sencilla.
1.3 Lenguajes, Gramáticas y
Autómatas
• Cada uno de estos tipos de máquinas es capaz de resolver
problemas cada vez más complicados, hasta llegar a las máquinas de
Turing.
Como descubrió Turing, existen una serie de problemas que no son
computacionalmente abordables y que reciben el nombre de
“problemas no enumerables”.
Lenguajes Tipo 0
Lenguajes Tipo 1
Lenguajes Tipo 2
Lenguajes Tipo 3
Máquinas de Turing
Autómatas acotados
linealmente
Autómatas a pila
Autómatas finitos
Problemas recursivamente
enumerables
Expresiones regulares
• Resulta curioso observar como paralelamente a la jerarquía de
lenguajes aparece otra de máquinas abstractas equivalentes, como se
observa en el esquema siguiente :
Problemas no
enumerables
1.3 Lenguajes, Gramáticas y
Autómatas
• La relación estrecha entre la Teoría de Lenguajes Formales y
la Teoría de Autómatas se pone de manifiesto en este tema.
Se establece un isomorfismo entre ambas, estableciendo una
conexión entre la clase de lenguajes generados por ciertos
tipos de gramáticas y la clase de lenguajes reconocibles por
ciertas máquinas.
1.1 Definiciones
• Lenguaje:
– Forma de representar información basada en un conjunto
finito de signos o símbolos
• Alfabeto:
– Conjunto de símbolos que forman parte de un lenguaje
• Sentencia o palabra o fórmula bien formada:
– Secuencia de símbolos correcta.
• Lenguaje formal:
– Lenguaje descrito mediante un formalismo matemático
Gramáticas Lenguajes Máquinas
Sin restricciones o
De Tipo0
Sin restricciones o
De Tipo0
Máquina de Turing
Sensible al contexto
O de Tipo1
Sensible al contexto
O de Tipo1
Autómata
Linealmente acotado
Libre de contexto o
De Tipo2
Libre de contexto o
de Tipo2
Autómata con pila
Regular o de Tipo3 Regular o de Tipo3 Autómata Finito
1.3 Lenguajes, Gramáticas y
Autómatas
1.3 Lenguajes, Gramáticas y
Autómatas
• Gran parte del temario se basará en problemas que tienen que ver con el
procesamiento del lenguaje, por tanto, se repasa la terminología y algunos de los
conceptos asociados al proceso de traducción.
– Se establecen los términos de lenguaje formal, definidos por reglas preestablecidas,
y de lenguaje natural, no cuentan con reglas gramaticales formales.
– Así, el estudio de los lenguajes se reduce al análisis de la estructura de las frases
(Gramática) y del significado de las mismas (Semántica).
– A su vez, la Gramática puede analizar las formas que toman las palabras (Morfología),
su combinación para formar frases correctas (Sintaxis), y las propiedades del lenguaje
hablado (Fonética) (única no aplicable a los lenguajes de ordenador).
– Para realzar el papel de la gramática en el proceso de traducción se indican los
componentes básicos de que consta compilador para un determinado lenguaje de
programación: análisis léxico, análisis sintáctico y generación de código.
Teoría de Autómatas y Lenguajes formales es un “repaso” a la
informática teórica.
La informática teórica: se ha desarrollado con base a la confluencia de
campos en aparencia muy distintos:
Investigación acerca de Fundamentos Matemáticos,
Teoría de Máquinas,
Lingüística, …
Ciencia multidisciplinar que se apoya en que los mismos fenómenos
pueden actuar y servir de fundamento en áreas totalmente
desconectadas (aparentemente).
Un autómata puede describir de forma formal el funcionamiento
de un sistema
Ejemplo: interruptor
off oninicio
pulsar
pulsar
1.4 Autómatas / Máquinas secuenciales
Un autómata es un modelo abstracto de una computadora digital
• Lee símbolos en la entrada
• Produce símbolos en la salida
• Tiene una unidad de control que puede estar en uno de sus
posibles estados internos
• Puede cambiar de los estados internos en función de la entrada
• Puede tener algún tipo de memoria
Autómatas transductores / generadores / aceptadores
Salida
Memoria
Unidad de
Control
1.4 Máquinas secuenciales
Entrada
Cualquier comunicación se realiza mediante cadenas de símbolos
que corresponden a un lenguaje.
Lenguajes son conjuntos de cadenas de símbolos (palabras,
oraciones, textos o frases)
El estudio de los lenguajes se reduce, básicamente, a:
Sintaxis: (gramática)
define las secuencias de símbolos que forman cadenas válidas de
un lenguaje
Gramática: Descripción formalizada de las oraciones de un lenguaje.
Una gramática genera o describe un lenguaje.
Semántica:
significado de las cadenas que componen un lenguaje
1.5 Lenguajes y Gramáticas
Ejemplo 1:
Semántica:
A es un número natural.
Diferente sintaxis en diferentes lenguajes:
A is a natural number.
A : Natural;
0100000100000001
1.5 Lenguajes y Gramáticas
1.5 Lenguajes y Gramáticas
Ejemplo 2:
Sintaxis:
if_statement ::= if condition then sequence_of_statement {elsif
condition then sequence_of_statements} [else
sequence_of_statements] end if;
Semántica:
Si se cumple <condition> entonces haz lo que viene definido por
<sequence_of_statements>. En caso contrario ...
Cadena del lenguaje:
if Line_Too_Short then raise Layout_Error; elsif Line_Full then
New_Line; Put(Item); else Put(Item); end if;
1.5 Lenguajes y Gramáticas
La Teoría de Lenguajes Formales resultó tener una relación inmediata y
directa con la Teoría de Máquinas Abstractas.
Se establecieron correspondencias (isomorfismos) entre ellas.
Se puede describir el funcionamiento de sistemas mediante
gramáticas → lenguajes de programación
Chomsky clasificó de las gramáticas en diferentes tipos:
Lenguajes del mismo tipo tienen propiedades en común
Según el tipo de lenguaje, existen diferentes algoritmos que permiten
comprobar la sintaxis de textos.
1.1 Definiciones
• Computar:
– Procesar información
• Modelo de computación
– Máquina abstracta que toma como entrada una secuencia
de símbolos y los procesa
– Dependiendo del modelo, el resultado del cómputo
puede ser :
• Una secuencia de acciones
• Una salida expresada en un cierto lenguaje
• Una respuesta de aceptación o rechazo de la entrada
¿Cómo se puede formalizar el concepto de realizar un cálculo?
1937 – Alan Mathison Turing: “On computable numbers with an application to
the Entscheidungsproblem”
Definición de la Máquina de Turing como dispositivo matemático abstracto de
cálculo que introduce el concepto de “algoritmo”.
Origen “oficial” de la informática teórica.
Precursora abstracta de las máquinas de calcular automáticas.
La Máquina de Turing es un modelo abstracto de los ordenadores actuales.
Demuestra la existencia de problemas irresolubles, los que ninguna máquina de
Turing (y ningún ordenador) puede resolver o calcular. (Teoría de la
Computabilidad).
1.5 Máquinas abstractas y algoritmos
Lenguajes Formales y Gramáticas
Lenguajes regulares
Autómatas Finitos
Lenguajes Independientes del Contexto
Autómatas a Pila
Máquinas de Turing
Computabilidad
Actividad 1: Conceptos básicos
1.¿ Qué es un lenguaje de programación ?
2.Abstracciones
3.Paradigmas de computación
4.Definición del lenguaje
5.Traducción del lenguaje
6.Historia
7.Preguntas
1.6 ¿QUÉ ES UN LP?
Computación
Máquina Turing, tesis de Church
Legibilidad por parte de la máquina
Legibilidad por parte del ser humano
Definición: Un lenguaje de programación es un
sistema notacional para describir computaciones de
una forma legible tanto para la máquina como para el
ser humano.
1.6 CONCEPTOS
Los Lenguajes de programación son aplicaciones
específicas diseñadas para crear otras aplicaciones o
programas. Son programas para crear programas.
Se basan en un sistema de instrucciones preestablecidas
que indican al ordenador lo que debe realizar
Son códigos integrados compuestos por un vocabulario,
con una sintaxis y una semántica que permite elaborar
infinitas secuencias válidas de tareas e instrucciones
Los lenguaje de programación permiten crear
programas específicos que ofrezcan solución a
programas particulares
Para llevar a cabo cualquier tarea, el ordenador necesita
tener información sobre la tarea y un método para
ejecutarla
1.6 CONCEPTOS
Instrucción: Expresión formada por números, operaciones y letras que
indica, en un computador, la operación que debe realizar y los datos
correspondientes.
Algoritmo: Conjunto ordenado y finito de operaciones que permite hallar la
solución de un problema.
Programa: Conjunto de instrucciones en un lenguaje dado que indica a un
ordenador cómo resolver un problema. De manera más informal:
Algoritmo: Secuencia de instrucciones no ambigua que resuelve una tarea concreta
en un tiempo finito.
Programa: Codificación de uno o más algoritmos en un lenguaje de programación.
Procesar: Someter datos a una serie de operaciones programadas.
Al proceso de traducir o codificar un algoritmo a forma de programa se le
conoce con el nombre de implementación.
Proceso de desarrollo de software: Proceso de trabajo que debe
seguir un programador a la hora de construir un programa o
aplicación que resuelva cierto problema.
Se divide en:
Definición del problema. Implica el desarrollo y clarificación exacta de las
especificaciones del problema, de los datos de entrada y de los datos de salida.
Diseño del algoritmo. Describe la secuencia ordenada de pasos que conducen a la
solución de un problema dado.
Implementación. Codificar el algoritmo como un programa en un lenguaje de
programación.
Ejecución y validación del programa en el ordenador.
Documentación. Tanto la definición del problema como el algoritmo y el programa
deben formar parte de la documentación. Su contenido dependerá de a quién va
dirigida.
Mantenimiento del programa. Los programas pueden quedarse anticuados,
debiendo ser revisados, ampliados y modificados.
2. Lenguajes de Programación
Lenguaje de Programación: Conjunto de reglas, símbolos
y palabras especiales utilizados para construir un
programa de forma que pueda ser entendido por el
ordenador.
Se clasifican en:
Lenguajes Máquina.
Lenguajes de Bajo Nivel o Ensambladores.
Lenguajes de Alto Nivel.
Lenguaje Máquina.
Es aquél que entiende directamente el ordenador ya que sus instrucciones son
secuencias binarias. También se le conoce como código binario.
Dificultad de desarrollo, verificación y puesta a punto de programas.
El código desarrollado no es portable.
Lenguajes de Bajo Nivel o Ensamblador.
Está compuesto por las instrucciones del lenguaje máquina escritas mediante
nemotécnicos. Es más fácil de utilizar que el anterior.
El programa sigue siendo dependiente de la máquina.
Requiere una fase de traducción del código fuente al programa objeto.
Lenguajes de Alto Nivel.
Son los más utilizados por los programadores.
Mayor facilidad en el desarrollo, verificación y mantenimiento de los
programas.
Los programas desarrollados son portables.
Requiere una fase de traducción del código fuente al programa objeto.
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.1 Definiciones
• Autómata:
– Modelo de computación
– Maquina de estados
– El funcionamiento de la máquina se basa en transiciones
de estados
– Las transiciones están provocadas por la lectura de los
símbolos de entrada
1.13 PREGUNTAS
Clasifica los siguientes lenguajes (C, Ada, C++, Java, LISP,
Prolog, Visual Basic, JavaScript, C#, PHP) con base a :
Paradigma
tipos de traductor (compilador, interprete, seudointérprete)
Propiedades estáticas y dinámicas
Eficiencia
Extraed conclusiones de esta clasificación
Evalua los lenguajes del punto anterior respecto a las
características del punto 1.8 y 1.9
Extrae conclusiones de las dos clasificaciones

Más contenido relacionado

La actualidad más candente

Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoJesús E. CuRias
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistemaIsrael Rey
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)marianela0393
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosJesús Navarro
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientosaaronastorga4
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwarepaoaboytes
 

La actualidad más candente (20)

Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
 
Modelado del sistema
Modelado del sistemaModelado del sistema
Modelado del sistema
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidos
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientos
 
Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
 

Similar a Unidad1 Lenguajes y automatas

investigacion introduccion a los lenguajes y automatas
investigacion introduccion a los lenguajes y automatasinvestigacion introduccion a los lenguajes y automatas
investigacion introduccion a los lenguajes y automatasAnel Sosa
 
Qué es la teoría de autómatas
Qué es la teoría de autómatasQué es la teoría de autómatas
Qué es la teoría de autómatasEnrique Garcia
 
Introducción a la Lógica Simbólica
Introducción a la Lógica SimbólicaIntroducción a la Lógica Simbólica
Introducción a la Lógica SimbólicaLeticia Ibarra
 
U1 Introduccion 1 1
U1 Introduccion 1 1U1 Introduccion 1 1
U1 Introduccion 1 1rezzaca
 
Teoría computación
Teoría computaciónTeoría computación
Teoría computaciónOscar Eduardo
 
Informatica presentacion
Informatica presentacionInformatica presentacion
Informatica presentacionFerMoniMags
 
Maquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e IrresolubilidadMaquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e Irresolubilidadlluis31
 
Personajes importantes
Personajes importantesPersonajes importantes
Personajes importanteskrmnfa
 
Personajes importantes
Personajes importantesPersonajes importantes
Personajes importanteskrmnfa
 
Programa teoria computacion_2011-1
Programa teoria computacion_2011-1Programa teoria computacion_2011-1
Programa teoria computacion_2011-1Oscar Eduardo
 
Unidad_1_Introduccion_a_la_Teoria_de_Len.pptx
Unidad_1_Introduccion_a_la_Teoria_de_Len.pptxUnidad_1_Introduccion_a_la_Teoria_de_Len.pptx
Unidad_1_Introduccion_a_la_Teoria_de_Len.pptxssusercb802d
 
Historia de la Traducción Automática
Historia de la Traducción AutomáticaHistoria de la Traducción Automática
Historia de la Traducción AutomáticaDébora Senso
 

Similar a Unidad1 Lenguajes y automatas (20)

investigacion introduccion a los lenguajes y automatas
investigacion introduccion a los lenguajes y automatasinvestigacion introduccion a los lenguajes y automatas
investigacion introduccion a los lenguajes y automatas
 
Modulo automatas-y-lenguajes-formales
Modulo automatas-y-lenguajes-formalesModulo automatas-y-lenguajes-formales
Modulo automatas-y-lenguajes-formales
 
Qué es la teoría de autómatas
Qué es la teoría de autómatasQué es la teoría de autómatas
Qué es la teoría de autómatas
 
Introducción a la Lógica Simbólica
Introducción a la Lógica SimbólicaIntroducción a la Lógica Simbólica
Introducción a la Lógica Simbólica
 
U1 Introduccion 1 1
U1 Introduccion 1 1U1 Introduccion 1 1
U1 Introduccion 1 1
 
TEMA 1 Parte 1.pdf
TEMA 1 Parte 1.pdfTEMA 1 Parte 1.pdf
TEMA 1 Parte 1.pdf
 
Teoría computación
Teoría computaciónTeoría computación
Teoría computación
 
Compiladores trabajo numero 4
Compiladores trabajo numero 4Compiladores trabajo numero 4
Compiladores trabajo numero 4
 
Informatica presentacion
Informatica presentacionInformatica presentacion
Informatica presentacion
 
Maquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e IrresolubilidadMaquina de turing y resolubilidad e Irresolubilidad
Maquina de turing y resolubilidad e Irresolubilidad
 
Personajes importantes
Personajes importantesPersonajes importantes
Personajes importantes
 
Personajes importantes
Personajes importantesPersonajes importantes
Personajes importantes
 
Programa teoria computacion_2011-1
Programa teoria computacion_2011-1Programa teoria computacion_2011-1
Programa teoria computacion_2011-1
 
Gramáticas y Modelos Matemáticos - Clase 4
Gramáticas y Modelos Matemáticos - Clase 4Gramáticas y Modelos Matemáticos - Clase 4
Gramáticas y Modelos Matemáticos - Clase 4
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Reynoso complejidad-gramatical
Reynoso complejidad-gramaticalReynoso complejidad-gramatical
Reynoso complejidad-gramatical
 
Introduccion Analisis Algoritmos
Introduccion Analisis AlgoritmosIntroduccion Analisis Algoritmos
Introduccion Analisis Algoritmos
 
Unidad_1_Introduccion_a_la_Teoria_de_Len.pptx
Unidad_1_Introduccion_a_la_Teoria_de_Len.pptxUnidad_1_Introduccion_a_la_Teoria_de_Len.pptx
Unidad_1_Introduccion_a_la_Teoria_de_Len.pptx
 
Historia de la Traducción Automática
Historia de la Traducción AutomáticaHistoria de la Traducción Automática
Historia de la Traducción Automática
 
Autómatas
AutómatasAutómatas
Autómatas
 

Último

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)Ricardo705519
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajasjuanprv
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosMARGARITAMARIAFERNAN1
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Practica PLC MIcrologix 1400 con pantalla HMI y servomotor
Practica PLC MIcrologix 1400 con pantalla HMI y servomotorPractica PLC MIcrologix 1400 con pantalla HMI y servomotor
Practica PLC MIcrologix 1400 con pantalla HMI y servomotorkavowog624
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMONICADELROCIOMUNZON1
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheElisaLen4
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upnDayronCernaYupanquiy
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
PRESENTACION NOM-009-STPS-TRABAJOS EN ALTURAS
PRESENTACION NOM-009-STPS-TRABAJOS EN ALTURASPRESENTACION NOM-009-STPS-TRABAJOS EN ALTURAS
PRESENTACION NOM-009-STPS-TRABAJOS EN ALTURASejcelisgiron
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdfnicolascastaneda8
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesMIGUELANGEL2658
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processbarom
 

Último (20)

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - Ejercicios
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Practica PLC MIcrologix 1400 con pantalla HMI y servomotor
Practica PLC MIcrologix 1400 con pantalla HMI y servomotorPractica PLC MIcrologix 1400 con pantalla HMI y servomotor
Practica PLC MIcrologix 1400 con pantalla HMI y servomotor
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upn
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
PRESENTACION NOM-009-STPS-TRABAJOS EN ALTURAS
PRESENTACION NOM-009-STPS-TRABAJOS EN ALTURASPRESENTACION NOM-009-STPS-TRABAJOS EN ALTURAS
PRESENTACION NOM-009-STPS-TRABAJOS EN ALTURAS
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 

Unidad1 Lenguajes y automatas

  • 2. Índice 1.1. Definiciones. 1.2 Un poco de historia 1.3. Lenguajes, Gramáticas y Autómatas
  • 3. Índice 1.1. Definiciones. 1.2 Un poco de historia 1.3. Lenguajes, Gramáticas y Autómatas
  • 4. 1.1 Definiciones • Lenguaje: – Forma de representar información basada en un conjunto finito de signos o símbolos • Alfabeto: – Conjunto de símbolos que forman parte de un lenguaje • Sentencia o palabra o fórmula bien formada: – Secuencia de símbolos correcta. • Lenguaje formal: – Lenguaje descrito mediante un formalismo matemático
  • 5. 1.1 Definiciones • Computar: – Procesar información • Modelo de computación – Máquina abstracta que toma como entrada una secuencia de símbolos y los procesa – Dependiendo del modelo, el resultado del cómputo puede ser : • Una secuencia de acciones • Una salida expresada en un cierto lenguaje • Una respuesta de aceptación o rechazo de la entrada
  • 6. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 7. 1.1 Definiciones • Informática: – Ciencia aplicada que abarca el estudio y aplicaciones del tratamiento automático de la información • Informática teórica: – Disciplina que estudia las capacidades de los modelos de computación y sus límites, así como el tipo de problemas que pueden tratar y la eficiencia con la que pueden ser tratados.
  • 8. Índice 1.1. Definiciones. 1.2 Un poco de historia 1.3. Lenguajes, Gramáticas y Autómatas
  • 9. 1.2 Un poco de historia • Lógica matemática Friedrich Ludwig Gottlob Frege – Nacido en Wismar (Alemania) en 1848 – Muerto en Bad Kleinen en 1945 – Profesor en la Universidad de Jena – En 1879 publicó Conceptografía (Begriffsschrift) – Desarrollo de la lógica de primer orden (operadores and, or, not, implicación, para-todo, existe) – La notación que utilizaba era bastante complicada
  • 10. 1.2 Un poco de historia • Lógica matemática Giuseppe Peano – Nacido en Spinetta (Italia) en 1858 – Muerto en Turín e 1932 – Profesor en la Universidad de Turín y en la Academia Militar Real – Matemático y filósofo, propuso la notación actual de la lógica y estudió los principios de la matemática. – Formulario, enciclopedia con todas las fórmulas y teoremas conocidos en matemáticas
  • 11. 1.2 Un poco de historia • Lógica matemática Bertrand Russell (1872-1970) – Conoce a Peano en el congreso de Filosofía de París (1900) – Publica Principia Mathematica en 1910, 1912, 1913. Alfred North Whitehead (1861-1947) – Profesor en las universidades de Londres, Cambridge y Harvard – Fue profesor de Russell y escribió con él los Principia Mathematica Teoría de Autómatas y Lenguajes Formales
  • 12. 1.2 Un poco de historia • Lógica matemática David Hilbert (1862 – 1943) – Profesor en la Universidad de Gottingen – El matemático más importante del s. XX. – Trabajos en análisis funcional, geometría, fundamentos de física cuántica y de relatividad general, lógica… – Axiomatización de la geometría. Problemas de Hilbert. – Publica en 1928 Principios de lógica teórica – Problema de la decisión: descubrir un método general para decidir si una fórmula lógica es verdadera o falsa
  • 13. 1.2 Un poco de historia • Lógica matemática Kurt Gödel (1906 – 1978) – Profesor en Viena y en Princeton – Publica en 1931 el artículo Sobre proposiciones formalmente indecidibles de Principia Mathematica y sistemas relacionados – Teorema de incompletitud: “En cualquier formalización consistente de las matemáticas que sea lo bastante fuerte para definir el concepto de números naturales, se puede construir una afirmación que ni se puede demostrar ni se puede refutar dentro de ese sistema.”
  • 14. 1.2 Un poco de historia • Computabilidad Alan Mathison Turing (1912 – 1954) – Estudia en Cambridge y en Princeton (con A. Church) – Profesor en Cambridge y U. Manchester – Participa en la ruptura del cifrado de la máquina Enigma – Publica en 1936 el artículo Los números computables, con una aplicación al Entscheidungsproblem. Nacimiento de la Informática Teórica – Inventa las máquinas de Turing
  • 15. 1.2 Un poco de historia • Computabilidad Alonzo Church (1903 – 1995) – Profesor en Princeton – Desarrolla el cálculo lambda, basado en funciones recursivas. (Base de los lenguajes funcionales) – En 1936 demuestra la existencia de problemas indecidibles para el cálculo lambda. – Entre 1938 y 1939 trabaja con A. Turing – Tesis de Church-Turing: cualquier modelo computacional existente tiene las mismas capacidades algorítmicas, o un subconjunto, de las que tiene una máquina de Turing.
  • 16. 1.2 Un poco de historia • Computabilidad Stephen Kleene (1909 - 1994) – Profesor de la U. Wisconsin – Discípulo de A. Church. Estudia la teoría de funciones recursivas. – Desarrolla las expresiones regulares – Numerosos estudios en Teoría de Autómatas
  • 17. 1.2 Un poco de historia • Teoría de autómatas Claude Elwood Shannon (1916 – 2001) – Estudia en la U. Michigan. Profesor en el Instituto de Tecnología de Massachusetts (MIT) – En 1938 publica A Symbolic Analysis of Relay and Switching Circuits. Aplicación de la lógica matemática a los circuitos electrónicos. – En 1948 publica Una Teoría Matemática de la Comunicación. Nacimiento de la Teoría de la Información – En 1956 edita, junto a McCarthy, Automata Studies, sobre máquinas secuenciales y autómatas finitos.
  • 18. 1.2 Un poco de historia • Teoría de autómatas Autómatas Finitos Deterministas – D. A. Huffman, The synthesis of sequential switching circuits, J. Franklin Inst., vol. 257, (1954) – G. H. Mealy, A method for synthesizing sequential circuits, Bell System Technical Journal vol. 34 (1955) – E.F. Moore, Gedanken experiments on sequential machines, en Automata Studies (1956) Autómatas Finitos No Deterministas – M.O. Rabin y D. Scott, Finite automata and their decision problems, IBM J. Research and Development, vol. 3 (1959)
  • 19. 1.2 Un poco de historia • Lingüística Noam Chomsky (1928 - ) – Profesor del Massachusetts Institute of Technology (MIT) – Conocido por su activismo político – Doctorado en 1955 en la U. Harvard con la tesis Estructura lógica de la teoría lingüística (que no se publicó hasta 1975) – En 1957 publica Estructuras sintácticas en el que aparece la clasificación de gramáticas (Jerarquía de Chomsky)
  • 20. 1.2 Un poco de historia • Teoría de autómatas Autómatas de Pila – A. G. Oettinger, Automatic syntactic analysis and the pushdown store, Proc. Symposia on Applied Math. (1961). – M.P. Schutzenberger, On context-free languages and pushdown automata, Information and Control, vol. 6 (1963) – P.C. Fisher, On computability by certain classes of restricted Turing machines, Proc. 4th Annl. Symposium on Switching Circuit Theory and Logical Design (1963) – D.E. Knuth, On the translation of languages from left to right, Information and Control, vol. 8 (1965).
  • 21. Índice 1.1. Definiciones. 1.2 Un poco de historia 1.3. Lenguajes, Gramáticas y Autómatas
  • 22. Índice 1.1. Definiciones. 1.2 Un poco de historia 1.3. Lenguajes, Gramáticas y Autómatas
  • 23. 1.3 Lenguajes, Gramáticas y Autómatas Desde su nacimiento, la teoría de autómatas ha encontrado aplicación en muy diversos campos. Esto se debe a que resulta muy natural considerar, tanto los autómatas como las máquinas secuenciales, sistemas capaces de transmitir (procesar) información. En definitiva, esto es equiparable a cualquier sistema existente en la naturaleza, que recibe señales de su entorno, reacciona ante ellas y emite así nuevas señales al ambiente que le rodea.
  • 24. 1.3 Lenguajes, Gramáticas y Autómatas • Algunos de los campos donde ha encontrado aplicación la teoría de autómatas son: • Teoría de la Comunicación • Teoría de Control • Lógica de los circuitos secuenciales • Ordenadores • Teoría lógica de los sistemas evolutivos y auto-reproductivos • Reconocimiento de patrones • Fisiología del sistema nervioso • Traducción automática de lenguajes • etc
  • 25. 1.3 Lenguajes, Gramáticas y Autómatas Chomsky clasificá los lenguajes formales de acuerdo a una jerarquía de cuatro niveles, conteniendo cada uno de todos los siguientes. – El lenguaje más general será, pues, de tipo 0, y no posee restricción alguna. Este conjunto engloba el conjunto de todos los lenguajes posibles. – En el segundo nivel aparecen los lenguajes de tipo 1, también llamados lenguajes “sensibles al contexto”, al permitir que el “papel” de las palabras dependa de la posición en que aparezcan (es decir, del contexto). La mayor parte de los lenguajes de ordenador pertenecen a este tipo.
  • 26. 1.3 Lenguajes, Gramáticas y Autómatas – En tercer lugar aparecen los lenguajes de tipo 2, o lenguajes “independientes del contexto”. En ellas el significado de una palabra es independiente del lugar que ocupa en la frase. – Finalmente, los lenguajes de tipo 3, o lenguajes regulares, son los que presentan una estructura más sencilla.
  • 27. 1.3 Lenguajes, Gramáticas y Autómatas • Cada uno de estos tipos de máquinas es capaz de resolver problemas cada vez más complicados, hasta llegar a las máquinas de Turing. Como descubrió Turing, existen una serie de problemas que no son computacionalmente abordables y que reciben el nombre de “problemas no enumerables”. Lenguajes Tipo 0 Lenguajes Tipo 1 Lenguajes Tipo 2 Lenguajes Tipo 3 Máquinas de Turing Autómatas acotados linealmente Autómatas a pila Autómatas finitos Problemas recursivamente enumerables Expresiones regulares • Resulta curioso observar como paralelamente a la jerarquía de lenguajes aparece otra de máquinas abstractas equivalentes, como se observa en el esquema siguiente : Problemas no enumerables
  • 28. 1.3 Lenguajes, Gramáticas y Autómatas • La relación estrecha entre la Teoría de Lenguajes Formales y la Teoría de Autómatas se pone de manifiesto en este tema. Se establece un isomorfismo entre ambas, estableciendo una conexión entre la clase de lenguajes generados por ciertos tipos de gramáticas y la clase de lenguajes reconocibles por ciertas máquinas.
  • 29. 1.1 Definiciones • Lenguaje: – Forma de representar información basada en un conjunto finito de signos o símbolos • Alfabeto: – Conjunto de símbolos que forman parte de un lenguaje • Sentencia o palabra o fórmula bien formada: – Secuencia de símbolos correcta. • Lenguaje formal: – Lenguaje descrito mediante un formalismo matemático
  • 30. Gramáticas Lenguajes Máquinas Sin restricciones o De Tipo0 Sin restricciones o De Tipo0 Máquina de Turing Sensible al contexto O de Tipo1 Sensible al contexto O de Tipo1 Autómata Linealmente acotado Libre de contexto o De Tipo2 Libre de contexto o de Tipo2 Autómata con pila Regular o de Tipo3 Regular o de Tipo3 Autómata Finito 1.3 Lenguajes, Gramáticas y Autómatas
  • 31. 1.3 Lenguajes, Gramáticas y Autómatas • Gran parte del temario se basará en problemas que tienen que ver con el procesamiento del lenguaje, por tanto, se repasa la terminología y algunos de los conceptos asociados al proceso de traducción. – Se establecen los términos de lenguaje formal, definidos por reglas preestablecidas, y de lenguaje natural, no cuentan con reglas gramaticales formales. – Así, el estudio de los lenguajes se reduce al análisis de la estructura de las frases (Gramática) y del significado de las mismas (Semántica). – A su vez, la Gramática puede analizar las formas que toman las palabras (Morfología), su combinación para formar frases correctas (Sintaxis), y las propiedades del lenguaje hablado (Fonética) (única no aplicable a los lenguajes de ordenador). – Para realzar el papel de la gramática en el proceso de traducción se indican los componentes básicos de que consta compilador para un determinado lenguaje de programación: análisis léxico, análisis sintáctico y generación de código.
  • 32. Teoría de Autómatas y Lenguajes formales es un “repaso” a la informática teórica. La informática teórica: se ha desarrollado con base a la confluencia de campos en aparencia muy distintos: Investigación acerca de Fundamentos Matemáticos, Teoría de Máquinas, Lingüística, … Ciencia multidisciplinar que se apoya en que los mismos fenómenos pueden actuar y servir de fundamento en áreas totalmente desconectadas (aparentemente).
  • 33. Un autómata puede describir de forma formal el funcionamiento de un sistema Ejemplo: interruptor off oninicio pulsar pulsar 1.4 Autómatas / Máquinas secuenciales
  • 34. Un autómata es un modelo abstracto de una computadora digital • Lee símbolos en la entrada • Produce símbolos en la salida • Tiene una unidad de control que puede estar en uno de sus posibles estados internos • Puede cambiar de los estados internos en función de la entrada • Puede tener algún tipo de memoria Autómatas transductores / generadores / aceptadores Salida Memoria Unidad de Control 1.4 Máquinas secuenciales Entrada
  • 35. Cualquier comunicación se realiza mediante cadenas de símbolos que corresponden a un lenguaje. Lenguajes son conjuntos de cadenas de símbolos (palabras, oraciones, textos o frases) El estudio de los lenguajes se reduce, básicamente, a: Sintaxis: (gramática) define las secuencias de símbolos que forman cadenas válidas de un lenguaje Gramática: Descripción formalizada de las oraciones de un lenguaje. Una gramática genera o describe un lenguaje. Semántica: significado de las cadenas que componen un lenguaje 1.5 Lenguajes y Gramáticas
  • 36. Ejemplo 1: Semántica: A es un número natural. Diferente sintaxis en diferentes lenguajes: A is a natural number. A : Natural; 0100000100000001 1.5 Lenguajes y Gramáticas
  • 37. 1.5 Lenguajes y Gramáticas Ejemplo 2: Sintaxis: if_statement ::= if condition then sequence_of_statement {elsif condition then sequence_of_statements} [else sequence_of_statements] end if; Semántica: Si se cumple <condition> entonces haz lo que viene definido por <sequence_of_statements>. En caso contrario ... Cadena del lenguaje: if Line_Too_Short then raise Layout_Error; elsif Line_Full then New_Line; Put(Item); else Put(Item); end if;
  • 38. 1.5 Lenguajes y Gramáticas La Teoría de Lenguajes Formales resultó tener una relación inmediata y directa con la Teoría de Máquinas Abstractas. Se establecieron correspondencias (isomorfismos) entre ellas. Se puede describir el funcionamiento de sistemas mediante gramáticas → lenguajes de programación Chomsky clasificó de las gramáticas en diferentes tipos: Lenguajes del mismo tipo tienen propiedades en común Según el tipo de lenguaje, existen diferentes algoritmos que permiten comprobar la sintaxis de textos.
  • 39. 1.1 Definiciones • Computar: – Procesar información • Modelo de computación – Máquina abstracta que toma como entrada una secuencia de símbolos y los procesa – Dependiendo del modelo, el resultado del cómputo puede ser : • Una secuencia de acciones • Una salida expresada en un cierto lenguaje • Una respuesta de aceptación o rechazo de la entrada
  • 40. ¿Cómo se puede formalizar el concepto de realizar un cálculo? 1937 – Alan Mathison Turing: “On computable numbers with an application to the Entscheidungsproblem” Definición de la Máquina de Turing como dispositivo matemático abstracto de cálculo que introduce el concepto de “algoritmo”. Origen “oficial” de la informática teórica. Precursora abstracta de las máquinas de calcular automáticas. La Máquina de Turing es un modelo abstracto de los ordenadores actuales. Demuestra la existencia de problemas irresolubles, los que ninguna máquina de Turing (y ningún ordenador) puede resolver o calcular. (Teoría de la Computabilidad). 1.5 Máquinas abstractas y algoritmos
  • 41. Lenguajes Formales y Gramáticas Lenguajes regulares Autómatas Finitos Lenguajes Independientes del Contexto Autómatas a Pila Máquinas de Turing Computabilidad Actividad 1: Conceptos básicos
  • 42. 1.¿ Qué es un lenguaje de programación ? 2.Abstracciones 3.Paradigmas de computación 4.Definición del lenguaje 5.Traducción del lenguaje 6.Historia 7.Preguntas
  • 43. 1.6 ¿QUÉ ES UN LP? Computación Máquina Turing, tesis de Church Legibilidad por parte de la máquina Legibilidad por parte del ser humano Definición: Un lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la máquina como para el ser humano.
  • 44. 1.6 CONCEPTOS Los Lenguajes de programación son aplicaciones específicas diseñadas para crear otras aplicaciones o programas. Son programas para crear programas. Se basan en un sistema de instrucciones preestablecidas que indican al ordenador lo que debe realizar Son códigos integrados compuestos por un vocabulario, con una sintaxis y una semántica que permite elaborar infinitas secuencias válidas de tareas e instrucciones
  • 45. Los lenguaje de programación permiten crear programas específicos que ofrezcan solución a programas particulares Para llevar a cabo cualquier tarea, el ordenador necesita tener información sobre la tarea y un método para ejecutarla 1.6 CONCEPTOS
  • 46. Instrucción: Expresión formada por números, operaciones y letras que indica, en un computador, la operación que debe realizar y los datos correspondientes. Algoritmo: Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Programa: Conjunto de instrucciones en un lenguaje dado que indica a un ordenador cómo resolver un problema. De manera más informal: Algoritmo: Secuencia de instrucciones no ambigua que resuelve una tarea concreta en un tiempo finito. Programa: Codificación de uno o más algoritmos en un lenguaje de programación. Procesar: Someter datos a una serie de operaciones programadas. Al proceso de traducir o codificar un algoritmo a forma de programa se le conoce con el nombre de implementación.
  • 47. Proceso de desarrollo de software: Proceso de trabajo que debe seguir un programador a la hora de construir un programa o aplicación que resuelva cierto problema. Se divide en: Definición del problema. Implica el desarrollo y clarificación exacta de las especificaciones del problema, de los datos de entrada y de los datos de salida. Diseño del algoritmo. Describe la secuencia ordenada de pasos que conducen a la solución de un problema dado. Implementación. Codificar el algoritmo como un programa en un lenguaje de programación. Ejecución y validación del programa en el ordenador. Documentación. Tanto la definición del problema como el algoritmo y el programa deben formar parte de la documentación. Su contenido dependerá de a quién va dirigida. Mantenimiento del programa. Los programas pueden quedarse anticuados, debiendo ser revisados, ampliados y modificados.
  • 48. 2. Lenguajes de Programación Lenguaje de Programación: Conjunto de reglas, símbolos y palabras especiales utilizados para construir un programa de forma que pueda ser entendido por el ordenador. Se clasifican en: Lenguajes Máquina. Lenguajes de Bajo Nivel o Ensambladores. Lenguajes de Alto Nivel.
  • 49. Lenguaje Máquina. Es aquél que entiende directamente el ordenador ya que sus instrucciones son secuencias binarias. También se le conoce como código binario. Dificultad de desarrollo, verificación y puesta a punto de programas. El código desarrollado no es portable. Lenguajes de Bajo Nivel o Ensamblador. Está compuesto por las instrucciones del lenguaje máquina escritas mediante nemotécnicos. Es más fácil de utilizar que el anterior. El programa sigue siendo dependiente de la máquina. Requiere una fase de traducción del código fuente al programa objeto. Lenguajes de Alto Nivel. Son los más utilizados por los programadores. Mayor facilidad en el desarrollo, verificación y mantenimiento de los programas. Los programas desarrollados son portables. Requiere una fase de traducción del código fuente al programa objeto.
  • 50. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 51. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 52. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 53. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 54. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 55. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 56. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 57. 1.1 Definiciones • Autómata: – Modelo de computación – Maquina de estados – El funcionamiento de la máquina se basa en transiciones de estados – Las transiciones están provocadas por la lectura de los símbolos de entrada
  • 58. 1.13 PREGUNTAS Clasifica los siguientes lenguajes (C, Ada, C++, Java, LISP, Prolog, Visual Basic, JavaScript, C#, PHP) con base a : Paradigma tipos de traductor (compilador, interprete, seudointérprete) Propiedades estáticas y dinámicas Eficiencia Extraed conclusiones de esta clasificación
  • 59. Evalua los lenguajes del punto anterior respecto a las características del punto 1.8 y 1.9 Extrae conclusiones de las dos clasificaciones