• No se han encontrado resultados

clase1-Lenpro

N/A
N/A
Protected

Academic year: 2020

Share "clase1-Lenpro"

Copied!
37
0
0

Texto completo

(1)

LENGUAJES DE

PROGRAMACIÓN

CLASE N°1

Leissi M. Castañeda León

(2)

Que veremos hoy?

1.

Razones para estudiar los conceptos de los lenguajes

de programación

2.

Aplicaciones de los lenguajes de programación

3.

Criterio de Evaluación de Lenguajes

Influencias en el Diseño de Lenguajes

4.

Influencias en el Diseño de Lenguajes

5.

Categorías de Lenguajes

6.

Compensación del diseño de lenguajes

7.

Métodos de implementación

(3)

1.1 Razones para estudiar

los conceptos de los

(4)

1.1 Razones para estudiar los conceptos

de los lenguajes de programación

Incrementar la habilidad para expresar ideas.

Aumentar el background para escoger lenguajes

apropiados.

Incrementar la habilidad para aprender nuevos

Incrementar la habilidad para aprender nuevos

lenguajes

Mejor entendimiento de la importancia de la

implementación

(5)

1.2 Aplicaciones de

los lenguajes de

(6)

1.2 Aplicaciones de los lenguajes de

programación

Aplicaciones Científicas

Muchos cálculos en punto flotante

FORTRAN

Aplicaciones de Negocio

Producir reportes, uso de números decimales y caracteres

COBOL

COBOL

Inteligencia Artificial

Manipulación de símbolos en lugar de números LISP

Programación de Sistemas

Eficiencia necesaria por el uso contínuo

C

Software Web

(7)

1.3 Criterio de

evaluación de

(8)

1.3 Criterio de evaluación de Lenguajes

Legibilidad (Readability):

La facilidad en que

los programas pueden ser leídos y entendidos.

Habilidad de escritura (Writability):

La

facilidad en que los lenguajes pueden ser usados

facilidad en que los lenguajes pueden ser usados

para crear programas.

Fiabilidad (Reliability):

Conformidad con las

especificaciones (cumple con sus especificaciones)

(9)
(10)

Legibilidad (Readability)

Sencillez general

Un conjunto manejable de características y constructores. Pocas características de multiplicidad (medios de hacer la

misma operación).

Mínima sobrecarga de operadores.

Ortogonalidad

Un número relativamente pequeño de constructores primitivos

puede ser combinado en un número relativamente pequeño de alternativas.

Cada posible combinación es legal.

Declaraciones de Control

(11)

Tipos de Datos y Estructuras

La presencia de mecanismos adecuados para representar

estructuras de datos.

Consideraciones Sintácticas

Consideraciones Sintácticas

Identificadores de formas: composición flexible.

Palabras especiales y métodos para formar declaraciones

compuestas.

Formas y significados: construcciones autodescriptivas, palabras

(12)

Habilidad de Escritura(Writability)

Simplicidad y Ortogonalidad

Pocos constructores, un pequeño número de primitivas, un

pequeño conjunto para combinarlas.

Soporte para la Abstracción

La habilidad para definir y usar estructuras complejas u La habilidad para definir y usar estructuras complejas u

operaciones en maneras que permitan que los detalles sean ignorados.

Expresividad

Un conjunto de maneras relativamente convenientes de

especificar operaciones.

Ejemplo: la inclusión de la declaracion

for

en muchos

(13)

Fiabilidad (Reliability)

Checkeo de Tipos

Testing para los errores de tipos.

Manejo de excepciones

Interceptar errores en tiempo de corrida (run-time) y tomar las

medidas correctivas.

Aliasing

Presencia de dos o más distintos métodos de referencia para la

misma localización de memoria.

Legibilidad y facilidad de escritura

Un lenguaje que no soporta maneras “naturales” de expresar un

(14)

Costo

Entrenamiento para los programadores para usar el

lenguaje

Escritura de programas (relativo a aplicaciones

particulares)

Compilación de programas

Compilación de programas

Ejecución de programas

Sistemas de implementación de lenguajes:

disponibilidad de compiladores libres.

(15)

Otros

Portabilidad

La facilidad mediante la cual los programas pueden

ser movidos de una implementacion a otra

Generalidad

(16)

1.4 Influencias en el

diseño de los

(17)

1.4 Influencias en el diseño de los

lenguajes

Arquitectura de computadoras

Los lenguajes son desarrollados en torno a la arquitectura de

computadoras prevalente, conocida como la arquitectura von Neumann.

Metodologías de Programación

Nuevas metodologías de desarrollo de software (ejemplo,

(18)

I. Arquitectura de Computadoras

Arquitectura de computadoras bien conocida: Von

Neumann

Lenguajes imperativos, son los mas dominantes, por el

uso de computadoras von Neumann

Los datos y programas son almacenados en memoria. Los datos y programas son almacenados en memoria.

La memoria está separada de la CPU.

Las instrucciones y los datos son llevados de la memoria hacia el

CPU.

Bases para lenguajes imperativos

Las variables son modelos de las celdas de memoria

Declaraciones de asignación son modelos de envío

(19)
(20)

I. Metodologías de Programación

1950s y 1960s: aplicaciones simples; preocupación

acerca de las deficiencias de la máquina.

Finales 1960s: Eficiencia de la gente viene a ser

importante; legibilidad, mejor control de estructuras

Programación estructurada

Diseño descendente (top-down) y refinamiento paso a paso.

Diseño descendente (top-down) y refinamiento paso a paso.

Finales 1970s: de orientado a procesos a orientado a

datos

Abstracción de datos

Mediandos 1980s: programación orientada a objetos

(21)
(22)

1.5 Categorías de los lenguajes

Imperativo

Características centrales son las variables, declaraciones de asignación

e iteración.

Ejemplos: C, Pascal

Funcional

La característica principal es realizar cálculos mediante la aplicación de

funciones a parámetros dados.

Ejemplos: LISP, Scheme

Lógico

Lógico

Basado en reglas (las reglas son especificadas en cualquier orden).

Ejemplo: Prolog

Orientado a Objetos

Abstracción de datos, herencia, binding tardío.

Ejemplos : Java, C++

Etiquetas

Nuevos; No son lenguajes de programación de por sí, pero son usados

(23)
(24)

1.6 Compensación del diseño de lenguajes

Fiabilidad vs. Costo de ejecución

Criterios conflictivos.

Ejemplo: Java demanda que todas las referencias a los

elementos de los arrays sean chekeadas para un indexado apropiado pero esto implica un incremento en los costos de ejecución

Legibilidad vs. Habilidad para escritura

Legibilidad vs. Habilidad para escritura

Criterios conflicitivos

Ejemplo: APL provee muchos operadores muy útiles (y un gran

número de símbolos nuevos), permitiendo escribir cálculos

complejos en un programa compacto pero al costo de una baja legibilidad

Flexibilidad en la habilidad para escritura vs.

Fiabilidad

Criterios conflictivos

(25)
(26)

1.7 Métodos de Implementación

Compilación

Los programas son traducidos a lenguaje de máquina.

Interpretación Pura

Los programas son interpretados por otros programas conocidos Los programas son interpretados por otros programas conocidos

como intérpretes

Sistemas de implementación Híbridos

(27)

Compilación

Traduce los programas de alto nivel (lenguaje fuente) a

código máquina (lenguaje de máquina).

Traducción Lenta, Ejecución rápida.

El proceso de compilación tiene muchas fases:

Análisis Léxico: convierte caracteres en el programa fuente a Análisis Léxico: convierte caracteres en el programa fuente a

unidades léxicas.

Análisis Sintáctico: transforma las unidades léxicas a árboles

Parser los cuales representan la estructura sintáctica del programa.

Análisis Semántico: genera código intermedio.

(28)

El Proceso de

Compilación

Algunos ejemplos

Algunos ejemplos

típicos de lenguajes

compilados: Fortran; la

familia de lenguajes

de C, incluyendo C++;

Ada, Pascal

(incluyendo su

(29)

Interpretación Pura

No traducción.

Fácil implementación de programas (los errores en

tiempo de ejecución pueden ser fácilmente e

inmediatamente mostrados).

Ejecución Lenta (de 10 a 100 veces más lenta que los

programas compilados).

programas compilados).

Frecuentemente requieren de mayor espacio.

Los programas escritos se suelen llamar “scripts”.

Los lenguajes interpretados mas conocidos en la

(30)
(31)

Sistemas de Implementación Híbrida

Un compromiso entre los compiladores e intérpretes

puros.

Un programa de un lenguaje de alto nivel es traducido a

lenguaje intermedio que permite una fácil interpretación.

Más rápido que una interpretación pura.

Más rápido que una interpretación pura.

Ejemplos:

Los programas Perl son parcialmente compilados para detectar

errores antes de la interpretación.

Implementaciones iniciales de Java fueron híbridos; la forma

(32)

Proceso de la

(33)
(34)

1.8 Entornos de Programación

La colección de herramientas usadas en desarrollo de

software

UNIX

Un sistema operativo antiguo y una colección de herramientas

Usado hoy en día con una GUI (e.g., CDE, KDE, o GNOME) que

corren sobre UNIX corren sobre UNIX

Borland JBuilder

Un entorno de desarrollo integrado para Java

Microsoft Visual Studio.NET

Un entorno visual complejo y grande

Usado para programar en C#, Visual BASIC.NET, Jscript, J#, or

(35)

Resumen

El estudio de los lenguajes de programación es

importante por muchas razones:

Incrementa nuestra capacidad para utilizar diferentes

constructores.

Nos habilita para escoger lenguajes mas inteligentemente. Nos hace aprender nuevos lenguajes mas fácilmente.

Muchos criterios importantes para evaluar lenguajes de

programación incluyen

programación incluyen

Legibilidad (Readability), Habilidad de Escritura (writability),

Fiabilidad (reliability), Costo

Las mayores influencias en el diseño de los lenguajes

han sido la arquitectura de las computadoras y las

metodologías de desarrollo de software.

Los mayores métodos de implementar lenguajes de

(36)

Finalmente, podemos decir que …

Un lenguaje de programación es una técnica estándar

de comunicación que permite expresar las instrucciones

que han de ser ejecutadas en una computadora.

Consiste en un conjunto de reglas sintácticas y

(37)

Referencias

Referencias

Referencias

Referencias

Bibliográficas

Bibliográficas

Bibliográficas

Bibliográficas

Referencias

Documento similar

❖ Máximo de hasta $115,000 para MOD 120, y hasta $90,000 para Mod 150, como asistencia de compra para el pago inicial y costos de cierre (los fondos del préstamo pueden ser

Clonacepam El inyectable puede ser administrado por vía enteral 2,7 después de ser diluido con 1 ml de agua de inyección 2 (importante tener en cuenta los excipientes: etanol,

Reglamento (CE) nº 1069/2009 del parlamento Europeo y del Consejo de 21 de octubre de 2009 por el que se establecen las normas sanitarias apli- cables a los subproductos animales y

de su infinito amor.. imperio sobre las nubes, que.. desgracias vencidas, se vu elven las calamidades risueñas.. Publicad sus maravillas, sus inumerables beneficios ,

Existen múltiples proyectos los cuales pueden ser usados como referentes para la investigación, por sus construcciones, materiales, métodos de ventilación, recolección de

Este libro intenta aportar al lector una mirada cuestiona- dora al ambiente que se desarrolló en las redes sociales digitales en un escenario de guerra mediática mantenido por

Este proyecto consiste en crear un módulo en Python para la representación geográfica de datos de manera visual.. Además de ser código abierto, destaca la facilidad de su

En este trabajo se propuso la purificación de anticuerpos epítope específicos IgY e IgG anti-GALNS y su aplicación en la implementación de una técnica ELISA tipo