Download Lenguajes y Compiladores © 2007 M. en C. Eduardo René

Document related concepts

Haxe wikipedia , lookup

Ocaml wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

Lisp wikipedia , lookup

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