Este documento discute la importancia de estudiar lenguajes de programación. Explica que los lenguajes de programación son herramientas clave para la ciencia de la computación y que al estudiarlos se mejora la capacidad de producir software eficientemente, se desarrollan mejores algoritmos y se incrementa el conocimiento general sobre la programación. También destaca la importancia de considerar atributos como la simplicidad, claridad y ortogonalidad al evaluar la calidad de un lenguaje.
2. Prof. Eliezer Córdova
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 a la facilidad con la que puede integrarse a
otras herramientas”
3. Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Aumentar la capacidad para producir software.
– Conocer profundamente las características de los
lenguajes permite aprovechar su potencia y
evitar errores, minimizando esfuerzo
4. Prof. Eliezer Córdova
¿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.
5. Prof. Eliezer Córdova
¿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.
– Ejemplo: Orientación a Objetos (Herencia)
6. Prof. Eliezer Córdova
¿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
– Incrementamos la capacidad para expresar ideas
7. Prof. Eliezer Córdova
¿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
capacidades de C.
8. Prof. Eliezer Córdova
¿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.
9. Prof. Eliezer Córdova
¿Por qué estudiar Lenguajes?
Hace más fácil aprender nuevos lenguajes de
programación.
– Un conocimiento de la estructura de los lenguajes
de programación reduce considerablemente la
curva de aprendizaje de un lenguaje nuevo.
10. Prof. Eliezer Córdova
¿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.
11. Prof. Eliezer Córdova
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).
12. Prof. Eliezer Córdova
Facilidad de Escritura
Simplicidad
– ¿Qué tienen de malo los lenguajes “grandes” y “complejos”?
• Contienen tantas características que muchas de ellas
nunca llegan a usarse ni a entenderse.
• La complejidad del lenguaje crece de forma no lineal
con el número de características que incorpora.
13. Prof. Eliezer Córdova
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.
• Java, que nació con vocación de ser simple, tiende a
hacerse más grande y complejo.
14. Prof. Eliezer Córdova
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.
15. Prof. Eliezer Córdova
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 número de
primitivas y un conjunto consistente de reglas de
combinación.
16. Prof. Eliezer Córdova
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
A[y]=8
17. Prof. Eliezer Córdova
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.
19. Prof. Eliezer Córdova
Legibilidad
Semántica
– La semántica de un lenguaje especifica el significado
algorítmico de un programa y se define como un
conjunto de reglas que describen el comportamiento de
ese lenguaje en tiempo de ejecución.
20. Prof. Eliezer Córdova
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
• Indentación
21. Prof. Eliezer Córdova
Legibilidad
Sintaxis
– Ejemplos de una “mala” sintaxis:
• Restringir el tamaño de los identificadores.
• Uso del símbolo = para realizar asignaciones.
• Uso de llaves {... ...} para delimitar bloques.
22. Prof. Eliezer Córdova
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
– Definiciones formales
24. Prof. Eliezer Córdova
Confiabilidad
Correcto: cumple con las especificaciones
Verificación de programas: probar su corrección
Chequeo de tipos
Robusto
26. Prof. Eliezer Córdova
Mantenibilidad
– Modificabiliad: facilidad de introducir cambios
– Factoreo: una sola vez y luego rehusar
– Localidad: el efecto de una característica se
restringirse a una porción local del programa
28. Prof. Eliezer Córdova
¿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 de acción determinado y es más fácil resolver
ciertos problemas con él.
29. Prof. Eliezer Córdova
¿Qué hace a un lenguaje bueno?
Facilidad de verificación
– Debe proveer una manera de corroborar que el
programa efectivamente realiza su tarea.
– Una sintaxis sencilla facilita la verificación.
30. Prof. Eliezer Córdova
¿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 un buen entorno de programación, son más
usados en el mercado.
31. Prof. Eliezer Córdova
¿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.
– El mejor ejemplo de esto es programación para
Internet.
32. Prof. Eliezer Córdova
¿Qué hace a un lenguaje bueno?
Costo de uso
– Costo de ejecución
– Costo de traducción
– Costo de creación, prueba y uso
– Costo de mantenimiento