네임 맹글링

컴파일러 구조에서 네임 맹글링(name mangling)은 현대의 수많은 프로그래밍 언어에서 프로그래밍 엔티티의 고유한 이름을 사용할 때 발생하는 다양한 문제를 해결하기 위해 사용되는 기법이다.

컴파일러로부터 링커로 더 시맨틱한 정보를 전달하기 위해 함수, 구조, 클래스 또는 다른 자료형의 이름에서 추가 정보를 인코딩하는 한 수단을 제공한다.

 컴파일러별 동일 함수를 맹글링하는 방법 
 Compiler
     Intel C++ 8.0 for Linux



  HP aC++ A.05.55 IA-64
  IAR EWARM C++
  GCC 3.x 이상
  Clang  1.x 이상
  GCC 2.9.x



  HP aC++ A.03.45 PA-RISC
  Microsoft Visual C++ v6-v10 (mangling details)



  Digital Mars C++
  Borland C++ v3.1
     OpenVMS C++ v6.5 (ARM mode)
     OpenVMS C++ v6.5 (ANSI mode)
     OpenVMS C++ X7.1 IA-64
     SunPro CC
     Tru64 C++ v6.5 (ARM mode)
     Tru64 C++ v6.5 (ANSI mode)
     Watcom C++ 10.6


 같이 보기 
 응용 프로그램 이진 인터페이스
 호출 규약
 외부 함수 인터페이스
 자바 네이티브 인터페이스
 언어 바인딩
 SWIG

 각주 

 외부 링크 
 Linux Itanium ABI for C++, including name mangling scheme.
 Macintosh C/C++ ABI Standard Specification
 c++filt — filter to demangle encoded C++ symbols for GNU/Intel compilers
 undname — msvc tool to demangle names.
 demangler.com — An online tool for demangling GCC and MSVC C++ symbols
 The Objective-C Runtime System — From Apple's The Objective-C Programming Language 1.0
 Calling conventions for different C++ compilers by Agner Fog contains detailed description of name mangling schemes for various x86 and x64 C++ compilers (pp. 24–42 in 2011-06-08 version)
 C++ Name Mangling/Demangling Quite detailed explanation of Visual C++ compiler name mangling scheme
 PHP UnDecorateSymbolName a php script that demangles Microsoft Visual C's function names.
 Mixing C and C++ Code
  Code:  Errata: 
 Name mangling demystified by Fivos Kefallonitis

분류:라이브러리
분류:자바 (프로그래밍 언어)
분류:컴파일러 구성