Está en la página 1de 4

CONFIABILIDAD: El software se considera confiable si se comporta como es anunciado y produce los resultados que el usuario espera.

Cuando se presenta un error, debera ser fcilmente detectado y corregido. CARACTERISTICAS SIMPLICIDAD: Busca reducir la complejidad del lenguaje , permitir un cdigo objetivo eficiente , posee un nmero de componentes bsicos y criterios de combinacin para generar estructuras de control y de datos del lenguaje. Una de las ventajas de que un lenguaje sea simple es que el usuario va a tener un fcil aprendizaje en un determinado tiempo. Pocas estructuras permiten codificar sistemas complejos. Un lenguaje demasiado simple pude ser complejo de utilizar ya que carece de expresividad y seguridad. SEGURIDAD: El lenguaje debe limitar los errores de programacin, descubrirlos e informarlos. Expresividad: cuando permite expresar con facilidad procesos o estructuras complejos. ORTOGONALIDAD: El principio de la ortogonalidad se refiere a la capacidad que tiene un lenguaje de programacin de combinar varias caractersticas en muchas combinaciones posibles sin perder su significado. Una caracterstica en un lenguaje es ortogonal si se puede usar y evaluar independientemente en el enunciado. PROS Y CONTRAS: Pros: Es mas fcil de aprender el lenguajes, dado que se asemeja mas al lenguaje natural Es mas fcil de escribir porque hay menos excepciones y menos casos especiales que recordar Contras: Como muchas expresiones tienen sentido, suele compilar errores, pasndolos como si no lo fueran (errores semnticos). La ejecucin se ve afectada por condiciones que son lgicamente incoherentes. EJEMPLOS: En el lenguaje C, en las funciones se pueden pasar parmetros por valor de todos los tipos excepto el array, el cual debe ser por referencia Las funciones en pascal solo retornan escalares o punteros El lenguaje ALGOL-68, tuvo como meta la creacin de un lenguaje altamente ortogonal, en el cual sus constructores pueden ser combinados de una manera muy significativa TIPOS DE DATOS Dada su definicin general, que nos indica que es un atributo de una parte de los datos sobre el cual nos seala la clase de informacin que se va a procesar. Definen nos solo valores sino tambin operaciones. Al permitir definir tipos de datos adicionales se permiten definir nuevas operaciones. Dentro de la Confiabilidad de un Lenguaje de Programacin tienen como objetivo: A) Detectar errores en las operaciones. B) Determinar como ejecutar estas operaciones. Ejemplo: Tipos Enteros. Los hay de 5 categoras diferentes. Cada uno abarca un numero especifico de valores y utilizan una diferente cantidad de memoria. Al trabajar con: Rangos menores => mayor velocidad y menor espacio en memoria.

Rangos mayores => mayor precisin. DISEO DE SINTAXIS: El diseo de sintaxis es la forma como se combina los diferentes elementos sintcticos (alfabeto, operadores, delimitadores, palabras clave y reservadas, comentarios y expresiones). Respecto a la confiabilidad un correcto diseo de sintaxis asegura la inambigedad y completitud del lenguaje Soporte de abstraccin: La abstraccin es la capacidad para definir y utilizar estructuras y operaciones muy complicadas de forma que la complejidad quede oculta. Concepto clave para manejar la complejidad. Abstraccin de procesos y de datos. Principio de diseo: Ocultamiento de la informacin EXPRESIVIDAD: Definicin: La habilidad de un lenguaje para reflejar claramente el significado deseado por el diseador del algoritmo. El lenguaje tiene formas convenientes para expresar computaciones. Por ejemplo, C es expresivo en la medida que se puede incrementar un contador de varias formas: a. count = count + 1 b. count += 1 c. count++ d. ++count El mantenimiento de programas, en el 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 y expresividad. Esto se ha estimado para un software de aplicacin de aplicacin con una vida relativamente larga. Verificacin de tipos: La verificacin de tipos es probar la compatibilidad de los tipos entre dos variables o una
variable y una constante.

Con respecto a la fiabilidad es ms deseable encontrar los errores en tiempo de compilacin y no de ejecucin. Manejo de excepciones: La capacidad de un programa para interceptar errores en tiempo de ejecucin (as como otras condiciones inusuales detectables por el programa), tomar medidas correctivas, y entonces continuar es una ayuda evidente para la confiabilidad. Esta facilidad del lenguaje se llama manejo de excepciones. Ada, C++, Java y C# incluyen amplias funciones para el majeo de excepciones. Aunque estos servicios son prcticamente inexistentes en muchos lenguajes ampliamente usados, incluyendo C y Fortran Restriccin de alias: Es posible tener mltiples variables que tienen la misma direccin, de ah Aliasing es tener dos o ms nombres distintos que pueden ser utilizados para acceder a la misma celda de memoria. La mayora de los lenguajes de programacin permiten algn tipo de aliasing, por ejemplo, dos punteros para apuntar a la misma variable, lo que es posible en la varios lenguajes, como as mismo hay unos que restringen en gran medida esta practica para garantizar fiabilidad. Esta caracterstica puede estar limitada de acuerdo al diseo del lenguaje. Ejemplo de Aliasado por punteros en C .

Int main() { int *x, *y ; x = (int*)malloc(sizeof(int)); *x = 1 ; y = x; *y = 2; printf( Valor de X : %d, *x); } Controlar Aliasings creandolos explicitamente. En Java : int y[] = (int[])x.clone(); En Fortran : EQUIVALENCE x,y En C : using NombreAlias = type_name; En Perl : $foo = 42; *bar =*foo; print $bar En Ruby : Palabras reservadas alias and alias_method Ventajas: - Permite aplicar la programacin dinmica con mas flexibilidad. - Permite resolver problemas con los espacios de nombres incluidos, al instanciar clases con nombres iguales. Desventajas: - Los Alias pueden ser creados cuando se pasan parmetros por referencia, tanto entre dos o ms parmetros como entre un parmetro y una variable no local accesible. - Aliasing es un obstculo para la lectura, ya que permite que una variable cambie su valor por una asignacin a una variable diferente. - Como puede haber cualquier nmero de alias en un programa, esto puede ser muy difcil en la prctica. - Aliasing hace que la verificacin del programa sea ms difcil. - Aliasing es un obstculo para la lectura, ya que permite que una variable cambie su valor por una asignacin a una variable diferente. - Como puede haber cualquier nmero de alias en un programa, esto puede ser muy difcil en la prctica. - Aliasing hace que la verificacin del programa sea ms difcil. Razones para estudiar conceptos de lenguajes de programacin Mayor capacidad para expresar ideas: Poca compresin de lenguaje natural limita la complejidad de los pensamientos, en particular la profundidad de la abstraccin. Proceso de desarrollo de software parecido al que se experimenta al construir un texto. Incrementar el alcance de sus procesos de pensamiento en la medida que incrementen sus conocimientos sobre constructos existentes. Reduccin de limitantes para construccin de proyectos, mejora visin de posibilidades. Mejora de conocimientos para seleccin de lenguajes: La instruccin en unos pocos lenguajes puede limitar la visin a unas pocas posibilidades

Cuando se estudian los lenguajes desde sus conceptos se tiene una visin mas amplia que permite un mejor uso de los mismos. Facilidad de aprendizaje de nuevos lenguajes: Lenguajes en continua evolucin Evitar estancamiento en nica tecnologa Contino aprendizaje Mercado laboral Entender conceptos y componentes de los lenguajes facilita el aprendizaje de nuevos lenguajes Mejor comprensin del significado de implementacin: Se programa mejor cuando se conocen las posibilidades de los lenguajes Comprensin de conceptos facilita la optimizacin de las implementaciones realizadas Mejor uso de lenguajes conocidos: Estudio de conceptos puede permitir descubrir nuevos constructos de los lenguajes ya conocidos Visin global del avance de computacin: Estudio de los lenguajes y su evolucin permite la conceptualizacin de los procesos de transformacin que sufren las tecnologas relacionadas con computacin Dominios de Programacin Aplicaciones cientficas: Primeros lenguajes y programacin en los 1940s y 1950s fueron para aplicacin cientfica Usualmente se utilizan estructuras simples pero los requerimientos computacionales son bastante altos Se usan comnmente arrays, matrices, ciclos y selecciones Primer lenguaje para aplicacin cientfica fue Fortran Aplicaciones para Empresas: Desde los 1950s se han usado aplicaciones para empresas Se desarrollaron lenguajes especficamente para ello, el primero fue COBOL Facilidad para producir reportes elaborados Facilidad para especificar operaciones aritmticas decimales Inteligencia Artificial: rea de la computacin en la que se usan mas constructos simblicos que numricos Se utilizan mas las listas enlazadas que los arrays Lenguajes requieren mayor flexibilidad. P.e. capacidad de ejecutar segmentos de cdigo especficos durante la ejecucin. Primer lenguaje para esta rea LISP Programacin de Sistemas: Programacin de sistemas operativos y herramientas de soporte Lenguajes de bajo nivel Se enfocan principalmente en eficiencia UNIX desarrollado principalmente en C, relativamente portable entre diferentes maquinas Programadores de excelente nivel Software Web: rea soportada por varios lenguajes muy diversos, lenguajes de propsito general como Java Especialistas en presentacin, versatilidad Lenguajes de lado servidor o cliente Lenguajes scripting Usualmente combinados para lograr producto/servicio Diversidad de protocolos