ログイン 新規登録
言語:

WEKO3

  • トップ
  • ランキング
To
lat lon distance
To

Field does not validate



インデックスリンク

インデックスツリー

メールアドレスを入力してください。

WEKO

One fine body…

WEKO

One fine body…

アイテム

  1. 論文誌(トランザクション)
  2. プログラミング(PRO)
  3. Vol.8
  4. No.2

Design and Implementation of a Java Bytecode Manipulation Library for Clojure

https://ipsj.ixsq.nii.ac.jp/records/142680
https://ipsj.ixsq.nii.ac.jp/records/142680
bd0a37af-fad3-40d7-9428-666aff92681f
名前 / ファイル ライセンス アクション
IPSJ-TPRO0802002.pdf IPSJ-TPRO0802002 (237.7 kB)
Copyright (c) 2015 by the Information Processing Society of Japan
オープンアクセス
Item type Trans(1)
公開日 2015-07-08
タイトル
タイトル Design and Implementation of a Java Bytecode Manipulation Library for Clojure
タイトル
言語 en
タイトル Design and Implementation of a Java Bytecode Manipulation Library for Clojure
言語
言語 eng
キーワード
主題Scheme Other
主題 [一般論文] bytecode, tree transformation, macro
資源タイプ
資源タイプ識別子 http://purl.org/coar/resource_type/c_6501
資源タイプ journal article
著者所属
Graduate School of Informatics, Kyoto University
著者所属
Kochi University of Technology
著者所属
Department of Artificial Intelligence, Kyushu Institute of Technology
著者所属(英)
en
Graduate School of Informatics, Kyoto University
著者所属(英)
en
Kochi University of Technology
著者所属(英)
en
Department of Artificial Intelligence, Kyushu Institute of Technology
著者名 Seiji, Umatani

× Seiji, Umatani

Seiji, Umatani

Search repository
Tomoharu, Ugawa

× Tomoharu, Ugawa

Tomoharu, Ugawa

Search repository
Masahiro, Yasugi

× Masahiro, Yasugi

Masahiro, Yasugi

Search repository
著者名(英) Seiji, Umatani

× Seiji, Umatani

en Seiji, Umatani

Search repository
Tomoharu, Ugawa

× Tomoharu, Ugawa

en Tomoharu, Ugawa

Search repository
Masahiro, Yasugi

× Masahiro, Yasugi

en Masahiro, Yasugi

Search repository
論文抄録
内容記述タイプ Other
内容記述 Recently, the Java Virtual Machine (JVM) has become widely used as a common execution platform for various applications. There is often the need to manipulate bytecodes at class-load time, particularly in application domains that demand dynamic modification of program behaviors. Whereas several bytecode manipulation tools for Java exist for implementing such behaviors, JVM is also the platform for various modern programming languages, and there is no need to write bytecode manipulation programs exclusively in Java. In this paper, we propose a novel bytecode manipulation library for Clojure, a Lisp dialect running on JVM. Our library is as expressive and flexible as ASM, the de facto standard bytecode manipulation tool in Java, while enabling more concise representation of typical manipulation cases. Our library works at class-load time as a series of rewrites of (parts of) the tree representing the target class file, basically in a similar way to Lisp's macro system. However, our library differs from Lisp's macro system in the following significant respects. First, instead of matching a single name against the first item of the target form (tree), our library matches a tree pattern against the target tree itself during macro expansion so that users can define rewriting rules for raw class files that cannot contain any special tags (names) for pattern matching. Furthermore, along with matching tree patterns, our library can extract any information from the static context easily and thus allows users to avoid cumbersome manual management of such information.

------------------------------
This is a preprint of an article intended for publication Journal of
Information Processing(JIP). This preprint should not be cited. This
article should be cited as: Journal of Information Processing Vol.23(2015) No.5(online)
------------------------------
論文抄録(英)
内容記述タイプ Other
内容記述 Recently, the Java Virtual Machine (JVM) has become widely used as a common execution platform for various applications. There is often the need to manipulate bytecodes at class-load time, particularly in application domains that demand dynamic modification of program behaviors. Whereas several bytecode manipulation tools for Java exist for implementing such behaviors, JVM is also the platform for various modern programming languages, and there is no need to write bytecode manipulation programs exclusively in Java. In this paper, we propose a novel bytecode manipulation library for Clojure, a Lisp dialect running on JVM. Our library is as expressive and flexible as ASM, the de facto standard bytecode manipulation tool in Java, while enabling more concise representation of typical manipulation cases. Our library works at class-load time as a series of rewrites of (parts of) the tree representing the target class file, basically in a similar way to Lisp's macro system. However, our library differs from Lisp's macro system in the following significant respects. First, instead of matching a single name against the first item of the target form (tree), our library matches a tree pattern against the target tree itself during macro expansion so that users can define rewriting rules for raw class files that cannot contain any special tags (names) for pattern matching. Furthermore, along with matching tree patterns, our library can extract any information from the static context easily and thus allows users to avoid cumbersome manual management of such information.

------------------------------
This is a preprint of an article intended for publication Journal of
Information Processing(JIP). This preprint should not be cited. This
article should be cited as: Journal of Information Processing Vol.23(2015) No.5(online)
------------------------------
書誌レコードID
収録物識別子タイプ NCID
収録物識別子 AA11464814
書誌情報 情報処理学会論文誌プログラミング(PRO)

巻 8, 号 2, 発行日 2015-07-08
ISSN
収録物識別子タイプ ISSN
収録物識別子 1882-7802
出版者
言語 ja
出版者 情報処理学会
戻る
0
views
See details
Views

Versions

Ver.1 2025-01-20 06:43:29.375648
Show All versions

Share

Mendeley Twitter Facebook Print Addthis

Cite as

エクスポート

OAI-PMH
  • OAI-PMH JPCOAR
  • OAI-PMH DublinCore
  • OAI-PMH DDI
Other Formats
  • JSON
  • BIBTEX

Confirm


Powered by WEKO3


Powered by WEKO3