名前修飾
Pythonのプログラマは識別子の最初の2文字をアンダースコアにすることで、明示的にそれが「プライベートな名前」(スコープがクラスに限られる)であることを示すことができる。Pythonコンパイラはこれらに遭遇すると、1個のアンダースコアとその識別子を包含するクラスの名前を先頭に追加することで、プライベートな名前を大域的なシンボルに変換する。例えばPython 2.xでは、
は次のようになる。
そこで、より新しい ANSI モデルが導入され、ANSIテンプレート機能が全て利用可能になったが、過去の版との互換性は失われた。todo: the different isn't obvious from the examples. maybe a template or something should be added...
IA-64にはアプリケーションバイナリインタフェース (ABI) 標準の名前修飾規則(Itanium C++ ABI mangling)が存在する(#外部リンク参照)。これは標準的な名前修飾スキームを定義したものであり、全てのIA-64コンパイラで利用されている。加えて、GNU GCC 3.xもこの標準を用いている。インテル環境以外でも利用することができる。
これらのPascal処理系では、次のようにして名前修飾を抑制する。
Javaでは、言語、コンパイラ、.classファイルフォーマットが同時に設計され、また開発当初からオブジェクト指向が取り入れられていたため、名前修飾を必要とするような問題はJava実行時環境 (JRE) の実装には存在しない。しかしながら、これまでに見てきた名前修飾に類似した名前の変換が必要な場合がある。