WEKO3
アイテム
C++テンプレートを分割コンパイルするためのアプローチ
https://ipsj.ixsq.nii.ac.jp/records/16763
https://ipsj.ixsq.nii.ac.jp/records/167633df663ea-c55a-4d4f-81c1-aba7974b4ce8
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 2003 by the Information Processing Society of Japan
|
|
オープンアクセス |
Item type | Trans(1) | |||||||
---|---|---|---|---|---|---|---|---|
公開日 | 2003-02-15 | |||||||
タイトル | ||||||||
タイトル | C++テンプレートを分割コンパイルするためのアプローチ | |||||||
タイトル | ||||||||
言語 | en | |||||||
タイトル | An Approach to Separate Compilation of C++ Template | |||||||
言語 | ||||||||
言語 | jpn | |||||||
キーワード | ||||||||
主題Scheme | Other | |||||||
主題 | 発表概要 | |||||||
資源タイプ | ||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
資源タイプ | journal article | |||||||
著者所属 | ||||||||
東京大学情報理工学系研究所コンピュータ科学専攻 | ||||||||
著者所属 | ||||||||
東京大学情報理工学系研究所コンピュータ科学専攻 | ||||||||
著者所属 | ||||||||
東京大学情報理工学系研究所コンピュータ科学専攻 | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Department of Computer Science, Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Department of Computer Science, Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Department of Computer Science, Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者名 |
増山, 隆
× 増山, 隆
|
|||||||
著者名(英) |
Takashi, Masuyama
× Takashi, Masuyama
|
|||||||
論文抄録 | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | 既存のC++テンプレートのコンパイルモデルは,インライン化によるものである.このモデルでは,各オブジェクトコード,実行可能コードのサイズが大きくなりがちであり,またテンプレートで書かれた実装が隠蔽できないという問題がある.本発表では,C++のテンプレートを分割コンパイルする方法を示す.変換後のコードは実行時に,(1)テンプレートのparametric 多相性を扱うために,型多相なデータに対し,(多くのML コンパイラが行うように)boxing とunboxing の操作をする.(2)C++のad hoc 多相性を扱うために(Glasgow Haskell コンパイラが行うように)オーバロードされた関数を渡す.また,型多相なオブジェクトに対するメソッド起動を扱うために,C++の多重継承と抽象インタフェースの機能を用いる. | |||||||
論文抄録(英) | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | The existing compilation model of C++templates ?namely inlining ?su ?ers from a problem that each object code and the resulting executable tend to become huge,and also,that implementations of templates cannot be hidden.In this presentation,we propose a method of separately compiling C++templates.This method is based on source-to-source transformation of C++code.At runtime,the transformed code (1)performs boxing and unboxing on polymorphic data (as many ML compilers do)in order to deal with the parametric polymorphism of templates and (2)passes around overloaded functions (as the Glasgow Haskell Compiler does)in order to treat the ad hoc polymorphism of C++.Our method also exploits the multiple inheritance and abstract interface mechanisms of C++to handle method invocations on polymorphic objects. | |||||||
書誌レコードID | ||||||||
収録物識別子タイプ | NCID | |||||||
収録物識別子 | AA11464814 | |||||||
書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 44, 号 SIG02(PRO16), p. 42-42, 発行日 2003-02-15 |
|||||||
ISSN | ||||||||
収録物識別子タイプ | ISSN | |||||||
収録物識別子 | 1882-7802 | |||||||
出版者 | ||||||||
言語 | ja | |||||||
出版者 | 情報処理学会 |