RUO Principal

Repositorio Institucional de la Universidad de Oviedo

Ver ítem 
  •   RUO Principal
  • Producción Bibliográfica de UniOvi: RECOPILA
  • Artículos
  • Ver ítem
  •   RUO Principal
  • Producción Bibliográfica de UniOvi: RECOPILA
  • Artículos
  • Ver ítem
    • español
    • English
JavaScript is disabled for your browser. Some features of this site may not work without it.

Listar

Todo RUOComunidades y ColeccionesPor fecha de publicaciónAutoresTítulosMateriasxmlui.ArtifactBrowser.Navigation.browse_issnPerfil de autorEsta colecciónPor fecha de publicaciónAutoresTítulosMateriasxmlui.ArtifactBrowser.Navigation.browse_issn

Mi cuenta

AccederRegistro

Estadísticas

Ver Estadísticas de uso

AÑADIDO RECIENTEMENTE

Novedades
Repositorio
Cómo publicar
Recursos
FAQs

SSA Transformations to Facilitate Type Inference in Dynamically Typed Code

Autor(es) y otros:
Quiroga Álvarez, JoséAutoridad Uniovi; Ortín Soler, FranciscoAutoridad Uniovi
Palabra(s) clave:

Single Static Assignment

SSA

Hybrid Static and Dynamic Typing

Union Types

Runtime performance

Fecha de publicación:
2017-09-01
Versión del editor:
https://doi.org/10.1093/comjnl/bxw108
Citación:
The Computer Journal, volume 60(90), p. 1300-1315; doi:10.1093/comjnl/bxw108
Descripción física:
p. 1300-1315
Resumen:

In most dynamically typed languages, variables are created without declaring their type. This way of programming allows variable reuse, so that variables sometimes hold different dynamic types in the same scope. Besides, it is also common to use the same variable to hold different dynamic types, depending on the execution flow of the program. When dynamically typed code is compiled into Java and .Net, the dynamic variables are usually generated as Object references. The approach of declaring variables with the top type (e.g. Object in Java and .Net) requires unsafe and inefficient type casts and, sometimes, the use of reflection. We propose the use of SSA (Static Single Assignment) transformations to facilitate inferring the type of dynamically typed local variables. The approach has been included in an existing compiler for the .Net framework. The result is that dynamically typed code performs significantly better when the SSA transformations are used, and it outperforms C#. Our technique reduces memory consumption at runtime by 35%, but increases compilation time by 13%.

In most dynamically typed languages, variables are created without declaring their type. This way of programming allows variable reuse, so that variables sometimes hold different dynamic types in the same scope. Besides, it is also common to use the same variable to hold different dynamic types, depending on the execution flow of the program. When dynamically typed code is compiled into Java and .Net, the dynamic variables are usually generated as Object references. The approach of declaring variables with the top type (e.g. Object in Java and .Net) requires unsafe and inefficient type casts and, sometimes, the use of reflection. We propose the use of SSA (Static Single Assignment) transformations to facilitate inferring the type of dynamically typed local variables. The approach has been included in an existing compiler for the .Net framework. The result is that dynamically typed code performs significantly better when the SSA transformations are used, and it outperforms C#. Our technique reduces memory consumption at runtime by 35%, but increases compilation time by 13%.

URI:
http://hdl.handle.net/10651/53507
ISSN:
0010-4620
DOI:
10.1093/comjnl/bxw108
Patrocinado por:

This work was partially funded by Microsoft Research to develop the project entitled Extending Dynamic Features of the SSCLI, awarded in the Phoenix and SSCLI, Compilation and Managed Execution Request for Proposals. This work was also funded by the Department of Science and Innovation (Spain) under the National Program for Research, Development and Innovation: Project TIN2011-25978, entitled Obtaining Adaptable, Robust and Efficient Software by Including Structural Reflection in Statically Typed Programming Languages. We have also received funds from the European Union, through the European Regional Development Funds (ERDF); and the Principality of Asturias, through its Science, Technology and Innovation Plan (Grant GRUPIN14-100).

Colecciones
  • Artículos [37541]
Ficheros en el ítem
Métricas
Compartir
Exportar a Mendeley
Estadísticas de uso
Estadísticas de uso
Metadatos
Mostrar el registro completo del ítem
Página principal Uniovi

Biblioteca

Contacto

Facebook Universidad de OviedoTwitter Universidad de Oviedo
El contenido del Repositorio, a menos que se indique lo contrario, está protegido con una licencia Creative Commons: Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Creative Commons Image