Análisis de datos

Please download to get full document.

View again

of 18
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Categories
Published
Análisis de todos los tipos de datos para lenguajes de programación.
   1 CARRERA  INGENIERÍA EN SISTEMAS COMPUTACIONALES MATERIA LENGUAJES Y AUTÓMATAS II TEMA  ANÁLISIS DE TIPOS  PROFESOR LIC. LÓPEZ POSADA JOSÉ ANTONIO ALUMNO BONIFACIO MARCIAL EZEQUIEL GRUPO 7 “O”  Heroica Ciudad de Juchitán de Zaragoza, Oax., a Jueves 03 de Noviembre del 2016.   2 ÍNDICE Introducción……………………………………………………………  1.   Análisis de tipos. ……………………………………………………  1.1.   Expresiones de tipos………………………………………...  1.2.   Sistema de tipos……………………………………………..  1.3.   Comprobación estática y dinámica de tipos…………………  1.4.   Recuperación de errores……………………………………..  2.   Especificaciones de un comprobador de tipos sencillo ……………..  2.1.   Un lenguaje simple …………………………………………..  2.2.   Comprobaciones de tipos en las expresiones ………………..  2.3.   Comprobación de tipos en las proposiciones ………………..  2.4.   Comprobación de tipos de funciones ………………………..  3.   Equivalencia de expresiones de tipos ……………………………….  4.   Conversión de tipos …………………………………………………  5.   Sobrecarga de funciones y operandos ………………………………  6.   Funciones polimórficas ……………………………………………..  7.   Conclusión…………………………………………………………..  8.   Recomendaciones…………………………………………………...  9.   Bibliografía…………………………………………………………  Pág. 3 Pág. 4 Pág. 4 Pág. 4 Pág. 6 Pág. 7 Pág. 8 Pág. 8 Pág. 9 Pág. 10 Pág. 11 Pág. 12 Pág. 13 Pág. 14 Pág. 15 Pág. 16 Pág. 17 Pág. 18   3 INTRODUCCIÓN Un programa fuente sigue tanto las convenciones sintácticas como las semánticas que describen al lenguaje fuente y deben ser comprobados por el compilador. La comprobación de ésta provee la detección y posterior informe al programador de ciertos errores de programación que facilitan la depuración pero que no pueden ser administrados desde el punto de vista exclusivamente sintáctico. Los errores más comunes se derivan de la utilización de tipos de datos, ya sean creados por el  programador en base a construcciones sintácticas proporcionadas por el lenguaje (tipos de usuario), o que sean proporcionados por el propio lenguaje (tipos  primitivos). Básicamente, los tipos de datos sirven precisamente para que el  programador declare con qué intención va a utilizar cada variable (para guardar un número entero, un número real, una cadena de caracteres, etc.), de manera que el compilador pueda detectar automáticamente en qué situaciones ha cometido un error el programador (por ejemplo, si ha intentado sumar un número entero y una cadena de caracteres). Un comprobador de tipos se asegura que el tipo de una construcción sintáctica coincida con el previsto en su contexto. Por ejemplo, el operador aritmético  predefinido [mod] en los lenguajes de programación exige operandos numéricos enteros, de modo que un comprobador de tipos debe asegurarse de que dichos operandos sean de tipo entero. De igual manera, la gestión de tipos debe asegurarse de que la desreferenciación se aplique sólo a un apuntador, de que la indización se haga sólo sobre una matriz, de que a una función definida por el usuario se aplique la cantidad y tipo de argumentos correctos, etc. La información recogida por el comprobador de tipos también es útil a la hora de generar código. Por ejemplo, los operadores aritméticos normalmente se aplican tanto a enteros como a reales, y tal vez a otros tipos, y se debe examinar el contexto de cada uno de ellos para determinar el espacio en memoria necesario para almacenar cálculos intermedios.   4 1.   ANÁLISIS DE TIPOS El diseño de un comprobador de tipos para un lengaje de basa en información acerca de las construcciones sintácticas del lenguaje, la noción de tipos y las reglas para asignar tipos a las construcciones de lenguaje. Los siguientes extractos del informe de Pascal y del manual de referencia de C, respectivamente, son ejemplos de la información con la que el diseñador de un compilador podría verse obligado a comenzar.    “Si ambos operandos de los operadores aritméticos de suma, sustracción y multiplicación son de tipo entero, entonces el resultado es de tipo entero.”      “El resultado del operador unario & es un apuntador hacia el objeto al que se refie re el operando. Si el tipo del operando es ‘…’, el tipo del resultado es ‘apuntador a …’.”  En los anteriores extractos se encuentra implícita la idea de que cada expresión tiene asociado un tipo. Además, los tipos tienen estructura; el tipo “apuntador a …” se construye a partir del tipo al que se refiere “…”.  En Pascal y en C, los tipos son básicos o construidos. Los tipos básicos son los atómicos sin estructura interna por lo que concierne al programador. En Pascal, lo tipos básicos son boolean, character, integer y real. Los tipos de subrango, como 1..10, y los tipos enumerados, como (violeta, indigo, azul, verde, amarillo, naranja, rojo) se pueden considerar como tipos básicos. Pascal admite que un programador construya tipos a partir de tipos básicos y otros tipos construidos, como matrices( array ), registros( record  ) y conjuntos(  set  ). Además, los apuntadores y las funciones también pueden considerarse como tipos construidos. 1.1.   EXPRESIONES DE TIPOS Una expresión de tipo es un modo de expresar el tipo de cualquier construcción de un lenguaje, es decir, es la forma en el que un procesador de lenguaje representa cada tipo del lenguaje que procesa. Las expresiones de tipo se centran en la definición constructiva de un tipo. Así, una expresión de tipo es, o bien un tipo básico, o el resultado de aplicar un constructor de tipos a otras expresiones de tipos. Cada compilador representará internamente sus expresiones de tipo de un modo distinto, haciendo uso de la expresividad que le ofrezca el lenguaje de programación empleado en su implementación. Inicialmente nos
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x