IEEE/ACM International Symposium on Code Generation and Optimization se centra en la generación, traducción, transformación y optimización de programas, con especial atención a la relación entre software y arquitectura. El congreso estudia cómo los compiladores, los entornos de ejecución y las herramientas de análisis pueden producir código más rápido, eficiente, portable, seguro y fiable. Su convocatoria abarca desde métodos completamente estáticos hasta técnicas dinámicas guiadas por perfiles y realimentación, además de mecanismos de hardware que facilitan la optimización. El encuentro conecta fundamentos de compilación con implementaciones y evaluaciones sobre plataformas reales.
El objetivo científico consiste en desarrollar técnicas que permitan aprovechar mejor las capacidades de los sistemas informáticos sin trasladar toda su complejidad a quienes programan las aplicaciones. IEEE/ACM International Symposium on Code Generation and Optimization recibe artículos de investigación, trabajos sobre herramientas y estudios de experiencia práctica. Las contribuciones deben explicar el problema que resuelven, presentar el método utilizado y evaluar sus efectos mediante cargas y métricas adecuadas. Los trabajos sobre herramientas deben demostrar funcionalidad, utilidad y disponibilidad, mientras que los estudios prácticos deben extraer conclusiones que puedan aplicarse fuera de un único caso.
La generación y transformación de código constituyen una línea principal. Los artículos pueden desarrollar traducciones entre lenguajes y representaciones, optimizaciones intermedias, especialización y reescritura de programas. También pueden estudiar transformaciones orientadas a rendimiento, energía, virtualización, portabilidad, seguridad o fiabilidad. Una propuesta debe conservar la semántica esperada o explicar con precisión cualquier aproximación introducida. La evaluación puede analizar velocidad, consumo, tamaño de código, memoria y comportamiento en diferentes arquitecturas.
Los lenguajes dinámicos y de alto nivel representan otro ámbito relevante. La ejecución eficiente de estos lenguajes requiere inferencia, compilación adaptativa, especialización y gestión de representaciones. Los trabajos pueden examinar compilación bajo demanda, optimización especulativa y recuperación cuando una suposición deja de cumplirse. Estas investigaciones buscan mantener productividad y expresividad sin renunciar a prestaciones competitivas.
Los nuevos modelos de programación y los lenguajes específicos de dominio forman parte de la agenda. La convocatoria admite técnicas para traducir abstracciones de alto nivel a plataformas paralelas, heterogéneas o especializadas. También puede estudiar representaciones intermedias que facilitan análisis y optimización. La aportación científica debe mostrar que la solución mantiene flexibilidad y que produce código eficiente para un conjunto significativo de aplicaciones.
La optimización estática, dinámica y guiada por perfiles constituye otro eje central. Los artículos pueden utilizar información recopilada antes o durante la ejecución para seleccionar transformaciones, colocar datos o adaptar decisiones. La realimentación permite responder al comportamiento observado, pero introduce costes de instrumentación, compilación y almacenamiento. La investigación debe analizar si los beneficios compensan estos costes y si las decisiones permanecen estables ante cambios de entrada.
El aprendizaje automático aplicado a compiladores representa una línea creciente. Los trabajos pueden utilizar modelos para seleccionar optimizaciones, estimar costes, generar código, analizar programas o ajustar parámetros. También pueden estudiar sistemas capaces de aprender a partir de ejecuciones previas. IEEE/ACM International Symposium on Code Generation and Optimization exige que estas técnicas se comparen con heurísticas relevantes y que se analicen generalización, coste de entrenamiento y comportamiento ante programas diferentes de los utilizados durante el desarrollo.
El análisis de programas aparece tanto como objetivo como soporte de la optimización. La convocatoria incluye técnicas estáticas, dinámicas e híbridas para estudiar rendimiento, energía, localidad de memoria, caudal, latencia, seguridad, fiabilidad y depuración funcional. También recibe métodos de caracterización de programas, instrumentación y perfilado. Estas contribuciones permiten identificar cuellos de botella y comprender qué propiedades condicionan la eficacia de una transformación.
El diseño de compiladores y las representaciones intermedias constituyen otra línea fundamental. Los artículos pueden proponer arquitecturas modulares, abstracciones y mecanismos para organizar fases de análisis y generación. Una representación adecuada facilita expresar dependencias, paralelismo, tipos y propiedades de memoria. También puede permitir que varias herramientas compartan infraestructura y que las optimizaciones se apliquen en diferentes niveles.
La integración vertical entre lenguajes, compiladores, entornos de ejecución, sistemas operativos y hardware forma parte del alcance científico. Las contribuciones pueden coordinar decisiones que tradicionalmente se toman de forma independiente. También pueden estudiar plataformas de propósito general, sistemas embebidos, entornos de nube y computación de altas prestaciones. El análisis entre capas permite mejorar rendimiento y eficiencia, aunque exige controlar la complejidad y evitar soluciones demasiado dependientes de una plataforma.
Las arquitecturas heterogéneas y reconfigurables representan otro tema prioritario. Los trabajos pueden generar y optimizar código para unidades gráficas, aceleradores, sistemas integrados, matrices reconfigurables y tecnologías emergentes. También pueden abordar vectorización, extracción de hilos, planificación de tareas, especulación, transacciones, gestión de memoria, distribución de datos y sincronización. La investigación debe explicar cómo asigna el trabajo a recursos diferentes y cómo gestiona movimientos de información.
El congreso se dirige a investigadores y profesionales en compiladores, lenguajes, arquitectura, sistemas de ejecución y computación de altas prestaciones. También interesa a quienes desarrollan herramientas para inteligencia artificial, sistemas embebidos, nube y plataformas especializadas. La convivencia de artículos teóricos, herramientas y experiencias desplegadas permite relacionar nuevos principios con problemas que aparecen durante la implementación.
IEEE/ACM International Symposium on Code Generation and Optimization contribuye al avance de la informática al mejorar el vínculo entre las abstracciones utilizadas para programar y las arquitecturas que ejecutan el código. El encuentro impulsa compiladores más adaptativos, herramientas verificables y métodos capaces de aprovechar paralelismo y especialización. Su aportación permite obtener mayor rendimiento, eficiencia y portabilidad sin exigir que cada aplicación gestione directamente los detalles del hardware.
Generación de código, optimización de programas, compiladores, transformación de código, traducción, rendimiento, eficiencia energética, virtualización, portabilidad, seguridad, fiabilidad, lenguajes dinámicos, lenguajes de alto nivel, lenguajes específicos de dominio, compilación dinámica, optimización estática, perfiles de ejecución, realimentación, aprendizaje automático, análisis de programas, localidad de memoria, latencia, caudal, caracterización, instrumentación, representaciones intermedias, entornos de ejecución, integración hardware-software, paralelismo, arquitecturas heterogéneas, aceleradores, unidades gráficas, sistemas integrados, arquitecturas reconfigurables, vectorización, planificación de tareas, especulación, sincronización, computación de altas prestaciones
