Está en la página 1de 11

ESTRUCTURA Y SEMÁNTICA

DE LENGUAJES DE
PROGRAMACIÓN

CAP. 1. INTRODUCCIÓN
UMSS - 2023
¿CÓMO ELEGIMOS EL LENGUAJE DE
PROGRAMACIÓN?

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 2


Criterios de evaluación de un lenguaje

Fuente: Sebesta, 2021

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 3


Legibilidad
• La facilidad con la que se pueden leer y entender los programas.
• Las construcciones del lenguaje se diseñaban más desde el punto de vista del ordenador que
de los usuarios del mismo. Sin embargo, en los años 70 se desarrolló el concepto de ciclo de
vida del software (Booch, 1987).
• Dado que la facilidad de mantenimiento viene determinada en gran medida por la legibilidad
de los programas, ésta se convirtió en una importante medida de la calidad de los programas
y los lenguajes de programación.

Se pasó de una orientación hacia la máquina a una orientación hacia el ser humano.

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 4


Legibilidad
• Simplicidad
- un lenguaje con un gran número de construcciones básicas es más difícil de aprender que
uno con un número menor.
- característica que complica un lenguaje de programación es la multiplicidad de funciones,
es decir, tener más de una forma de realizar una determinada operación. Por ejemplo, en Java,
un usuario puede incrementar una simple variable entera de cuatro maneras diferentes:
count = count + 1
count += 1
count ++
++ count

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 5


Legibilidad
• Simplicidad
sobrecarga de operadores, en la que un solo símbolo de operador tiene más de un
significado. Aunque esto es a menudo útil, puede llevar a una reducción de la legibilidad si se
permite a los usuarios crear su propia sobrecarga y no lo hacen de forma sensata.
Por ejemplo el operador +, para número, para arreglos …

• Ortogonalidad
La ortogonalidad en un lenguaje de programación significa que un conjunto relativamente
pequeño de construcciones primitivas puede combinarse de un número relativamente pequeño
de maneras para construir las estructuras de control y de datos del lenguaje.
. La falta de ortogonalidad provoca excepciones a las reglas del lenguaje.

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 6


Legibilidad
• Ortogonalidad
Por ejemplo, en un lenguaje de programación que admita punteros, debería ser posible definir
un puntero que apunte a cualquier tipo específico definido en el lenguaje. Sin embargo, si no se
permite que los punteros apunten a matrices, no se podrán definir muchas estructuras de datos
potencialmente útiles definidas por el usuario.
La ortogonalidad está estrechamente relacionada con la simplicidad: Cuanto más ortogonal sea
el diseño de un lenguaje, menos excepciones requieren las reglas del lenguaje.
Como ejemplos de la falta de ortogonalidad en un lenguaje de alto nivel, considere las
siguientes reglas y excepciones en C. Aunque C tiene dos tipos de datos estructurados, las
matrices y los registros (structs), los registros pueden ser devueltos desde las funciones, pero
las matrices no.

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 7


Legibilidad
• Tipos de datos
La presencia de facilidades adecuadas para definir tipos y estructuras de datos en un lenguaje es
otra ayuda importante para la legibilidad.
Por ejemplo, en la versión original de C podríamos tener una asignación como la siguiente:
timeout = 1
en un lenguaje que incluya tipos booleanos, tendríamos lo siguiente:
timeout = true
• Diseño sintáctico
La sintaxis, o forma, de los elementos de un lenguaje tiene un efecto significativo en la legibilidad
de los programas. Ejemplos de elecciones de diseño sintáctico que afectan a la legibilidad: P,
Forma y significado,

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 8


Escribilidad (capacidad de escritura)
La capacidad de escritura es una medida de la facilidad con la que se puede utilizar un
lenguaje para crear programas para un dominio de problemas elegido. La mayoría de las
características del lenguaje que afectan a la legibilidad también afectan a la escritura.
• Simplicidad y ortogonalidad
Un número menor de construcciones primitivas y un conjunto consistente de reglas para
combinarlas (es decir, ortogonalidad) es mucho mejor que simplemente tener un gran número
de primitivas. Un programador puede diseñar una solución a un problema complejo tras
aprender sólo un conjunto sencillo de construcciones primitivas.
• Expresividad
Podría referirse a varias características dependiendo del tipo de lenguaje (operadores
potentes, formas convenientes para especificar cálculos u otras operaciones).
Por ejemplo, la inclusión de la sentencia for en Java hace que la escritura de bucles de conteo
sea más fácil que con el uso de while, que también es posible. Todo ello aumenta la capacidad
de escritura de un lenguaje.

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 9


Fiabilidad
Un programa es fiable si funciona según sus especificaciones en todas las condiciones. Los
siguientes puntos describen varias características del lenguaje que tienen un efecto
significativo en la fiabilidad de los programas en un lenguaje determinado:
• Comprobación de tipos
La comprobación de tipos es simplemente la comprobación de errores de tipo en un programa
dado, ya sea por el compilador o durante la ejecución del programa.
Ejemplo, el diseño de Java requiere la comprobación de los tipos de casi todas las variables y
expresiones en tiempo de compilación. Esto elimina prácticamente los errores de tipo en
tiempo de ejecución en los programas Java.
Pregunta para la clase …
• Manejo de excepciones
La capacidad de un programa para interceptar errores en tiempo de ejecución (así como otras
condiciones inusuales detectables por el programa), tomar medidas correctivas y luego
continuar es una ayuda obvia para la fiabilidad
Ada, C++, Java y C# incluyen amplias capacidades para el manejo de excepciones.

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 10


Fiabilidad
• El aliasing es tener dos o más nombres distintos en un programa que pueden ser usados para
acceder a la misma celda de memoria. Ahora se acepta generalmente que el aliasing es una
característica peligrosa en un lenguaje de programación.
• Legibilidad y escritura

Tanto la legibilidad como la capacidad de escritura influyen en la fiabilidad.


Cuanto más fácil sea escribir un programa, más probable será que sea correcto.
Los programas difíciles de leer son difíciles de escribir y de modificar.

UMSS - Ing. Informática - Patricia Elizabeth Romero R. 11

También podría gustarte