41
CONCEPTOS DE LENGUAJES 2010 1 Los lenguajes de Programación son el corazón de la Ciencia de la Computación. Son herramientas que usamos no solo para comunicarnos con las máquinas sino también con las personas.

Tema 1 a Uno Intro Evalua 2010

Embed Size (px)

DESCRIPTION

kgg

Citation preview

Page 1: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 1

Los lenguajes de Programación son el corazón de la Ciencia de la

Computación. Son herramientas que usamos no solo para comunicarnos con las máquinas sino también con las

personas.

Page 2: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 2

CUAL ES LA IDEA?

• Introducimos, analizamos y evaluamoslos conceptos más importantes de los lenguajes de programación.

• “el valor de un lenguaje o de un concepto se debe juzgar según la forma en que afecta la producción de Software y a la facilidad con la que puede integrarse a otras herramientas”

Page 3: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 3

QUÉ CONSEGUIREMOS

• Adquirir habilidad de apreciar y evaluarlenguajes, identificando sus límites y posibilidades

• Habilidad para elegir, para diseñar, implementar o utilizar un lenguaje

• Enfatizar la abstracción

Page 4: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 4

PARA QUÉ ESTUDIAR CONCEPTOS DE LENGUAJES

• Aumentar la capacidad para producir soft.• Mejorar el uso del lenguaje• Incrementar el vocabulario • Elegir mejor un lenguaje• Facilitar el aprendizaje de nuevos

lenguajes• Facilitar el diseño e implementación de

lenguajes

Page 5: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 5

Aumentar la capacidad para producir software

Conocer profundamente las características de los lenguajes permite aprovechar su potencia y evitar errores, minimizando esfuerzo

Page 6: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 6

Mejorar el uso del lenguaje que ya se esta utilizando

• Si se entiende como se implementa cada característica se mejora la capacidad para escribir programas eficientes.

Page 7: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 7

Incrementar el vocabulario

• El lenguaje – equivale a comunicación.– es una ayuda y una limitación al

pensamiento.– permite expresar y estructurar el

pensamiento• Incrementamos la capacidad para

expresar ideas

Page 8: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 8

Elegir mejor un lenguaje

• Si se conocen mas a lenguajes, se facilita la elección del mas adecuada de acuerdo al área del problema y por lo tanto se reduce el esfuerzo de codificación.

Page 9: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 9

Facilitar el aprendizaje de nuevos lenguajes

• Un lingüista que conoce profundamente la estructura subyacente del lenguaje natural aprende muchísimo mas rápido un nuevo lenguaje (idioma) que una persona que no sabe nada del tema

Page 10: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 10

Facilitar el diseño e implementación de lenguajes

• El programador puede convertirse en diseñador o implementador de un lenguaje.

Page 11: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 11

LENGUAJES Y ….

• LENGUAJES Y PROCESO DE DESARROLLO DE SOFTWARE

• LENGUAJES Y AMBIENTES DE DESARROLLO

• LENGUAJES Y METODOS DE DISEÑO• LENGUAJES Y LA ARQUITECTURA DE

LAS COMPUTADORAS

Page 12: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 12

LENGUAJE DE PROGRAMACIÓN EN EL PROCESO DE

DESARROLLO DE SOFTWARE• Los lenguajes de programación son

herramientas para producir software.El modelo tradicional de Ciclo de vida del software que debe entregar cada paso al siguiente.QUE y COMO

Page 13: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 13

• CICLO DE VIDA DE SOFTWARE

REQUERIMIENTOS

DISEÑO

IMPLEMENTACION

CERTIFICACION

MANTENIMIENTO

Page 14: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 14

Análisis de requerimientos

Se identifican y documentan los requerimientos del sistema.

• El resultado de esta etapa es un documento de especificación que indica QUE problema se debe resolver.

Page 15: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 15

Diseño

• QUE: documento de especificación.• COMO: estrategia de solución.• El objetivo de esta etapa es una

descomposición en módulos y definición de interfases

• El método de diseño elegido impactará en la calidad el entendimiento y la modificabilidadde la aplicación resultante.

Page 16: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 16

Implementación• Se codifica en un lenguaje el sistema diseñado.

Se implementa la estrategia de solución.• El QUE es ahora el diseño elegido y el COMO

es su implementación. Se decide en este paso de que forma entre todas las posibles se codificara la solución diseñada.

• En esta etapa es en la que se utiliza en forma directa el lenguaje.

• El resultado es un sistema totalmente implementado y documentado.

Page 17: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 17

Certificación(corrección o satisfacción de requerimientos, verificación,

validación)

Se evalúa la calidad del producto.

Los chequeos responden a dos preguntas¿Construimos el producto correcto? - contra el usuario¿Construimos el producto correctamente? -contra la especificación.

Page 18: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 18

Mantenimiento

• Modificaciones en el sistema terminado:– detectar mal funcionamiento– modificación de algún requerimiento

• Costo al menos igual a la suma de todos los anteriores.

• En el tiempo será la etapa mas larga.

Page 19: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 19

LENGUAJE DE PROGRMACION Y AMBIENTE DE DESARROLLO

• Conjunto integrado de herramientas y técnicas para se utilizados en todos los paso del ciclo de vida.

• equipo de trabajo• los editores, compiladores, simuladores,

interpretes, linkeditores y debagers.• compatibilidad de herramientas

Page 20: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 20

LENGUAJE DE PROGRAMACION Y METODO DE DISEÑO

• Paradigmas de lenguajes• Procedural: descomposión en pasos - rutinas• Funcional: expresiones y funciones - composición. • con TADs: reconocimientos de Tads• basada en módulos: grupo de entidades-

interfases• OO: clases – instancias - jerarquías• Programación genérica: módulos genéricos –

instanciados en compilación o ejecución• Programación declarativa: no algorítmico,

declaración del problema (especificación)

Page 21: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 21

LENGUAJE DE PROGRAMACION Y ARQUITECTURA DE LA

COMPUTADORA

USUARIOS

LENGUAJES

ARQUITECTURA VON NEUMANN

EXIGENCIAS

RESTRICCIONES

ABSTRACCION

Page 22: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 22

Arquitectura de VonNeumann

I/O MEMORIA CPU

bus

buscar instr.

ejecutar

Almacenar resultado

Page 23: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 23

CRITERIOS PARA EVALUAR LOS LENGUAJES

DE PROGRAMACION

Page 24: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 24

FACIL DE ESCRIBIR CONFIABLELEGIBLE

MANTENIBLE

EFICIENTE

Page 25: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 25

CRITERIOS DE EVALUACION

• Los lenguajes de programación son herramientas para el desarrollo de software

• Impacto de los conceptos en la metodología de desarrollo de software y en el diseño de las computadoras

• Para ello necesitamos establecer criterios de evaluación

Page 26: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 26

FACILIDAD DE ESCRITURA

• la facilidad de escritura es la medida de cuan fácil resulta usar un lenguaje para construir soluciones.

FACIL DE ESCRIBIR

•Simplicidad•Expresividad•Ortogonalidad•Soporte de Abstracción

Page 27: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 27

Simplicidad

• las características del lenguaje deben ser fáciles de capturar: entender y recordar

• atentan contra la simplicidad:– Muchas componentes elementales– Conocer subconjuntos de componentes– El mismo concepto semántico – distinta sintaxis– Distintos conceptos semánticos - la misma notación

sintáctica– Abuso de operadores sobrecargados

Page 28: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 28

Expresividad

• expresar la naturaleza del problema: alto/bajo nivel

• concentrar la atención en la resolución del problema

• es función de lo que se desea expresar • distinto nivel de abstracción

Page 29: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 29

Ortogonalidad

• El efecto de la combinación de características debe entenderse fácilmente y ser predecible

• Proporciona un mayor grado de generalidad sin restricciones ni casos especiales.

• El usuario comprende mejor si tiene un pequeño número de primitivas y un conjunto consistente de reglas de combinación.

Page 30: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 30

Soporte de abstracción

• Concepto clave para manejar la complejidad

• Abstracción de procesos y de datos• Principio de diseño: Ocultamiento de la

información

Page 31: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 31

LEGIBILIDAD• Fácil de leer a las personas (equipo)

LEGIBILIDAD•SEMANTICA•SINTAXIS•DEFINICION•ESTRUCTURAS DE DATOS•ESTRUCTURAS DE CONTROL

Page 32: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 32

Semántica/Sintaxis

• Restricciones semánticas• If-then-else anidados• Separación de sentencias• indentación

Page 33: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 33

Sintáxis

• Documentación y comentarios• Elección de nombres• Uso de constantes• Convenciones léxicas

Page 34: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 34

Definición del lenguaje

• Precisión en la definición de la sintaxis y de la semántica

• ambigüedad • Portabilidad• Definiciones formales

Page 35: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 35

Estructuras de control

• Programación estructurada

Estructuras de datos• Facilidades para expresar los

datos del problema

Page 36: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 36

CONFIABILIDAD

– Correcto: cumple con las especificaciones– Certificación: – Verificación de programas: probar su

corrección

CONFIABLEChequeo de tiposRestricción de alias Robusto

Page 37: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 37

Chequeo de tipos

• Chequeos estáticos y dinámicos

RobustoCapacidad de prevenir situaciones• Manejo de excepciones

Page 38: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 38

Restricción de alias

• Dos nombres que referencian la misma posición de memoria

p

q

Page 39: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 39

MANTENIBILIDAD

MODIFICABLE•Modificabilidad•Factoreo•Localidad

Page 40: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 40

Mantenible

• Modificabiliad: facilidad de introducir cambios

• Factoreo: una sola vez y luego reusar

• Localidad: el efecto de una característica se restringirse a una porción local del programa

Page 41: Tema 1 a Uno Intro Evalua 2010

CONCEPTOS DE LENGUAJES 2010 41

EFICIENCIA

EFICIENCIA•Tiempo y Espacio•Esfuerzo humano•Optimizable