You are on page 1of 10

CRITERIOS DE EVALUACIN DE LOS LENGUAJES SEGN ROBERT SEBESTA

Legibilidad. Uno de los ms importantes criterios para juzgar a un lenguaje de


programacin es la facilidad con la cual los programas pueden ser ledos o
entendidos. Antes de 1970, el desarrollo de software fue intentado largamente
en los trminos del cdigo de escritura. En la dcada de 1970, sin embargo el
ciclo de vida de los conceptos de software fue desarrollado; la codificacin fue
relegada a una representacin en un papel ms pequeo y el mantenimiento
fue reorganizado como gran parte del ciclo, esto en los trminos de costo.
Porque la facilidad de mantenimiento es determinada en gran parte por la
legibilidad de los programas, la legibilidad es un punto muy importante en de
la calidad de programas y los lenguajes de programacin. Sencillez. Dentro
de las caractersticas que contribuye a la legibilidad de un lenguaje de
programacin es la sencillez, la cual puede afectar fuertemente a la legibilidad.
Un lenguaje que tiene un gran nmero de componentes elementales es ms
difcil de aprender que uno que contenga un nmero pequeo. Los
programadores que utilizan los lenguajes de programacin tienen la tendencia
de aprender una parte de los mismos sin embargo ignoran otras caractersticas
de ellos. Esta razn muchas veces es utilizada como pretexto, cuando el
lenguaje tiene un gran nmero de componentes o elementos, pero este
argumento no es vlido. Los problemas de legibilidad ocurren cuando el
programador aprende de una forma diferente una aplicacin, con la cual el
analista este familiarizado. Teniendo tambin muchas caractersticas no es
solamente el detrimento de la simplicidad del lenguaje Otro problema es la
multiplicidad de caractersticas, es decir, tener ms de una forma determinada
para realizar una operacin en particular. Por ejemplo, en el lenguaje C se
puede incrementar una simple variable entera de cuatro diferentes maneras:
Contador = contador + 1 Contador =+ 1 ++ contador contador ++ Aunque la
ltima sentencia tiene una pequea diferencia semntica en comparacin con
las otros en algunos usos, las cuatro tiene el mismo significado cuando son
usadas como expresiones estando solas. Un tercer problema potencial es el
operador sobrecargado, en el cual un simple smbolo operador tiene ms de un
significado. Aunque esto es una caracterstica til, puede reducir la legibilidad
al leer si los usuarios estn permitiendo ellos mismos la generacin de
sobrecarga y ellos no lo hacen evidentemente. Por ejemplo, es claramente
aceptada la sobrecarga del signo + para usarlo en la suma tanto de enteros
como de reales o punto flotantes. En efecto esta sobrecarga simplifica un
lenguaje porque reduce el nmero de operadores. Sin embargo,
supuestamente, la definicin del programador del signo + usado entre arreglo
de dimensin simple puede significar la suma de todos los elementos de ambos
arreglos. Porque el significado usual de la adicin de vectores es
completamente diferente de esto, puede hacer ms confuso el programa para
ambos, el autor y los lectores. Un nivel de ejemplo ms extremo de la
confusin de programa puede ser un usuario definiendo el signo + usado entre
dos vectores para significar la diferencia entre los primeros elementos de los
mismos. Las sentencias del lenguaje pueden ser tambin muy simples. Por
ejemplo la sintaxis y el significado de las sentencias del lenguaje ensamblador
son un modelo de simplicidad. Es muy simple, sin embargo hacer programas
en lenguaje ensamblador es poco legible. Porque ellos carecen por completo de

sentencias de control, su estructura es ms sutil, porque sus sentencias son


ms simples, para realizar mejor esto se requiere un lenguaje equivalente de
alto nivel Ortogonalidad.
Ortogonalidad en un lenguaje de programacin significa que hay una
pequea relacin entre un conjunto de construcciones primitivas que pueden
ser combinados en un numero relativamente pequeo de manera que se
pueden construir las estructuras de control y de datos en el lenguaje. Adems,
cada combinacin posible de primitivas es legal y significativa as, la
ortogonalidad sigue de una simetra de lazos entre primitivos, mientras un
concepto del uso de ortogonalidad en el diseo puede ser ilustrado
comparando un aspecto de los lenguajes ensamblador de los ordenadores
centrales de la IBM y de la serie de VAX de superminicomputadoras. Nosotros
consideraremos solamente una sola situacin simple, la de agregar dos valores
numricos de 32- bit que residen o en memoria o en un registro y substituir
uno de los dos valores con suma para este propsito, la unidad IBM tiene dos
instruccin que tienen la siguiente forma: A Reg1, memory_cell. R Reg1, Reg2
Donde Reg1 y Reg2 representan registros. La semntica de ellos es Reg1
contenido(reg1) + contenido (memory_cell) Reg1 contenido(reg1) +
contenido(reg2) La instruccin de adicin VAX para valores enteros de 32 bits
es ADDL operando1, operando2 La semntica de la misma es: Operando2
contenido(operando1) + contenido(operando2) En este caso, cualquier
operando puede ser uno colocado en una celda de memoria con una
instruccin. El diseo de VAX tiene ortogonalidad por que aqu con una sola
instruccin se puede utilizar para colocar, en la celda memoria, un operando.
Hay dos maneras de especificar el operando, que puede ser la combinacin en
cualquier manera concebible. El diseo IBM disear no es ortogonal. Solamente
dos combinaciones de operaciones son legales fuera de las cuatro posibilidad,
y se requiere dos diferente instrucciones, A y AR. El diseo IBM es ser ms
estricto y por lo tanto menos fcil de escribir, por ejemplo, usted no puede
agregar un valor y colocarle el valor en una localizacin de memoria. Adems,
el diseo de IBM es ms difcil de aprender debido a las restricciones y
adiciones de la instruccin. La ortogonalidad se relaciona de cerca con la
simplicidad: cuanto ms ortogonal es el diseo de un lenguaje, menos son las
excepciones que se requieren de las reglas del lenguaje. Pocas excepciones
significan un grado ms alto de regularidad en el diseo, que hace que el
lenguaje sea ms fcil de aprender, leer y entender. Cualquiera que ha
aprendido una parte significativa del lenguaje ingls puede atestiguar la
dificultad de la multiplicidad de aprender las excepciones de una regla (por
ejemplo, i antes de e excepto despus c). Sin embargo Pascal es un moderno
lenguaje relativo, su diseo fue un largo nmero de tipos de reglas
inconsistentes para ser seguidas. Los procedimientos pueden tener a los dos
tipos de parmetros var y value, a menos que el procedimiento mismo lo
pase como un parmetro. La funcin puede retornar solamente tipos no
estructurados. Un parmetro de tipo formal para ser llamado; ello no puede ser
completado con la descripcin de tipos. Los archivos no pueden ser pasados
por valor. La lista de regla en y en. En otras palabras los tipos de reglas de

Pascal no son ortogonales. Demasiado ortogonalidad tambin puede causar


problemas. Quizs el lenguaje de programacin ms ortogonal es ALGOL 68.
Cada construccin del lenguaje en ALGOL 68 tiene un tipo, y no hay
restricciones en esos tipos. Adems, la mayora de las construcciones producen
valores.
Esta
libertad
de
combinaciones
permite
construcciones
extremadamente complejas. Por ejemplo, los smbolos condicionales pueden
aparecer como los izquierdos en las asignaciones, junto con la declaracin y
otras declaraciones clasificadas, mientras el resultado es una localizacin. Esta
forma extrema de ortogonalidad conduce a una innecesaria complejidad.
Adems, porque los lenguajes requieren una gran cantidad de primitivas, un
alto grado de ortogonalidad da lugar a una explosin de la combinacin. Tan
incluso si las combinaciones son simples, sus nmeros escarpados conducen a
la complejidad. La simplicidad en un lenguaje, por lo tanto, es por lo menos en
parte un resultado de una combinacin de un nmero relativamente pequeo
de construcciones primitivas y del uso limitado del concepto del ortogonalidad.
Algunos creen que los lenguajes funcionales ofrecen una buena combinacin
de la simplicidad y de ortogonalidad. Un lenguaje funcional es aqul que: sus
operaciones son hechas aplicando funciones a parmetros dados. En contraste,
los lenguajes imperativos, tales como C y PASCAL, las operaciones se
especifican sobre todo con variables y declaraciones de asignacin. El Lisp es
actualmente el lenguaje ms extensamente usado que utiliza la programacin
funcional. El Lisp no es un lenguaje funcional puro, porque tambin contiene
algunas caractersticas de lenguaje imperativo. Los lenguajes funcionales
ofrecen potencialmente la simplicidad total ms grande porque pueden lograr
todo con una sola construccin, la llamada de la funcin, que, se puede
combinar con otras llamadas de funciones de manera simple. Esta elegancia
simple es la razn por la que atraen al investigador de muchos lenguajes a los
lenguajes funcionales, como alternativa primaria a los lenguajes no funcionales
complejos, tales como Ada y PL1 Sentencias de Control. La programacin
estructurada revoluciona en la dcada de 1970 fue un reaccin para la pobre
legibilidad causada por la limitadas estructuras de control de algunos lenguajes
surgidos en la dcadas de 1950 y 1960. Particularmente, se reconoci
ampliamente que el uso indiscriminado de las declaraciones del goto reduce
seriamente la legibilidad del programa. Los programas que se pueden leer de
arriba hacia abajo (top down) son mucho ms fciles de entender que los
programas que requieren saltar visualmente la lectura del programa a partir de
una declaracin a otra declaracin no adyacente para seguir el orden de la
ejecucin. Sin embargo, en cierto lenguaje, los gotos que ramifican hacia arriba
son a veces necesarios; por ejemplo, se requieren para construir los ciclos
MIENTRAS QUE en FORTRAN 77. Sin embargo, las siguientes restricciones del
goto puede hacer que los programas sean menos legibles: 1. Deben preceder
sus tarjetas, exceptan cuando estn utilizados en los ciclos 2. Que sus tarjetas
deben nunca ser demasiado distantes. 3. El nmero de gotos debe ser limitado
Las versiones de Basic y de FORTRAN que estaban disponible en los aos 70 le
faltaban el control de sentencias que permitan fuertes restricciones en el uso
de gotos, as que los programas eran altamente legibles pero la escritura en
esos lenguajes era difcil. La mayora de los lenguajes de programacin se

disearon desde los ltimos aos de la dcada de 1960, sin embargo, han
incluido suficientes sentencias de control que se necesitaban para eliminar en
las declaraciones el uso de goto. As, el diseo de las sentencias de control en
un lenguaje puede ser un factor importante para la legibilidad de los
programas escritos en ese lenguaje. Estructura de Datos. La presencia de
facilidades adecuada para la definicin de estructuras de datos en un lenguaje
es otra caracterstica significativa de la legibilidad. Por ejemplo, se supone que
un tipo de dato entero es usado para una bandera indicadora porque no hay
tipos de datos boleanos en los lenguajes. En tal lenguaje, nosotros podemos
tener una sentencia semejante a la siguiente: Suma_es_muy_grande 1
Mientras este significado no es muy claro, entonces en un lenguaje que incluye
los
tipos
booleanos
nosotros
podemos
tener
la
sentencia:
Suma_es_muy_grande true Entonces este significado es perfectamente
claro, de manera similar, los tipos de datos registro proveen un mtodo para
representar como se emplean los registros que es ms legible que usar una
coleccin de arreglos: un arreglo para cada tem de dato en un registro
empleado, el cual es mas usado en los lenguajes que no tiene el tipo registro
Diseo de sintaxis. La sintaxis o forma de los elementos de un idioma tiene un
efecto significante en la legibilidad de los programas. Lo siguientes son tres
ejemplos de diseo sintctico de opciones que afectan la legibilidad Forma de
los identificadores. Los identificadores restringidos a longitudes muy cortas
disminuyen la legibilidad, si los identificadores pueden tener seis caracteres a
lo sumo, como en FORTRAN 77, no es a menudo posible usar nombres
connotativos para las variables. Un extrem ms es el ejemplo del Instituto
Nacional Estndar Americano original (ANSI) (BASIC) (ANSI 197b) en que un
identificador pudiera consistir de una sola carta seguida de otra. La posibilidad
del carcter de conexin como lo raya baja de los identificadores es una gran
ayuda a la legibilidad SUMA_DE_CUADRADOS en ciertamente el que
SUMADECUADRADOS. Se discuten otros problemas del plan acerca de las
formas de identificadores en el captulo 4. Las palabras especiales. La
apariencia y la legibilidad del programa es fuertemente influenciado por las
formas de palabras especiales de un idioma (por ejemplo begin, end, y for)
especialmente importante en el mtodo de formar declaraciones compuestas o
grupos de las declaraciones principalmente en estructuras del mundo. Varios
idiomas usan emparejando pares de palabras especiales o smbolos para
formar grupos. Pascal requiere begin, los pares del extremo a los grupos de las
formas para todo el mando de estructuras excepto repeat, declaraciones en las
que ellas pueden omitirse (otros ejemplos de la falta de Pascal es la ortografa).
C usa abrazaderas para el mismo propsito. Los dos de estos idiomas sufren
porque siempre se termina los grupos de las declaraciones de la misma
manera, que hechuras si es difcil determinar que grupos esta acabndose
cuando un extremo aparece. FORTRAN 77 y ADA hacen a este el que despeja
cuando una sintaxis del cierre distinta para cada tipo de grupos de las
declaraciones para los ejemplos, ADA usa un extremo si para terminar una
estructura de la seleccin y vuelta del extremo para una estructura de la
vuelta. Esto es y ejemplo de conflicto entre simplicidad que es el resultado de

usar palabras reservadas, como en Pascal, y la legibilidad mayor que los


resultados de usar palabras reservadas, como ADA. Otro problema importante
si se pueden usar las palabras especiales de un idioma como nombres para las
variables del programa. En ese caso, los programas resultantes pueden ser
muy confusos, por ejemplo en FORTRAN 77 la apariencia especial de estas
palabras en un programa puede o no encontrar algo especial. Forma y
significado. Declaraciones anteriores para que en su apariencia, por lo menos
parcialmente, indica que su propsito es una ayuda obvia a al legibilidad.
Semntica o significado debe seguir directamente de la sintaxis o apariencia.
En algunos casos, este principio es violado a travs de dos idiomas por las
estructuras que son similares en apariencia pero tienen significados diferentes.
En FORTRAN 77, por ejemplo, hay dos declaraciones, el GOTO asignado y los
GOTO computados cuyas apariencias son muy similares pero cuyo los
significados son diferentes, aunque los dos son mltiples saltos alejados. Por
ejemplo, las declaraciones GO TO (10, 20, 30), I GO TO I, (10, 20, 30) Se usa
bastante diferentemente. En el primero, la variable I es de tipo ENTERO; en el
segundo, etiqueta valores. Una de las quejas primarias sobre los rdenes de la
cscara de siempre haga pensar en su funcin. Por ejemplo, el comando grep
de UNIX puede ser descifrado a travs de conocimientos anteriores, o quizs la
destreza y familiaridad con el editor, ed de UNIX. Su apariencia no connota
nada a los principiantes de UNIX. En ed [comando/ expresin_reguladora]
busca una subcadena igual a la expresin_reguladora. Precediendo esto con
hechuras de g, haciendo de esto un comando global que hace que el archivo
entero se revise hasta alcanzar la bsqueda. Siguiendo el comando con p se
especifica esa lnea con la subcadena equivalente para que se imprima. Para
que el g/expresin_reguladora/p, pueda abreviarse, por su puesto como grep,
las impresiones de todas las lneas en un archivo que contiene subcadena que
son iguales a la expresin_reguladora
Fcil Escritura. Escriturabilidad es que la medida de qu fcilmente un
lenguaje puede usarse para crear programas para un dominio del problema
escogido. La mayora de las caractersticas del lenguaje que tambin efectan
legibilidad la escriturabilidad de efecto. Esto sigue directamente del hecho que
el proceso de escritura un programa exige la frecuencia del programador de
releer las porciones del programa existente. Rescriturabilidad debe ser
considerado en el contexto del dominio del problema designado de un lenguaje
en el reino de una aplicacin particular y el otro no era. Por ejemplo, la
escriturabilidad de COBOL y APL es extremadamente diferente para crear un
programa para tratar con estructura de datos bidimensionales, por que de los
dos APL es ideal. Sus escriturabilidades tambin son bastante diferentes para
la pizca de los informes producto de los formatos complejos, para eso es la
finalidad por lo que COBOL se dise. Las subdivisiones siguientes describen
los factores ms importantes que influyen en la escriturabilidad de un lenguaje
Sencillez y Ortogonalidad. S un lenguaje, tiene una gran cantidad de diversas
construcciones, algunos programadores pueden no ser familiares con todos
ellos. Esto puede conducir a un uso errneo de algunas caractersticas y de un
desuso de otros que puedan ser ms elegantes o ms eficientes, o ambos, que

los que se utilicen. Esto puede ser posible, segn lo observado por Hoare, para
utilizar caractersticas desconocidas accidentalmente, cuando los resultados
son extraos. Por lo tanto, un nmero pequeo de primitivas construcciones y
del conjunto de las reglas constante para combinarlas (esto es ortogonalidad)
es mucho mejor que simplemente teniendo una gran cantidad de nmeros
primitivos. Un programador puede disear una solucin para un problema
complejo despus de aprender solamente un conjunto simple de
construcciones primitivas. En la misma vena, demasiada ortogonalidad puede
ser detrimento de la fcil escritura. Los errores en programas de la escritura
pueden ir desapercibidos cuando casi cualquier combinacin de primitivos es
legal. Esto puede conducir a las absurdidades en el cdigo que puede no ser
descubierto por el compilador. Soporte para la abstraccin. Abreviadamente,
medios de la abstraccin, la capacidad de definir y despus de utilizar las
estructuras complicadas de operaciones de manera que muchos de los
detalles. La abstraccin es un concepto dominante en los lenguajes de
programacin contemporneos. Esta es reflexin del rol central que las
abstracciones juegan en la designacin de las metodologas de la
programacin moderna. El grado de la abstraccin que permite un lenguaje de
programacin y la naturaleza de sus expresiones es muy importante para su
codificacin. Un ejemplo simple de un proceso de abstraccin es el uso de un
subprograma en la implementacin de un algoritmo, que en ejecucin se
requiera varias veces en un programa. Saliendo del subprograma, el cdigo
tendra que ser replegado en todos los lugares donde sea necesario, que hara
el programa mucho ms largo y ms aburrido para la escritura. Ms
importante, si el subprograma no fue utilizado, el cdigo del subprograma
podra ser eliminado del algoritmo y as evitar, el entorpecimiento del flujo del
cdigo. Como ejemplo de la abstraccin de los datos, considere un rbol
binario que salve datos del nmero entero en sus nodos. Un rbol binario sera
puesto en ejecucin generalmente en FORTRAN 77 en tres matrices paralelas
del nmero entero, donde dos de los nmeros enteros se utilizan como
subndices para especificar nodos del descendiente. En PASCAL, estos rboles
pueden ser implementados usando una abstraccin de un nodo del rbol en la
forma de una unidad de registro simple con dos punteros y un nmero entero.
Lo natural de la ltima representacin hace mucho ms fcil escribir un
programa de PASCAL que utilice un rbol binario que para escribir uno en el
FORTRAN. El dominio de la solucin del problema del lenguaje est ms
cercano al dominio del problema. La ayuda total para la abstraccin es
claramente un factor importante en la codificacin del lenguaje. Expresividad.
La expresividad en un lenguaje puede referirse a varas caractersticas
diferentes. En un lenguaje como APL, sus operaciones existentes cuentan con
poderosos operadores que permiten un problema grande de computacin
pueda realizarse con un pequeo programa. Generalmente los medios que un
lenguaje tiene son relativamente cmodos antes que incmodas rutas de
especificacin computacional. Por ejemplo, en C, la expresin Contador++ es
ms cmoda y ms pequea que Contador = Contador + 1. Tambin el
operador boleano AND THEN de Ada es un camino cmodo para especificar la

valoracin de expresiones booleanas de corto circuito. La inclusin de la


declaracin FOR en Pascal hace ms fcil de escribir ciclos que con el uso de
WHILE. Todo esto ayuda a incrementar la facilidad de escritura en un lenguaje
de programacin.
Confiabilidad. Un programa es confiable si ejecuta sus especificaciones bajo
todas las condiciones. Aunque una meta deseable en los lenguajes de
programacin es la facilidad para permitir el diseo de programas confiables,
pero no es completamente claro que sta sea una caracterstica para la
estimacin y comparacin entre los lenguajes de programacin. Legibilidad y
Fcil Escritura. Ambos facilidad de escritura y la legibilidad implica confiabilidad
un programa escrito en un lenguaje que no soporta formas naturales para
expresar los algoritmos requeridos necesitara mtodos de uso menos posible
corregir en todas las situaciones. El programa ms fcil para escribir, es el ms
conveniente para corregir. Legibilidad da confiabilidad en ambas fases del cielo
de vida de mantenimiento y escritura. Los programas que son difciles para leer
tambin son difciles de escribir y modificar. Verificacin de Tipos. La
verificacin de tipos es probar la compatibilidad de los tipos entre dos variables
o una variable y una constante, es de algn modo la relacin de uno con otro.
Dos de las formas ms comunes de tales impedimentos son los operadores de
las operaciones aritmticas y el resultado de la operacin, teniendo en cuenta
ambas partes (izquierda y derecha) del signo de asignacin. La verificacin de
tipos es un factor importante en la confiabilidad del lenguaje. Esto se debe a
que la verificacin de tipos en el tiempo de ejecucin es bastante cara, por lo
que es ms deseable la verificacin de tipos en el momento de la compilacin.
Adems que permite de una manera ms fcil la deteccin de errores, por lo
que es menos costoso la reparacin de los mismos. En el diseo de los
lenguajes contemporneos, como el ADA, se requiere la verificacin de tipos de
casi todas la variable en tiempo de compilacin, salvo en el caso de que el
usuario utilice estados explcitos entonces la verificacin de tipos se suspende.
Esto elimina la posibilidad de errores en tiempo de ejecucin en los programas
realizados en ADA. La manera de cmo fracasa la verificacin de tipos tanto en
tiempo de compilacin como en el de ejecucin, es manejado por los
innumerables errores de los programas que envuelven a los parmetros de los
subprogramas en el lenguaje C. En este programa el tipo de parmetros reales
en una llamada a funcin no se verificaba para determinar si correspondiente
parmetro formal de la funcin era el mismo. Por ejemplo una variable de tipo
int puede ser usada como parmetro real en una llamada a una funcin que
espera un float en su parmetro formal, por lo que el compilador descubre el
problema de la inconsistencia en el tiempo de ejecucin, por lo que da como
resultados una serie de Problemas, recurso del cual es con frecuencia difcil de
determinar (En respuesta a este problema, el sistema UNIIX incluye un
programa de utilidad llamado LINT que checa programas en C para dichos
problemas), Mtodos de parmetros paso y subprogramas son discutidos en
el captulo 8. En General, el rango escrito de una variable de un arreglo es
parte del tipo de chequeo. Por eso el chequeo del rango escrito es parte del
tipo de chequeo, aunque debe ser realizado al momento de correrlo. Porque

muchos tipos son checados en Pascal, los rangos del algoritmo tambin son
checados. El chequeo es extremadamente importante para la confiabilidad del
programa, debido aquel rango de salida de algoritmo con frecuencia causa
errores que no aparecen hasta mucho despus de las violaciones actuales.
Manejo de Excepciones. La habilidad de un programa para detectar errores al
momento del corrido, as como otras condiciones inusuales, para tomar
medidas correctas y para continuar es una gran ayuda de confiabilidad. Esta
facilidad es llamada Manejo de excepcin; El lenguaje Ada incluye
capacidades extensas para manejo de excepcin, pero las facilidades son
prcticamente no existen en muchos lenguajes usados como Pascal, C, y
Fortran. Restriccin de Alias. De manera holgada el alias quiere decir que se
tienen dos mtodos de referencia distintos, o dos nombres, para la misma
celda de memoria. Ahora es muy aceptado que el alias represente un peligro
en un lenguaje de programacin, lo anterior, porque a la mayora de los
lenguajes de programacin se les permite hacer algunos tipos de alias, por
ejemplo: variables equivalentes en Fortran y punteros en Pascal. En ambos
casos, las dos variables de diferentes subprogramas pueden significar la misma
celda de memoria; algunos tipos de restricciones de alias pueden ser
prevenidos por la designa an del lenguaje. En algunos lenguajes, el alias es
usado para prevenir deficiencias en la facilidad de abstraccin de datos del
lenguaje. Otros lenguajes restringen extremadamente el alias para incrementar
su confiabilidad.
Costo. El costo total de los lenguajes de programacin es una funcin de
muchas de estas caractersticas. Los primeros costos de entrenamiento y el
costo de la escritura del programa en un lenguaje puede reducirse
significativamente en un buen ambiente de programacin. Entrenamiento del
programador. Esta es una funcin de la simplicidad y ortogonalidad del
lenguaje, esto aproxima en propsito a una aplicacin en particular, y a la
experiencia de los programadores. Aunque el ms poderoso de los lenguajes no
necesita ser duro para leer, y ellos frecuentemente lo son. Escritura del
programa. Esta es una funcin de la fcil escritura de los lenguajes. El esfuerzo
original para disear e implementar un lenguaje de alto nivel es manejado por
el deseo para bajar el costo de creacin de software. Compilacin. El tercero
es el costo de compilacin de los programas en el lenguaje. Un impedimento
principal para el uso adelantado de Ada fue la prohibicin de los altos costos de
ejecucin en la tercera generacin de los compiladores Ada. Este problema es
conveniente en compiladores menos seguros como el Ada llega a ser el ms
apropiada. Ejecucin. El cuarto es el costo de ejecucin de programas
escritos en un lenguaje es influenciado grandemente por el diseo del
lenguaje. Un lenguaje, tal como el PL1, que requiere mucho tiempo de
ejecucin para la verificacin de los tipos impide que el cdigo se ejecute
rpidamente, a pesar de la calidad del compilador. Mantenimiento.
Finalmente tenemos al costo de mantenimiento de programas, con la cual se
incluyen las correcciones y modificaciones para aadir nuevas caractersticas.
El costo de mantenimiento depende de un gran nmero de caractersticas del

lenguaje especialmente la legibilidad. Porque el mantenimiento es realizado


frecuentemente por otras personas diferentes al autor original del software, la
pobre legibilidad puede hacer lar tarea extremadamente desafiante. La
importancia del mantenimiento del software no puede ser desafiante. Esto se
ha estimado para un software de aplicacin de aplicacin con una vida
relativamente larga, los costos de mantenimiento pueden subir de dos a tres
cuartos de tiempo tanto como el desarrollo. Todas estas contribuciones para los
costos de un lenguaje nos indican que hay dos muy importantes: el de
desarrollo y el de mantenimiento de los programas. Porque son las funciones
de legibilidad y fcil escritura las que intervienen en ellos, y stos son los dos
criterios ms importantes en la evaluacin de los lenguajes de programacin.
Una nota final para el criterio. Los criterios, especialmente legibilidad y
escriturabilidad, no se pueden precisar en su definicin ni limitarse de una
manera exacta. Los conceptos son tiles sin embargo nos proporcionan una
perspicacia en el diseo y evaluacin de los lenguajes de programacin.
Existen por supuesto otros criterios para la evaluacin de los lenguajes de
programacin, por ejemplo la portabilidad (la facilidad con el que el programa
puede ser movido de una mquina a otra), su generalidad (la aplicacin del
lenguaje a un extenso ramo de aplicaciones) y sobre todo Buenas Definiciones
(la integridad y precisin del lenguaje en la definicin de la documentacin).
Sin embargo las que hemos explicado consideramos que son las ms
importantes.

You might also like