Principios de Lenguajes de Programación Abstracción



Descargar 10,97 Kb.
Fecha de conversión08.06.2017
Tamaño10,97 Kb.

Principios de Lenguajes de Programación

Abstracción

  • Hay que evitar que un proceso se inicie más de una vez.
  • Una abstracción es una representación de un objeto que incluye sólo sus atributos importantes , ignorando aquellos atributos que son irrelevantes para su propósito.
  • #include
  • #define MAX 10
  •  void main( )
  • { int x;
  • for(x=0;x
  • printf(“\n%d”,x);
  • }
  • Por ejemplo , en este código en C sería un error si la función main( ) fuera invocada más de una vez.
  • AUTOMATIZACIÓN
  • Automatizar mecanismos, actividades tediosas o de error probable.
  • Un lenguaje puede contener mecanismos automatizados como el manejo de exepciones.
  • try {
  • . . .
  • }
  • catch (. . .) {. . .}

Defensa en profundidad

Ocultación De Información

  • Los módulos de un sistema deben diseñarse de modo que la información contenida en ellos sea inaccesible a todos aquellos módulos que no la necesiten. El módulo oculta su funcionalidad interna y se comunica con otros módulos mediante interfaces.
  • Esquema
  • El lenguaje deben permitir módulos diseñados para que
  • 1. El usuario tenga toda la información necesaria para usar el módulo correctamente, y nada más.
  • 2. El implementador tiene toda la información necesaria para llevar a cabo el módulo correctamente, y nada más.
  • Información oculta es un término con que se designa uno de los principios centrales en el diseño de abstracciones definidas por el programador tales como subprogramas y tipos de datos nuevos; cada componente del programa debe ocultar tanta información como sea posible al usuario del componente.
  • Por ejemplo, la función de la raíz cuadrada proporcionada por el lenguaje es una exitosa abstracción porque oculta al usuario los detalles de la representación del número y el algoritmo de computación para la raíz cuadrada.
  • Etiquetado
  • Evitar secuencias arbitrarias más que unos pocos items largos. No requiere que el usuario conozca la posición absoluta en una lista. En lugar de esto, se debe asociar una etiqueta significativa con cada item y dejar que el item ocurra en cualquier orden.
  • Ya no es necesario calcular la dirección a donde debemos llegar al realizar un salto.
  • ...
  • IF (a.eq.b) THEN
  • GOTO 10
  • ELSE
  • GOTO 20
  • ENDIF
  • ...
  • 10 print *,’Son iguales’
  • stop
  • 20 print *,’Son distintos’
  • end

Localización de costos

Interface Manifiesta

  • Todas las interfaces deben ser aparentes (manifiestas) en la sintaxis.
  • La interface con un objeto es su protocolo, el conjunto de mensajes a los cuales el objeto responde.
  • La interface con un objeto debe ser reconocible fácilmente; debe ser lo más clara y descriptiva posible.
  • Por ejemplo, en Visual Basic hay muchas interfaces manifiestas, ya que el acceso a las propiedades de cada elemento es fácilmente reconocible, son claras, descriptivas y su sintaxis no es complicada.
  • ORTOGONABILIDAD
  • Funciones independientes deben ser controladas por mecanismos independientes.
  • 1
  • 2
  • 3
  • +
  • >
  • == (igual)
  • OR
  • -
  • <
  • != (diferente)
  • AND

Portabilidad

  • Evitar características o facilidades que hagan depender al lenguaje de una maquina en particular o una clase de maquinas muy reducida.
    • COBOL:
    • SOURCE-COMPUTER. Indica el tipo de plataforma a usar para compilar el código fuente del programa.
    • OBJECT-COMPUTER. Aquí se indica el tipo de plataforma a usar para poder ejecutar el programa.

Portabilidad

  • Permitir el uso de librerías para definir los tipos de datos.

Preservación de la Información

  • El lenguaje debe permitir la representación de información que el usuario deba saber y que el compilador pueda necesitar.
  • Debe proporcionar las herramientas necesarias para que tanto el usuario del lenguaje como el desarrollador del mismo puedan realizar su trabajo correctamente.
  • #include
  • #define MAX 10
  •  void main( )
  • { int x;
  • for(x=0;x
  • printf(“\n%d”,x);
  • }
  • Por ejemplo, en el lenguaje C el usuario posee varias herramientas para realizar sus tareas, como son la definición de datos; además puede definir macros, entre otras cosas.
  • El compilador busca las partes necesarias para que el programa funcione de acuerdo a su lógica, respondiendo a la falta o presencia de dichos elementos.
  • REGULARIDAD
  • Reglas regulares, sin excepción son fáciles de aprender, usar, describir e implementar.
  • char A[10] = “UNO,”;
  • char B[10] = “DOS”;
  • char C[10] = A+B;
  • Al operador de suma (+) es lógico utilizarlo sobre cadenas para realizar una concatenación.
  • Ahora C vale “UNO,DOS”.

Seguridad

  • Ningún programa que viole la definición de el lenguaje o su propia estructura propuesta, debe escapar a la detección.
    • Violaciones al principio de seguridad:
    • -char a;
    • int i;
      • ...
      • a=i;
      • ...
    • Permitir que la definición de tipos sea visible en todo el programa (variables globales).
    • Dejar al programador la responsabilidad de evitar iteraciones infinitas

Simplicidad

  • Un lenguaje debe ser tan simple como sea posible.
  • Debe haber un número mínimo de conceptos con reglas simples para su combinación.
  • Un lenguaje de programación debe esforzarse en la simplicidad sintáctica y semántica.
  • Simplicidad en la semántica implica que el lenguaje contiene un mínimo número de conceptos y estructuras. Estos conceptos deben ser naturales, rápidamente aprendidos, y fácilmente entendidos with little danger of misinterpretation.
  • La simplicidad sintáctica requiere que la sintaxis represente cada concepto en una y una única forma y que ésta interpretación es tan legible como sea posible.
  • Por ejemplo, Visual Basic tiene una estructura clara para accesar a las diferentes propiedades de cada elemento.
  • ESTRUCTURA
  • La estructura estática de un programa debe corresponder en un camino simple con la estructura dinámica de los computo correspondientes.
  • int a = 1;
  • int b = 2;
  • ...
  • printf (“Variable A = %d\n”, a);
  • printf (“Variable B = %d”, b);
  • ...
  • Siguiebdo la estructura del programa primero se ejecutará la asignación de las variables y despues las instrucciones “printf”.

Consistencia Sintáctica

  • Cosas similares deben lucir similares y cosas diferentes deben lucir diferentes.
      • Fortran:
      • GOTO snr1 - ordinary GOTO statement (jumps to the statement with number snr1)
      • ?GOTO (snr1, snr2, snr3), integer_expression - conditional GOTO statement. If the integer expression is 1, 2 or 3, execution jumps to statement number snr1, snr2 or snr3 (an arbitrary number of statement numbers snr are permitted).
      • ??GOTO statement_number_variable, (snr1, snr2, snr3) - an assigned GOTO statement, jumps to the statement number that equals the statement number variable (an arbitrary number of statement numbers snr are permitted).
      • ??GOTO statement_number_variable - this is an assigned ordinary GOTO statement, it is a combination of the first one, GOTO snr1, and previous one, GOTO statement_number_variable without a list of permitted alternatives.

Cero, uno e infinito

  • Cero, uno e infinito son los únicos numeros razonables.


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal