홈
Z 소프트웨어
Developer Tools
XL C/C++ for z/VM
IBM® XL C/C++ for z/VM은 크고 복잡하며 계산 집약적인 애플리케이션을 개발하도록 설계된 최적화 컴파일러입니다. 이를 통해 IBM® Z 시스템 하드웨어에 최적화된 C 및 C++ 애플리케이션을 작성할 수 있습니다.
IBM XL C/C++ for z/VM은 z/VM 플랫폼에서 언어 중심 C/C++ 애플리케이션을 개발하는 환경입니다. z/OS XL C/C++의 z/VM 지원 버전으로 C/C++ 컴파일러 컴포넌트(XL C/C++ 컴파일러라고 함)와 일부 C/C++ 애플리케이션 개발 유틸리티가 함께 제공됩니다.
루프 성능을 개선하는 최적화 기술인 고차 변환을 지원합니다. 컴파일러의 가장 높고 가장 공격적인 최적화 레벨인 OPTIMIZE(3) 또는 OPT(3)를 지원합니다.
ISO/IEC 9899:1999 국제 표준(C99), ANSI/ISO 1998 C++ 표준, 표준을 준수하는 C 컴파일러를 준수하며 C++ 표준 라이브러리를 함께 제공합니다.
업계 표준을 지원하여 IBM 플랫폼과 타사 플랫폼 모두에서 z/VM으로 애플리케이션을 포팅하는 작업을 간소화합니다.
OPT(3) 지원으로 루프 언롤 옵션과 pragma, 여러 새로운 내장 기능을 비롯하여 애플리케이션 성능을 개선할 수 있는 추가 옵션과 pragma가 도입되었습니다. OPT(0), OPT(2), OPT(3) 옵션을 사용하면 포괄적인 하위 레벨 최적화부터 보다 광범위한 최적화까지 실행되는 최적화 레벨을 이용할 수 있습니다.
IBM XL C/C++ for z/VM에는 입출력(I/O) 작업용 C++ 표준 I/O 스트림 라이브러리, 복소수 조작용 C++ 표준 복소수학 라이브러리와 C++ 템플릿 기반 알고리즘, 컨테이너 클래스, 반복자, 현지화 오브젝트, 문자열 클래스로 구성된 표준 템플릿 라이브러리(STL)가 포함되어 있습니다.
IBM XL C/C++ for z/VM은 C에서는 typedef를 사용하고 C++에서는 기본 유형으로 사용하여 char16_t 및 char32_t 유형을 지원하며, 이러한 유형을 이용하는 코드를 z/OS로 쉽게 포팅할 수 있습니다.
명령문 표현식 구성에 대한 C 지원을 통해 프로그래머는 표현식 내에서 루프, 스위치, 로컬 변수를 사용할 수 있으며, 제로 익스텐션 배열 구성에 대한 C 및 C++ 지원을 가변 길이 오브젝트의 헤더로 사용할 수 있습니다. 이러한 기능을 사용하면 다른 플랫폼에서 해당 구성을 사용하는 C/C++ 코드를 XL C/C++ for z/VM으로 쉽게 포팅할 수 있습니다.
RESTRICT 옵션은 모든 함수 또는 지정된 함수의 매개변수 포인터가 분리되어 있음을 컴파일러에 알립니다. RESTRICT 옵션이 활성화되면 컴파일러는 보다 심층적인 포인터 분석을 수행합니다. 이를 통해 컴파일 중인 애플리케이션의 성능을 향상할 수 있습니다.
IBM XL C/C++ for z/VM은 각 소스 파일에 사용되는 컴파일러 옵션을 간략하게 표현하고 각 컴파일 단위에 대해 실행 파일에 저장된 옵션 문자열을 생성합니다. 컴파일러는 컴파일 중에 활성화된 모든 구성 요소의 버전 정보를 기록합니다. 이 새로운 기능을 활용하여 런타임 문제를 진단할 수도 있습니다.
SEVERITY 옵션을 사용하면 컴파일러에서 내보낸 일부 진단 메시지의 심각도를 변경할 수 있습니다. 이 기능을 사용하면 특정 진단 메시지 레벨을 사용자의 코딩 표준에 맞게 사용자 정의할 수 있습니다.
컴파일러에서 생성한 소스 목록에는 각 함수의 시작 오프셋을 추가하도록 개선하였습니다. 각 함수의 시작 오프셋은 디버깅에 유용할 것입니다. 최적화 레벨 O2 또는 O3를 사용하여 컴파일된 코드의 경우, 최적화 코드를 디버깅할 때 함수의 이름과 주소, 매개변수의 이름, 유형, 값이 표시될 수 있습니다.