Title: Introduccin' Conceptos Generales
1Introducción. Conceptos Generales
- M.C. Juan Carlos Olivares Rojas
2Agenda
- 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.
3Clasificació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.
4Introducción
- 1. Java estático
- 2. C estático
- 3. C estático
- 4. Visual Basic estático
- 5. PHP dinámico
- 6. Perl dinámico
- 7. C
- 8. Python estático
- 9. JavaScript dinámico
- 10. Ruby dinámico
5Introducción
- 11. SAS dinámico
- 12. Delphi estático
- 13. PL/SQL dinámico
- 14. D estático
- 15. ABAB dinámico
- 16. Lisp/Scheme
- 17. Ada estático
- 18. Cobol dinámico
- 19. Pascal estático
- 20. Transact/SQL dinámico
6Introducció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.
7Introducció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).
8Introducció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.
9Problemática de Computación
10Historia de los Lenguajes
11Introducció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.
12Introducció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 (Loadcargar) en lugar de
los 1s y 0s usados en el lenguaje máquina.
13Introducció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.
14Introducció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.
15Introducció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.
16Introducció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.
17Introducció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.
18Paradigmas
19(No Transcript)
20Otras 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.
21Otras 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.
22Otras 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.
23Elementos 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?
24CaracterÃ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.
25CaracterÃ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.
26CaracterÃ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.
27CaracterÃ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.
28CaracterÃ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 (-)
29CaracterÃ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.
30CaracterÃ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.
31CaracterÃ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.
32CaracterÃ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.
33CaracterÃ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.
34Traductores de lenguaje
- Son programas que traducen los programas fuente
(escritos en lenguaje de alto nivel) a lenguaje
máquina
PROGRAMA FUENTE
TRADUCTOR
LENGUAJE MAQUINA
35Los 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
36Traducció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
37Estructura de un compilador
38Proceso de Compilación
39Traducción, Interpretación y Compilación
- Ensamblador.
- Preprocesador.
- Traductor.
- Interprete. ? Compilador.
40(No Transcript)
41Abstracció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.
42Introducció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.
43Introducció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.
44Introducción
- Lenguajes de alto nivel como Cobol, Basic, Java y
C, facilitan el proceso de programación al
reemplazar cadenas ininteligibles de 1s y 0s, 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
45Clasificación de los Lenguajes de Programación
Lenguajes de alto nivel
Lenguajes de bajo nivel
Lenguajes máquina
- Son directamente inteligibles por la computadora
(0 y 1)
- Sus instrucciones son muy fáciles de recordar
pero necesitan traducirse a lenguaje máquina por
medio de un compilador o intérprete.
Sus instrucciones son mas sencillas de recordar,
pero necesitan ser traducidas al lenguaje máquina.
Ensamblador
C
VisualBasic
Fortran
Pascal
46Ejemplo de instrucciones de suma y resta
47Referencias
- Ferreira, R., Material de la Unidad 1 del Curso
de Lenguajes de Programación, Instituto
Tecnológico de Morelia.
48Preguntas, dudas y comentarios?