• No se han encontrado resultados

Historia de los Lenguajes

N/A
N/A
Protected

Academic year: 2018

Share "Historia de los Lenguajes"

Copied!
52
0
0

Texto completo

(1)

Lenguajes de Programación

(2)

Slide  2

Lenguajes de Programación

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.

“el valor de un lenguaje se debe juzgar según la forma en que afecta la producción de Software y

(3)

Objetivos

Adquirir habilidad de apreciar y evaluar lenguajes, identificando sus límites y posibilidades.

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

(4)

Slide  4

Contenido:

¿Por qué estudiar Lenguajes?

Historia de los Lenguajes

Paradigmas en Lenguajes

Criterios para evaluar los lenguajes de

programación

(5)

¿Por qué estudiar Lenguajes?

Aumentar la capacidad para producir software.

– Conocer profundamente las características de los

(6)

Slide  6

¿Por qué estudiar Lenguajes?

Mejora la habilidad para desarrollar mejores

algoritmos.

– Aprendemos a elaborar los algoritmos más

eficientes en concordancia con el lenguaje que estamos utilizando.

(7)

¿Por qué estudiar Lenguajes?

Mejora el uso de su lenguaje de programación

preferido.

– Si se entiende como se implementa cada

característica se mejora la capacidad para escribir programas eficientes.

(8)

Slide  8

¿Por qué estudiar Lenguajes?

Incrementar el vocabulario

– El lenguaje

• equivale a comunicación.

• es una ayuda y una limitación al pensamiento.

• permite expresar y estructurar el pensamiento

(9)

¿Por qué estudiar Lenguajes?

Incrementa el conocimiento de construcciones

posibles.

– Libera la mente para poder pensar en términos del

problema y no de determinado lenguaje.

– Ejemplo: Tratar de resolver todo en termino de las

(10)

Slide  10

¿Por qué estudiar Lenguajes?

Permite elegir mejor el lenguaje a utilizar para

cada tarea.

– Conocer las fortalezas y debilidades de los

diferentes lenguajes nos permite saber que

problema podemos resolver más fácilmente con cada uno y por lo tanto se reduce el esfuerzo de codificación.

• CGI de Internet vs. Programar un controlador de

dispositivo.

• calculo ADA – Fortran

(11)

¿Por qué estudiar Lenguajes?

Hace más fácil aprender nuevos lenguajes de

programación.

– Un conocimiento de la estructura de los lenguajes

(12)

Slide  12

¿Por qué estudiar Lenguajes?

Hace más fácil el diseño e implementación de

lenguajes.

– El programador puede convertirse en diseñador o

implementador de un lenguaje.

– O no necesariamente nuevos lenguajes de

programación, pero cuando programamos muchas veces necesitamos crear códigos de comunicación.

(13)

Contenido:

¿Por qué estudiar Lenguajes?

Historia de los Lenguajes

Paradigmas en Lenguajes

Criterios para evaluar los lenguajes de

programación

(14)

Slide  15

ENIAC

(15)
(16)

Slide  22

(17)

Contenido:

¿Por qué estudiar Lenguajes?

Historia de los Lenguajes

Paradigmas en Lenguajes

Criterios para evaluar los lenguajes de

programación

(18)

Slide  24

Paradigmas de Lenguajes

Se reconoce generalmente 4 paradigmas de programación:

– Imperativo (Estructurado)

– Aplicativo (Funcional)

– Orientado a Objetos

(19)

Lenguajes Imperativos

Su objetivo es entender y definir el estado de la

máquina (conjunto de posiciones de memorias, cada una conteniendo un valor).

Lenguajes orientados a instrucciones

El programa consiste en elaborar un conjunto de

instrucciones para que la máquina llegue a la respuesta.

Ejemplos: C, Fortran, Pascal, Cobol

(20)

Slide  26

Lenguajes Imperativos

Programación: serie de pasos (input, cálculo, ouput).

(21)

Lenguajes Funcionales

Su objetivo es entender la función que produciría la respuesta deseada.

Es orientada hacia la composición de funciones.

Programar consiste en construir la función que halle la respuesta.

Ejemplos: ML, Lisp, Scheme, Haskell

(22)

Slide  28

Lenguajes Funcionales

Programación: colección de funciones que se combinan en formas complejas para construir nuevas funciones.

(23)

Orientados a Objetos

Su objetivo es modelar el problema con elementos similares a los realmente presentes.

Programar significa generar objetos que

intercambian mensajes entre si para resolver un problema.

Ejemplos: Smalltalk, C++, Java, Squeak, C#

(24)

Slide  30

Orientados a Objetos

Lenguajes imperativos que unen diseños aplicativos con sentencias imperativas.

Sintaxis: Conjunto de objetos (clases) conteniendo datos (concepto imperativo) y métodos (conceptos aplicativos).

Programación: colección de objetos que interactúan pasándose mensajes que transforman estados.

(25)

Lenguajes Lógicos

Definen reglas para decidir cuando la respuesta ha sido alcanzada.

Utiliza un conjunto de reglas para deducir los atributos de la respuesta.

Ejemplos: Prolog

(26)

Slide  32

Contenido:

¿Por qué estudiar Lenguajes?

Historia de los Lenguajes

Paradigmas en Lenguajes

Criterios para evaluar los lenguajes de

programación

(27)
(28)

Slide  34

Facilidad de Escritura

La facilidad de escritura es la medida de cuan fácil

resulta usar un lenguaje para construir soluciones.

Simplicidad

Claridad

Ortogonalidad

(29)

Facilidad de Escritura

Simplicidad

– El lenguaje debería ser lo suficientemente pequeño y simple para

ser entendido en su totalidad

• Un pequeño número de construcciones primitivas.

• Un conjunto consistente de reglas para combinarlas (ortogonalidad).

– ¿Qué tienen de malo los lenguajes “grandes” y “complejos”?

• Contienen tantas características que muchas de ellas nunca llegan a usarse ni a entenderse.

(30)

Slide  36

Facilidad de Escritura

Simplicidad

– Sin embargo,

• El lenguaje más usado (C++) es complejo.

Uno de los más recomendados (Ada) es

grande y complejo.

(31)

Facilidad de Escritura

Claridad

– Un programador sólo puede escribir programas fiables si

entiende con toda claridad lo que significa (implica) cada una de las estructuras del lenguaje.

– La especificación del lenguaje y la calidad de su

documentación es absolutamente crítica en este aspecto: • Debe evitarse cualquier ambigüedad.

No debe ser necesario escribir y ejecutar

fragmentos de código para descubrir el significado de una característica del lenguaje.

(32)

Slide  38

Facilidad de Escritura

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.

– Las reglas del lenguaje deben tener las mínimas

excepciones posibles.

El usuario comprende mejor si tiene un pequeño

(33)

Facilidad de Escritura

Ortogonalidad

 Si es ortogonal, un lenguaje es fácil de aprender y usar.

 Por ejemplo: Asignación y Tipos

X=5

F(x)=x+3

(34)

Slide  40

Facilidad de Escritura

Ortogonalidad

– ¿Qué tienen de malo la falta de ortogonalidad?

• Que hace imposible deducir nuevas propiedades del lenguaje de las que ya se conocen.

• Que va en contra de la claridad.

– Ejemplos de falta de ortogonalidad:

• En Pascal todos los tipos escalares pueden leerse y escribirse, excepto los booleanos que sólo pueden escribirse.

• En C las funciones pueden retornar “structs” pero no “arrays

(35)

Facilidad de Escritura

Soporte de Abstracción

– La abstracción es la capacidad para definir y utilizar

estructuras y operaciones muy complicadas de forma que la complejidad quede oculta.

– Concepto clave para manejar la complejidad.

– Abstracción de procesos y de datos.

(36)

Slide  42

Legibilidad

Fácil de leer a las personas (equipo)

SEMANTICA

SINTAXIS

DEFINICION

ESTRUCTURAS DE DATOS

(37)

Legibilidad

Semántica

– La semántica de un lenguaje especifica el significado

(38)

Slide  44

Legibilidad

Sintaxis

– La sintaxis determina la forma en que se combinan los elementos del

lenguaje para construir sentencias y programas.

– Unas reglas sintácticas adecuadas son fundamentales para que los

programas sean legibles.

• Documentación y comentarios

• Elección de nombres

• Uso de constantes

• If-then-else anidados

• Separación de sentencias

(39)

Legibilidad

Sintaxis

– Ejemplos de una “mala” sintaxis:

Restringir el tamaño de los identificadores.

Uso del símbolo = para realizar asignaciones.

Palabras reservadas con más de un significado (static

en en C).

(40)

Slide  46

Legibilidad

Definición del lenguaje

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

Ambigüedad: ejemplo, M(i) puede significar un

elemento del arreglo M ó una llamada a la función M

– Portabilidad

(41)

Legibilidad

Estructuras de control

– Programación estructurada

Estructuras de datos

(42)

Slide  48

Confiabilidad

 Correcto: cumple con las especificaciones

 Verificación de programas: probar su corrección

 Chequeo de tipos

(43)

Confiabilidad

Chequeo de tipos

– Chequeos estáticos y dinámicos

Robusto

– Capacidad de prevenir situaciones

(44)

Slide  50

Mantenibilidad

Modificabilidad

Factoreo

(45)

Mantenibilidad

Mantenible

Modificabiliad: facilidad de introducir

cambios

Factoreo: una sola vez y luego rehusar

Localidad: el efecto de una característica

(46)

Slide  52

Eficiencia

 Tiempo y Espacio

 Esfuerzo humano

(47)

Contenido:

¿Por qué estudiar Lenguajes?

Historia de los Lenguajes

Paradigmas en Lenguajes

Criterios para evaluar los lenguajes de

programación

(48)

Slide  54

¿Qué hace a un lenguaje bueno?

Naturalidad de la aplicación

– La estructura del programa refleja la estructura lógica del

algoritmo.

– Cada lenguaje generalmente se especializa en un campo

(49)

¿Qué hace a un lenguaje bueno?

Facilidad de verificación

– Debe proveer una manera de corroborar que el programa

efectivamente realiza su tarea.

(50)

Slide  56

¿Qué hace a un lenguaje bueno?

Ambiente de programación

– Debe contar con un entorno que facilite la programación

en el lenguaje.

– Generalmente lenguajes no tan buenos, pero que tienen

(51)

¿Qué hace a un lenguaje bueno?

Portabilidad

– Que tan fácil se puede transportar la aplicación de la

máquina en que se desarrolló a otras máquinas donde va a ser ejecutada.

(52)

Slide  58

¿Qué hace a un lenguaje bueno?

Costo de uso

– Costo de ejecución

– Costo de traducción

– Costo de creación, prueba y uso

Referencias

Documento similar

En cualquier caso, la cavidad faríngea y laríngea típica del hombre moder- no no aparece en ninguno de los llamados Neandertales clásicos (entre 100.000 y 35.000 años) ";

En el Modelo Relacional se puede usar el c´ alculo de predicados de primer orden (CPPO) porque una BDR siempre puede verse como una interpretaci´ on (I) de un lenguaje de primer

610. En una operación nacional la responsabilidad recae en el comandante opera- cional, quien desarrolla en ZO el marco logístico diseñado para la operación por el nivel

Avner le respondió que cierto año escuchó al Rambán enseñando la parashá Haazinu y destacó que en el canto de Haazinu estaban contenidos todos los preceptos y todo lo que iba a

● Recuperar el césped, sembrar nuevas plantas, utilizar herbicidas o elegir el mejor gotero son algunas de las tareas que LEROY MERLIN recomienda para ponerse manos a la obra con

17. Sup´ongase que se dispone de un conjunto de k M´aquinas de Turing, de forma que cada una de ellas tiene su propio cabezal de lectura/escritura, su propio conjunto de estados y

En este sentido, Handel, De Soto y London (1968), máximos ex- ponentes de la tesis de que 10s sujetos utilizan imagenes espaciales para resolver problemas de deducción,

Los lenguajes de programación de una computadora en particular se conocen como código de máquinas o lenguaje de máquinas y son los que permiten al programador por medio de un