IBM® XL C/C for z/VM es un compilador de optimización diseñado para desarrollar aplicaciones grandes, complejas y con un uso intensivo de recursos informáticos. Le permite escribir aplicaciones C y C++ optimizadas para el hardware de sistemas IBM Z®.
IBM XL C/C++ for z/VM es el entorno de desarrollo de aplicaciones C/C++ centrado en el idioma en la plataforma z/VM. Es una versión habilitada para z/VM de z/OS® XL C/C+, que incluye un componente C/C++ (conocido como compilador XL C/C++) y algunos servicios públicos de desarrollo de aplicaciones de C/C++.
Guías de usuario e implementación de XL C/C++ for z/VM 1.3
Admite transformaciones de alto orden, que son optimizaciones que mejoran el rendimiento de los bucles; admite OPTIMIZE(3) u OPT(3), el nivel de optimización más alto y agresivo del compilador.
Cumple con el estándar internacional ISO/IEC 9899:1999 (C99), el estándar ANSI/ISO 1998 C++ y un compilador C conforme a los estándares, e incluye la biblioteca de C++ estándar.
Admite estándares de la industria para simplificar la transferencia de aplicaciones a z/VM desde plataformas IBM y no IBM.
El soporte para OPT (3) introduce opciones y pragmas adicionales para ayudarle a mejorar el rendimiento de su aplicación, que incluye la opción de desenroscado de bucles y varias nuevas funciones incorporadas. Con las opciones OPT(0), OPT(2) y OPT(3), puede obtener niveles de optimización que van desde optimizaciones completas de bajo nivel hasta optimizaciones más extensas.
IBM XL C/C++ for z/VM® incluye la biblioteca de secuencias de E/S estándar de C++ para realizar operaciones de entrada y salida (E/S), la biblioteca de matemáticas complejas estándar de C++ para manipular números complejos y la biblioteca de plantillas estándar (STL), que se compone de algoritmos basados en plantillas de C++, clases contenedoras, iteradores, objeto de localización y la clase de cadena.
IBM XL C/C++ for z/VM agrega soporte para los tipos char16_t y char32_t a través de typedefs en C y como tipos nativos en C++, lo que facilita la migración del código que utiliza estos tipos a z/OS.
El soporte C incluido para la construcción de expresión de declaración permite a los programadores usar bucles, conmutadores y variables locales dentro de una expresión. C y C++ admiten la construcción de arreglos de discos de extensión cero como encabezado para un objeto de longitud variable. Estas funciones facilitan la transferencia del código C/C++ mediante estos constructos en otras plataformas a XL C/C++ for z/VM.
La opción RESTRICT indica al compilador que los indicadores de parámetro de parámetro son inconexos. El compilador realiza un análisis más profundo de los punteros cuando la opción RESTRICT está activa. Con ello, se pretende mejorar el rendimiento de la aplicación que se está compilando.
IBM XL C/C++ for z/VM proporciona una representación compacta de las opciones de compilador utilizadas para cada archivo fuente y crea la cadena de opciones guardadas en el archivo ejecutable para cada unidad de compilación. El compilador registra la información de la versión de todos los componentes activos durante la compilación. Esta nueva función puede ayudarle a diagnosticar problemas de tiempo de ejecución.
La opción SEVERITY permite cambiar la gravedad de algunos de los mensajes de diagnóstico emitidos por el compilador. Esta característica permite la personalización de ciertos niveles de mensajes de diagnóstico según los estándares de codificación del usuario.
Los listados de origen generados por el compilador se potencian para agregar el offset inicial de cada función a los listados. Se espera que el offset inicial de cada función sea útil para fines de depuración. Para el código compilado con el nivel de optimización O2 u O3, los nombres y direcciones de las funciones y los nombres, tipos y valores de los parámetros se pueden mostrar al depurar código optimizado.
Obtenga una visión general del entorno de lenguaje en z/VM.
Explore características adicionales de IBM XL C/C++ for z/VM con descripciones técnicas.
Conozca las característica del compilador z/OS XL C/C++ que no son compatibles o no funcionan de manera diferente en XL C/C++ for z/VM.