Download Lenguajes y Compiladores © 2007 M. en C. Eduardo René
Document related concepts
Transcript
Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila MAESTRÍA EN INFORMÁTICA Lenguajes y Compiladores M. en C. Eduardo René Rodríguez Ávila Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila I. Panorama del Curso Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila I.4.- Valoración. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila El curso demanda de conocimientos y habilidades en… Teoría de la computación Código máquina Lenguajes formales Administración de proyectos Algoritmos ARQUITECTURA DE COMPUTADORES Matemáticas Teoría de autómatas Estructura y representación de datos Lenguajes de programación Ensamblador Curso de Lenguajes y Compiladores Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila … y proporciona conocimientos útiles también. Curso de Lenguajes y Compiladores Selección de productos y herramientas Seguridad Informática Sistemas Operativos Diseño de Interfaces Hombre-Máquina ARQUITECTURA DE COMPUTADORES Ingeniería de software Inteligencia artificial Administración de proyectos Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila I.4.1.- Conocimientos de otras disciplinas. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila La necesidad de aplicar conocimientos de otras disciplinas. El curso es una excelente oportunidad para aplicar lo aprendido sobre: Programación en lenguaje ensamblador. Arquitectura de computadoras. Estructuras de datos. Lógica y matemáticas. Teoría de lenguajes, autómatas y computación. Lenguajes de programación. Sistemas operativos. Programación de sistemas. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila I.4.2.- Utilización del conocimiento adquirido. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Como la base de elementos de criterio para la administración de recursos informáticos. Aun cuando la naturaleza del curso pueda ser considerado extremadamente teórico y técnico, el profesional de la informática con roles gerenciales y de líder de proyecto adquirirá elementos que le ayudarán a considerar el impacto derivado de una herramienta de desarrollo (sin importar si es de marca, de dominio público o código abierto) con respecto a : Licencias. Compra o actualización de equipo. Capacitación. Distribución de desarrollos. Soporte técnico. Dependencias. Contratos y actualizaciones. Limitaciones. Curvas de aprendizaje. Seguridad. Compra o actualización de equipo. Documentación Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Como principios de conocimientos tecnológicos. El curso permite obtener un conocimiento detallado sobre el funcionamiento de herramientas clave en el desarrollo de software. Por tanto, es fácil entender no sólo las implicaciones técnicas que conlleva la selección de un lenguaje en particular sino también el impacto en la organización y sus planes. Así, con base en este conocimiento, el estudiante podrá formase un criterio para guiarse durante la selección de la tecnología más adecuada en el desarrollo de un proyecto de software. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Como elementos de fundamentación teórica. El estudiante contará con los fundamentos teóricos para abordar temas relacionados a: Programación de bajo y alto nivel. Ingeniería de software. Estructuras y representación de datos. El uso y reconocimiento de lenguajes en el ámbito de la informática y la computación. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Métodos y técnicas aplicables a otras disciplinas directamente relacionadas. Similarmente, las técnicas y métodos revisados durante el curso encuentran aplicación práctica inmediata no sólo en actividades relacionadas con lenguajes de programación, intérpretes y compiladores sino también para: Inteligencia Artificial.- Procesamiento de lenguaje natural, especificaciones para bases de conocimiento. Arquitectura de computadoras.- Mejor utilización de los recursos de cómputo y cómo buscarlo desde el origen de la programación. Sistemas operativos.- Mejor convivencia de aplicaciones. Seguridad informática.- Validación de datos, seguridad en la elaboración de código. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Métodos y técnicas aplicables a disciplinas que pudieran no parecer relacionadas. Otras disciplinas científicas y tecnológicas se han visto directamente beneficiadas del conocimiento y técnicas desarrolladas para la construcción de intérpretes, compiladores y lenguajes programación. Bioinformática.- Las técnicas de scanning y parsing son empleadas en la validación y análisis de secuencias de ADN. Diseño de interfaces Hombre-Máquina.- No sólo a través de un lenguaje se puede programar un computador. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Un ejemplo sobresaliente y de moda: La seguridad de la información. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Validación de datos (1). Puede ser simplificada y fortalecida usando expresiones regulares. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Validación de datos (2). Puede ser también simplificada y fortalecida usando el tipo de dato adecuado. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Cross-site scripting. Controlada mediante técnicas de scanning y uso de expresiones regulares para evitar la inserción de código ejecutable por y en el servidor o el cliente. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Inyección de código. Controlada con técnicas de scanning y parsing para garantizar que instrucciones construidas dinámicamente no sirvan para ingresar código a la aplicación. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Buffer overflow. Conocimiento del funcionamiento interno de un computador y código generados para éste ayudan en la creación de código seguro y robusto. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Buffer overflow. El conocimiento adicional del lenguaje aydara a evitar funciones que se conocen son inseguras. Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila Lenguajes y Compiladores © 2007 M. en C. Eduardo René Rodríguez Ávila