O IBM XL C/C++ for z/VM é um compilador de otimização projetado para o desenvolvimento de aplicações grandes, complexas e intensivas em computação.Ele permite que você desenvolva aplicações em C e C++ otimizadas para o hardware dos sistemas IBM Z.
O IBM XL C/C++ para z/VM é o ambiente de desenvolvimento de aplicações C/C++ centrado na linguagem na plataforma z/VM. É uma versão habilitada para z/VM do z/OS XL C/C++, que inclui um componente de compilador C/C++ (referido como o compilador XL C/C++) e alguns utilitários de desenvolvimento de aplicações C/C++.
Guias de usuário e implementação do XL C/C++ for z/VM 1.3
Suporta transformações de alta ordem, que são otimizações que melhoram o desempenho para loops; suporta OPTIMIZE(3) ou OPT(3), o nível mais alto e agressivo de otimização do compilador.
Está em conformidade com o padrão internacional ISO/IEC 9899:1999 (C99), o padrão ANSI/ISO 1998 C++ e um compilador C conforme aos padrões, e inclui a C++ Standard Library.
É compatível com os padrões do setor para simplificar a portabilidade de aplicativos para o z/VM a partir de plataformas IBM e não IBM.
A compatibilidade com OPT(3) introduz opções e pragmas adicionais para ajudar você a melhorar o desempenho da sua aplicação, incluindo a opção de desenrolamento de loop e pragmas e várias novas funções embutidas. Usando as opções OPT(0), OPT(2) e OPT(3), você pode obter níveis de otimização que vão desde otimizações de baixo nível abrangentes até otimizações mais extensas.
O IBM XL C/C++ for z/VM inclui a C++ Standard I/O Stream Library para realizar operações de input e output (I/O), a C++ Standard Complex Mathematics Library para manipular números complexos e a Standard Template Library (STL), que é composta por algoritmos baseados em template C++, classes de contêineres, iteradores, objeto de localização e a classe string.
O IBM XL C/C++ para z/VM adiciona suporte para os tipos char16_t e char32_t por meio de typedefs em C e como tipos nativos em C++, facilitando a portabilidade de código que utiliza esses tipos para z/OS.
O suporte C incluído para a construção de expressão de instrução permite que os programadores usem loops, switches e variáveis locais dentro de uma expressão. C e C++ suportam a construção de array de extensão zero como um cabeçalho para um objeto de comprimento variável. Esses recursos facilitam a portabilidade de código C/C++ usando essas construções em outras plataformas para o XL C/C++ for z/VM.
A opção RESTRICT indica ao compilador que os ponteiros de parâmetros em todas as funções ou funções especificadas são separados. O compilador executa uma análise de ponteiro mais aprofundada quando a opção RESTRICT está ativa. O objetivo é melhorar o desempenho da aplicação que está sendo compilada.
O IBM XL C/C++ for z/VM fornece uma representação compacta das opções de compilador usadas para cada arquivo de origem e cria a string de opções salvas no arquivo executável para cada unidade de compilação. O compilador registra informações de versão para todos os componentes ativos durante a compilação. Este novo recurso pode ajudar você no diagnóstico de problemas de execução.
A opção SEVERITY permite alterar a gravidade de algumas das mensagens de diagnóstico enviadas pelo compilador. Esse recurso permite a personalização de determinados níveis de mensagem de diagnóstico de acordo com os padrões de programação do usuário.
Listagens de fontes geradas pelo compilador são aprimoradas para adicionar o deslocamento inicial de cada função às listagens. Espera-se que o deslocamento inicial de cada função seja útil para fins de depuração. Para código compilado usando o nível de otimização O2 ou O3, os nomes e endereços das funções e os nomes, tipos e valores dos parâmetros podem ser exibidos ao depurar código otimizado.
Obtenha uma visão geral do ambiente de linguagem no z/VM.
Explore recursos adicionais do IBM XL C/C++ for z/VM com descrições técnicas.
Saiba sobre os recursos do compilador z/OS XL C/C++ que não são suportados ou operam de forma diferente no XL C/C++ for z/VM.