ログイン 新規登録
言語:

WEKO3

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

Field does not validate



インデックスリンク

インデックスツリー

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

WEKO

One fine body…

WEKO

One fine body…

アイテム

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

JVM上の動的言語のための抽象解釈

https://ipsj.ixsq.nii.ac.jp/records/195830
https://ipsj.ixsq.nii.ac.jp/records/195830
66c4e490-23cc-45d1-918c-f7a13dfc130d
名前 / ファイル ライセンス アクション
IPSJ-TPRO1202016.pdf IPSJ-TPRO1202016.pdf (102.2 kB)
Copyright (c) 2019 by the Information Processing Society of Japan
オープンアクセス
Item type Trans(1)
公開日 2019-05-21
タイトル
タイトル JVM上の動的言語のための抽象解釈
タイトル
言語 en
タイトル Abstract Interpretation for JVM-hosted Dynamic Languages
言語
言語 jpn
キーワード
主題Scheme Other
主題 [発表概要,Unrefereed Presentation Abstract]
資源タイプ
資源タイプ識別子 http://purl.org/coar/resource_type/c_6501
資源タイプ journal article
著者所属
京都大学大学院情報学研究科
著者所属(英)
en
Graduate School of Informatics, Kyoto University
著者名 馬谷, 誠二

× 馬谷, 誠二

馬谷, 誠二

Search repository
著者名(英) Seiji, Umatani

× Seiji, Umatani

en Seiji, Umatani

Search repository
論文抄録
内容記述タイプ Other
内容記述 言語仕様が厳密には規定されていないプログラミング言語上でプログラムを書く場合,実行時の振舞いを正確に把握するには,リファレンス実装を使って実際に実行せざるを得ない.同様に,言語仕様が厳密に規定されていないJVM上の言語で書かれたプログラムの性質を静的に解析しようとすれば,通常,リファレンス実装(ほとんどの場合,バイトコードへのコンパイラ)の生成したバイトコード命令列を解析する以外に選択肢がない.JVMバイトコードを対象とする静的解析器は数多く存在する.それらの解析器は,JavaやScalaのような静的型付き言語からコンパイルされたバイトコード命令列に対しては上手く機能する.一方,動的な言語からコンパイルされたバイトコード命令列に適用すると,ほとんどの解析器は有用な情報を取得することができない.そのような精度の低下の主な原因は,動的言語の動的な振舞いを実現するために用いられる実行時機構の複雑さにある.本発表では,既存のバイトコードレベルの抽象解釈フレームワークを用いた動的言語向け抽象解釈器の構築方法を提案する.我々の抽象解釈器は,抽象解釈と「具象解釈」を混ぜながら実行することにより,バイトコードレベルの解析技術に依存しながらも,動的言語の振舞いをある程度正確に把握することが可能である.提案する方法を使ってClojure言語のための抽象解釈器の構築を実際に行った.さらに,標準ライブラリ中のいくつかの関数定義を用いて,提案する構築方法の有効性を確認した.
論文抄録(英)
内容記述タイプ Other
内容記述 When writing a program in a programming language whose semantics is not specified precisely, we have to actually execute our program using the reference implementation in order to reason about its behavior. Similarly, if we want to analyze the characteristics of a program written in a JVM-hosted language whose semantics is not precise, we usually have no choice other than analyzing bytecode instructions generated by the reference implementation (i.e., a bytecode compiler). There are many available static analyzers targeting JVM bytecode. They work well for bytecode instructions compiled from a statically-typed language such as Java and Scala. On the other hand, when applied to the ones compiled from a dynamic language, most analyzers fail to obtain useful information. Such low accuracy is mainly caused by the complexity of runtime mechanisms used for realizing dynamic behavior of the dynamic language. In this presentation, we propose a method for building an abstract interpreter that exploits an existing bytecode-level abstract interpretation framework. While relying on the bytecode-level analysis, our abstract interpreter can understand the exact behavior of programs written in a JVM-hosted dynamic language to some extent. We actually implemented an abstract interpreter for Clojure using the proposed method and confirmed its effectiveness by applying the abstract interpreter to several functions defined in the standard library.
書誌レコードID
収録物識別子タイプ NCID
収録物識別子 AA11464814
書誌情報 情報処理学会論文誌プログラミング(PRO)

巻 12, 号 2, p. 20-20, 発行日 2019-05-21
ISSN
収録物識別子タイプ ISSN
収録物識別子 1882-7802
出版者
言語 ja
出版者 情報処理学会
戻る
0
views
See details
Views

Versions

Ver.1 2025-01-19 22:54:51.675946
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