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

Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Yaskelly Yedra
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresDaniel Huerta Cruz
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasRaul
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 

La actualidad más candente (20)

Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de errores
 
Razonamiento monotono
Razonamiento monotonoRazonamiento monotono
Razonamiento monotono
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 
Alfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y ProblemasAlfabeto, Cadenas, Lenguajes, y Problemas
Alfabeto, Cadenas, Lenguajes, y Problemas
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Estándar ieee 802
Estándar ieee 802Estándar ieee 802
Estándar ieee 802
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 

Similar a Teoría de Lenguajes Formales y Autómatas

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 Teoría de Lenguajes Formales y Autómatas (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

SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasLeonardoMendozaDvila
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...ssuser646243
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1victorrodrigues972054
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 

Último (20)

SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidasSOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
SOLIDOS DE REVOLUCION, aplicaciones de integrales definidas
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
Como de produjo la penicilina de manera masiva en plena guerra mundial Biotec...
 
Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1Electricidad y electronica industrial unidad 1
Electricidad y electronica industrial unidad 1
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 

Teoría de Lenguajes Formales y Autómatas

  • 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