Resumen:
Squeak desciende directamente de Smalltalk y como tal no requiere declaraciones de tipos. Esto permite la programación exploratoria y facilita la escritura de código genérico y reusable. Pero cierta información de tipos es necesaria para realizar diversos análisis estáticos. Distinguimos entre tipo concreto y tipo abstracto porque consideramos que el código fuente tiene dos lectores de naturaleza distinta: el compilador y el ser humano. El compilador está interesado en aquellos tipos que describen la estructura interna de los objetos porque los necesita para realizar optimizaciones de código: estos son los tipos concretos. El ser humano está interesado en aquellos tipos que describen las propiedades de los objetos porque desea saber cómo utilizar una porción de código: estos son los tipos abstractos. Insertar declaraciones de tipos concretos produce código especializado y poco reusable. Sin embargo, la información de tipos concretos es importante para optimizar código, extraer aplicaciones, garantizar que no ocurran ciertos errores o facilitar la comprensión de un programa. Nuestro objetivo es inferir los tipos concretos presentes en un programa Squeak. Presentamos el diseño e implementación en Squeak de un motor de inferencia capaz de inferir tipos concretos para ciertas expresiones del lenguaje. Nuestro motor puede analizar código con asignaciones, herencia, envíos de mensajes, primitivas, bloques e incluso #perform.. Ampliamos la definición de tipo concreto para considerar también el tipo de las variables de instancia. Incorporamos a las variables y argumentos de mensajes, una noción de estado que nos permite distinguir los tipos de sus diferentes accesos. Nuestra Inferencia de tipos se basa en la analogía que existe entre el tiempo de ejecución y el tiempo de análisis. Inferimos tipos realizando una interpretación abstracta sobre el dominio de los tipos concretos.
Abstract:
Squeak is a language without type declarations; this simplifies and allows exploratory programming. However, concrete type information is a valuable aid to program understanding, application extraction or code optimization. We present the design and implementation in Squeak of a type inference engine that can infer concrete types for some expressions of the language. Our engine can analyze code that includes assignments, inheritance, message sends, primitives, blocks and even #perform: We extend the definition of concrete type to include the types of instance variables. We add a notion of state to variables and message arguments, that allows us to distinguish the types of their different accesses. We infer types by doing an abstract in- terpretation over the domain of concrete types, emphasizing the relationship that exists between run-time and inference-time.
Citación:
---------- APA ----------
Garau, Francisco. (2001). Inferencia de tipos concretos en Squeak. (Tesis de Grado. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de https://hdl.handle.net/20.500.12110/seminario_nCOM000168_Garau
---------- CHICAGO ----------
Garau, Francisco. "Inferencia de tipos concretos en Squeak". Tesis de Grado, Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales, 2001.https://hdl.handle.net/20.500.12110/seminario_nCOM000168_Garau
Estadísticas:
Descargas mensuales
Total de descargas desde :
https://bibliotecadigital.exactas.uba.ar/download/seminario/seminario_nCOM000168_Garau.pdf
Distrubución geográfica