introducción. conceptos generales m.c. juan carlos olivares rojas

48
Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Upload: espiridion-cruce

Post on 23-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción. Conceptos Generales

M.C. Juan Carlos Olivares Rojas

Page 2: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Agenda• Clasificación de los lenguajes de programación.

Paradigmas de programación

• Elementos esenciales de un lenguaje de programación.

• Abstracción de los lenguajes de programación.

Page 3: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Clasificación de los Lenguajes de Programación

• Actividad: menciona desde tu punto de vista cuales son los cinco lenguajes de programación más populares alrededor del mundo.

• Los lenguajes más populares son según “Developers Shift to Dynamic Programming Language”, Linda Dailey Paulson, Computer Magazine, febrero de 2007, IEEE Computer Society Press, pp. 12-15.

Page 4: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción1. Java estático2. C estático3. C++ estático4. Visual Basic estático5. PHP dinámico6. Perl dinámico7. C#8. Python estático9. JavaScript dinámico10. Ruby dinámico

Page 5: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción11. SAS dinámico12. Delphi estático13. PL/SQL dinámico14. D estático15. ABAB dinámico16. Lisp/Scheme17. Ada estático18. Cobol dinámico19. Pascal estático20. Transact/SQL dinámico

Page 6: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción

La principal razón para que las personas aprendan

lenguajes de programación es utilizar la computadora

como una herramienta para la resolución de problemas.

Page 7: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción

• ¿Qué es un programa?

• “Un programa computacional es un conjunto de instrucciones detalladas, paso a paso, que le indican a la computadora cómo resolver un problema o realizar una tarea” (Laudon).

Page 8: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• ¿Qué es un lenguaje? Es un instrumento para

comunicar dos entidades entre sí.

• Es necesario que las dos entidades conozcan el mismo lenguaje para poderse comunicar en caso contrario se necesitará de un intermedio denominado traductor para podernos comunicar.

Page 9: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Problemática de Computación

Page 10: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Historia de los Lenguajes

Page 11: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Las primeras computadoras fueron programadas

sin lenguajes de programación, los técnicos sólo reconectaban los cables de los circuitos de la computadora para prepararla para varias tareas de procesamiento.

• La idea de almacenar programas en la memoria de la computadora abrió el camino a los lenguajes de programación que permitieron a los programadores escribir una serie de comando y cargarlos en la computadora para su ejecución.

Page 12: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Los primeros lenguajes de programación eran

primitivos, pero en el transcurso de varias décadas, evolucionaron hasta dar paso a los lenguajes de hoy en día.

• El lenguaje ensamblador permite a los programadores emplear palabras de comando abreviadas, como LDA (“Load”=cargar) en lugar de los 1´s y 0´s usados en el lenguaje máquina.

Page 13: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Después aparecieron los lenguajes más elaborados

para describir solución en base a algoritmos.

• Se creía que con estos lenguajes se eliminarían los errores de programación, y aunque los errores fueron menos frecuentes y el tiempo de desarrollo disminuyó significativamente, pero los programadores también cometían errores, por lo que era necesario seguir desarrollando nuevos lenguajes de programación.

Page 14: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Su característica importante es que tienen mayor

parecido con los lenguajes humanos o lenguajes naturales.

• De esta generación surge SQL y RPG-1, los cuales eliminan gran parte de la puntuación y las reglas gramaticales estrictas, que hacía complicados a los lenguajes de tercera generación.

Page 15: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• En la actualidad, los lenguajes de cuarta

generación se usan en aplicaciones de base de datos. Un solo comando de SQL, reemplaza muchas líneas de código de tercera generación.

• En 1982, un grupo de investigadores japoneses empezaron a trabajar en proyecto que denominaron de quinta generación que usaba Prolog, que es un lenguaje declarativo.

Page 16: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Además de clasificarse por nivel y generación, los

lenguajes de programación se clasifican por paradigma.

• Los programadores afrontan los problemas de diferentes maneras, por lo cual seleccionan el paradigma de programación más adecuado.

Page 17: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción

• La frase “Paradigma de Programación” alude a la manera de conceptualizar y estructurar las tareas que realiza una computadora.

• Existen numerosos paradigmas de programación y no son mutuamente excluyentes.

• Los lenguajes de programación se ordenan mediante los paradigmas de programación que soportan.

Page 18: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

ParadigmasParadigma Lenguajes Descripción

Procedural BASIC, Pascal, COBOL, FORTAN, Ada

Destaca los algoritmos lineales, paso a paso, que proporcionan a la computadora las instrucciones para resolver un problema o realizar una tarea.

Orientado a Objetos

Smalltalk, C++, Java Formula programas como una serie de objetos y métodos que interactúan para realizar una tarea específica.

Declarativo Prolog Se concentra en el uso de hechos y reglas para describir un problema.

Funcional LISP, Scheme, Haskell

Destaca la evaluación de expresiones, llamadas funciones.

Orientado a Eventos

Visual Basic, C# Se concentra en la selección de elementos de interfaz de usuario y la definición de rutinas de manejo de eventos que se disparan con diversas actividades del ratón o del teclado.

Page 19: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas
Page 20: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Otras clasificaciones• Los lenguajes se pueden clasificar de acuerdo a su

propósito pudiendo ser de propósito general cuando con ellos se pueden realizar múltiples actividades; o bien, de propósitos específico, cuando realizan una sola acción de excelente manera.

• Los lenguajes de programación de propósito general (C, Java, Ada, Pascal, etc.) son los más utilizados.

Page 21: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Otras Clasificaciones• Los lenguajes de propósito general son como los

autos sedán, sirven para todo, pero no son muy buenos para correr (deportivos) o para carga (trailer) por lo que se necesita de lenguajes de propósito específico (carros especiales) para ciertas circunstancias. Al final de cuentas, dichos lenguajes sirven para lo mismo, resolver problemas, que en el caso de los carros es transporte.

Page 22: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Otras clasificaciones• ¿Por qué es necesario aprender más de un

lenguaje de computación?

• Por que en general, se busca utilizar la herramienta más sencilla y a la vez poderosa para resolver problemas de computación. Dominando diversos lenguajes se puede seleccionar aquel que se acople de mejor manera a nuestras necesidades.

Page 23: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Elementos esenciales de un lenguaje de programación.

• Los lenguajes de programación poseen diferentes características que a continuación se muestran.

• Actividad: ¿Cuáles son las características y partes que tiene un lenguaje natural como el Español?

• ¿Qué partes y características tiene un Lenguaje de Programación de Computadoras como C?

Page 24: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características• Legibilidad: Un programa es legible si la

estructura subyacente del algoritmo y los datos que el programa representa quedan de manifiesto al inspeccionar el texto del programa.

• Facilidad de Escritura: Las características sintácticas que hace que un programa sea fácil de escribir suelen hallarse en conflicto con las características que facilitan su lectura.

Page 25: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características• Facilidad de Verificación: Entender cada

enunciado de un programa es relativamente fácil, el proceso global de crear programas correctos es en extremo difícil, por lo que se necesitan técnicas que permitan probar que el programa es matemáticamente correcto.

Page 26: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características

• Símbolos de Operadores: Casi todos los lenguajes emplean los caracteres especiales (+) y (-) para representar las 2 operaciones aritméticas básicas. Casi todos los lenguajes adoptan alguna combinación y utilizan caracteres especiales para ciertos operadores.

Page 27: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características• Facilidad de Traducción: la traducción de los

programas se dificulta conforme aumenta el número de construcciones sintácticas especiales. La clave para una traducción fácil es la regularidad de la estructura.

• Carencia de Ambigüedad: Una construcción ambigua permite dos o más interpretaciones distintas. El problema de ambigüedad surge por lo común no en la estructura de elementos individuales del programa, sino en la interacción entre diferentes estructuras.

Page 28: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características• Conjunto de Caracteres: Existen varios conjuntos de

caracteres de uso amplio, como el conjunto ASCII, cada uno con un conjunto diferentes de caracteres especiales, además de las letras y dígitos básicos.

• Identificadores: La sintaxis básica para identificadores, una cadena de letras y dígitos que comienzan con una letra, es la mas usada. Las variaciones entre lenguajes se dan principalmente en la inclusión opcional de caracteres especiales como punto (.) y guión (-)

Page 29: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características• Palabras clave y palabras reservadas: Una palabra

clave es un identificador que se usa como una parte fija de la sintaxis de un enunciado, por ejemplo “IF”. Una palabra clave es una palabra reservada y no se puede utilizar como un identificador. Casi todos los lenguajes emplean actualmente palabras reservadas con lo cual se mejora la capacidad de detección de errores de los traductores.

Page 30: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características• Comentarios: son mensajes que nos permiten

mejorar la legibilidad de los programas sin interferir con su funcionamiento. Los comentarios pueden ser codificados de varias maneras dependiendo del lenguaje, como renglones separados en Fortran, “/*” y “*/” en C, al final de un renglón como en Ada, en un renglón (al principio o al final) con “//” como en C++, o “!” en Fortran 90.

Page 31: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características• Espacios en Blanco: varían ampliamente de lenguaje

a lenguaje. En Fortran no son significativos, excepto en cadena de caracteres. En Snobol 4 la concatenación es por medio de un espacio en blanco y también se utiliza como separador entre elementos de un enunciado. En C se pasan por alto.

• Delimitadores: es un elemento sintáctico que se usa simplemente para señalar el principio o final de alguna unidad sintáctica, como un enunciado o expresión.

Page 32: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características

• Formatos de campos libres y fijos: una sintaxis es de campo libre si los enunciados de un programa se pueden escribir en cualquier parte de un renglón o las interrupciones entre renglones. Una sintaxis de campo fijo, utiliza la posición sobre un renglón de entrada para transmitir información.

Page 33: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Características

• Expresiones: son funciones que acceden a objetos de datos en un programa y devuelven algún valor. Las expresiones son los bloques sintácticos básicos de construcción a partir de los cuales se construyen enunciados.

• Enunciados: constituyen el componente sintáctico más destacado en los lenguajes imperativos. Su sintaxis tiene un efecto decisivo sobre la regularidad, legibilidad y facilidad de escritura generales del lenguaje.

Page 34: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Traductores de lenguaje• Son programas que traducen los programas

fuente (escritos en lenguaje de alto nivel) a lenguaje máquina

PROGRAMAPROGRAMAFUENTEFUENTE TRADUCTORTRADUCTOR LENGUAJELENGUAJE

MAQUINAMAQUINA

Page 35: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Los traductores se dividen en:

• Compiladores: Traduce los programas fuente (escritos en lenguaje de alto nivel) a lenguaje máquina. Ej. C y FORTRAN

• Intérpretes: Es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. Ej. BASIC, Smalltalk

Page 36: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Traducción• La traducción se divide en 2 partes principales

• Análisis del programa fuente de entrada• Síntesis del programa objeto ejecutable

• Un compilador básico realiza lo anterior de la manera siguiente:

Page 37: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Estructura de un compilador

Page 38: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Proceso de Compilación

Page 39: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

• Ensamblador.Ensamblador.

• Preprocesador.Preprocesador.

• Traductor.Traductor.

• Interprete.Interprete. Compilador. Compilador.

Traducción, Interpretación y Compilación

Page 40: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas
Page 41: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Abstracción de los lenguajes de programación.

• La abstracción hace referencia al nivel que se encuentran orientados los lenguajes de programación.

• Los niveles de abstracción hacen referencia a que tan fácil y eficientes son los lenguajes de programación.

Page 42: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Los lenguajes se clasifican de diferentes maneras.

Pueden dividirse en 2 categorías principales:

• Lenguaje de Bajo Nivel: Incluyen comandos que son específicos para una familia de microprocesadores determinados. Se requiere que un programador escriba instrucciones en lenguaje de bajo nivel para ese hardware específicamente, estas dependen del tipo de procesador, registros y direcciones de memoria.

Page 43: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Lenguaje de Alto Nivel

• Proporciona un nivel de abstracción que oculta el lenguaje ensamblador o de bajo nivel y proporciona palabras y gramática de comandos que son mas parecidos al lenguaje humano.

Page 44: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Introducción• Lenguajes de alto nivel como Cobol, Basic, Java y

C, facilitan el proceso de programación al reemplazar cadenas ininteligibles de 1´s y 0´s, o comandos de ensamblador, con comandos mas sencillos como Print y Write.

• Los comandos de lenguaje de alto nivel eliminan muchas líneas de código al incluir en un solo comando de alto nivel varios comandos de bajo nivel

Page 45: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Clasificación de los Lenguajes de Programación

LenguajesLenguajes máquinamáquina

Son Son directamente directamente

inteligibles inteligibles por la por la

computadora computadora (0 y 1)(0 y 1)

LenguajesLenguajes de alto nivelde alto nivel

Sus instrucciones Sus instrucciones son muy fáciles de son muy fáciles de

recordar pero recordar pero necesitan necesitan

traducirsetraducirse a a lenguaje máquina lenguaje máquina por medio de un por medio de un

compilador o compilador o intérprete.intérprete.

LenguajesLenguajes de bajo nivelde bajo nivel

Sus Sus instrucciones instrucciones

son mas son mas sencillas de sencillas de

recordar, pero recordar, pero necesitan ser necesitan ser traducidas traducidas al al

lenguaje lenguaje máquina.máquina.Ensamblador C++

VisualBasic

Fortran

Pascal

Page 46: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Ejemplo de instrucciones de suma y resta

Lenguaje de alto nivel

Lenguaje de bajo nivel

(Ensamblador)

Lenguaje máquina

+ ADD 100101

_ SUB 010011

Page 47: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

Referencias• Ferreira, R., Material de la Unidad 1 del Curso de

Lenguajes de Programación, Instituto Tecnológico de Morelia.

Page 48: Introducción. Conceptos Generales M.C. Juan Carlos Olivares Rojas

¿Preguntas, dudas y comentarios?