teoría de la computación presentación

25
Teoría de la Computación DOCENTE: ING. GABRIEL LACAYO E-MAIL: [email protected]

Upload: gabriel-rafael-lacayo-saballos

Post on 23-Jul-2015

800 views

Category:

Software


0 download

TRANSCRIPT

Teoría de la Computación

DOCENTE: ING. GABRIEL LACAYO

E-MAIL: [email protected]

Información General

ENCUENTROS POR SEMANA

3

TORAL DE SEMANAS

14

INICIO DE CLASES 13/Abril/2015 14 Semanas

FIN DE CLASES 17/Julio/2015

Exámenes 21/07/2015-31/07/2015

2 Semanas

Convocatorias I 11/08/2015-14/08/2015

1 Semana

Convocatorias II 17/08/2015-21/08/2015

1 Semana

Objetivo GeneralAprender las bases teóricas para diseñar lenguajes deprogramación de tipo procedural y dominar los conceptosbásicos que soportan los procesos de traducción de unlenguaje fuente a un lenguaje destino.

Adquirir habilidades en el diseño de analizadores lexicalesy sintácticos con ayuda de generadores.

Objetivos EspecíficosConocer, ejercitar y aprender los conceptos básicos de la teoría delenguajes formales: conceptos de vocabulario y cadena, operaciones sobrecadenas; concepto de lenguajes, operaciones sobre lenguajes y clasificaciónde los lenguajes.

Aprender el concepto de Autómata Finito Determinista (AFD) y Nodeterministas (AFN), principales características y propiedades de losAutómatas Finitos y sus aplicaciones prácticas, fundamentalmente en eldesarrollo de dispositivos para el reconocimiento de los lenguajesclasificados como regulares.

Aprender el concepto de Autómata de Pila Determinista y No Determinista,así como sus principales propiedades, características y aplicación práctica,sobre todo en el reconocimiento de lenguajes clasificados como libres delcontexto.

Objetivos EspecíficosAprender a definir el léxico, la sintaxis y la semántica de un lenguaje deprogramación, así como también a construir y programar los dispositivoscapaces de reconocer si un programa cualquiera escrito en dicho lenguaje estacorrecto desde el punto de vista lexical, sintáctico y semántico.

Formar habilidades en el uso de programas generadores de analizadoreslexicales, analizadores sintácticos y conocer como se realiza la integración de losmismos en la construcción de programas traductores y/o compiladores.

Unidades TemáticasI • Introducción

II • Lenguajes y Gramáticas

III • Lenguajes Regulares

IV • Lenguajes Libres de Contexto

V • Análisis Sintáctico

VI • Máquina de Turing

Unidad I: IntroducciónEn esta unidad se expone la generalidad de laasignatura, características de los lenguajes, seintroduce la noción de paradigma de programación ysu influencia en el estilo de programación, seintroduce el concepto de compilador e intérprete ysus diferencias. Se recomienda hacer referencias alos paradigmas de programación.

Unidad II: Lenguajes y GramáticasEl contenido de esta unidad pretende que el estudiante aprenda losconceptos de alfabeto, cadenas, como definir cadenas validaddentro de un alfabeto, y las deferentes operaciones sobre cadenas,la definición de un lenguaje desde el punto de vista de la teoría de lacomputabilidad y sus diferentes operaciones, introducción a loslenguajes regulares conceptos y definiciones, así como conceptosbásicos de gramática. Ejercitar en el uso de formación de palabras,valides de las palabras, ejemplificar con lenguajes actuales y mostraralgunos ejemplos prácticos.

Unidad III: Lenguajes RegularesEn esta unidad se aborda los Autómatas Finitos Determinista, en su definiciónformal matemática, como máquina de estado finito, que representa un modelocomputacional para realizar procesamiento de entrada de datos y producir unasalida, se aborda las expresiones regulares y el AFD equivalente, algunos algoritmospara programar AFD, y se realizan prácticas en Simuladores, se realizan ejercicios deaplicación de autómatas a problemas reales. Se aborda la definición formal deAutómata Finito No Determinista, su definición formal y como se aplica a laresolución de problemas que no pueden ser abordados por los AFD, y como los AFDy AFND se pueden expresar en la notación de Gramáticas, como un conjunto dereglas de formación que definen cadenas de caracteres tanto en los lenguajesformales o lenguajes naturales, sin entrar en los detalles del significado, solo seestudia su forma. Se realizan ejercicios prácticos relacionados con los autómatas,abordar con ejemplos, tanto académicos como prácticos el uso y aplicación de losautómatas, y como nos ayudan al concepto de gramática.

Unidad IV: Lenguajes Libres de ContextoEn esta unidad se aborda el concepto de árbol dederivación como una representación del análisisrealizado por las gramáticas en el reconocimiento deuna cadena, Se aborda los autómatas de pila, yalgunos modelos algoritmos que pueden serprogramados, para realizar análisis de gramáticasbásicas.

Unidad V: Análisis SintácticoEn esta unidad se aborda el Análisis Sintácticos LR, conocidoscomo Parser, como un tipo de analizador de gramáticas librede contexto, pertenecientes a la familia de analizadoresascendentes, y como construir el árbol de Derivación,utilizando las técnicas de análisis por desplazamientoreducción, LR, LALR (K), además la manera de como se realizael tratamiento de errores a nivel básico. En esta unidad nosapoyamos de los analizadores Lex y Yacc o sus versiones OpenSource Flex y Bison, en un ambiente de desarrollo Linuxpreferiblemente, para mostrar la generación de analizadoresléxicos o escáner, y generadores sintácticos respectivamente.

Evaluación

Laboratorios y Sistemáticos

40%

Examen primer parcial

30%

Examen segundo parcial

30%

Nota Final 100%

Examen de Suficiencia

BibliografíaTextos Autor Año de Edición Título / ISBN

UNIDAD I – IIB

ásic

os

Brooksh Ear, J. Glenn 1999 Teoría de la computación

UNIDAD III-IV

Dean Kelly 1998Teoría de Autómatas y

Lenguajes Formales

UNIDAD IV- V

Co

mp

lem

en

tari

o

Francisco Javier Ceballos 1997 Enciclopedia de Lenguaje C

UNIDAD V

Brian W. Kernighan 1995El entorno de Programación

Unix

UNIDAD VI

John C. Martin 2004Lenguajes formales y teoría

de la computación

Video “Amar la programación”

Historia de la ComputaciónUn aspecto importante en el desarrollo de lascomputadoras, es sin duda, su aplicación para resolverproblemas científicos y empresariales. Esta aplicaciónhubiese resultado muy difícil son la utilización deprocedimientos que permitan resolver estos problemasmediante una sucesión de pasos claros, concretos ysencillos, es decir algoritmos. El avance de las matemáticaspermite la utilización de nuevas metodologías para larepresentación y manejo de la información.

Tres caminos para la computación1. Computación Teórica◦ Autómatas, Funciones Recursivas…..etc

2. Ordenadores Digitales◦ Nuevas Tecnologías, Nuevos Lenguajes……

3. Intentos de modelizar el cerebro biológico.◦ Redes Neuronales, Conjunto y Lógica Difusa.

ReflexiónEstilo de Vida

En sociología, un estilo de vida es la manera en que vive una persona (o ungrupo de personas). Esto incluye la forma de las relaciones personales, delconsumo, de la hospitalidad y la forma de vestir. Una forma de vida típicamentetambién refleja las actitudes, los valores o la visión del mundo de un individuo. Eltérmino hace referencia a una combinación de unos factores claves intangibles otangibles. Los factores tangibles relacionan específicamente con las variablesdemográficas, esto es un perfil demográfico individual mientras que los factoresintangibles tratan de los aspectos psicológicos de uno individuo como valorespersonales, preferencias y actitud.