WEKO3
アイテム
行列計算のためのMATLABベース静的型付け言語の設計と実装
https://ipsj.ixsq.nii.ac.jp/records/16563
https://ipsj.ixsq.nii.ac.jp/records/165639d602e64-7380-4728-8c93-17951b54d94d
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 2006 by the Information Processing Society of Japan
|
|
オープンアクセス |
Item type | Trans(1) | |||||||
---|---|---|---|---|---|---|---|---|
公開日 | 2006-05-15 | |||||||
タイトル | ||||||||
タイトル | 行列計算のためのMATLABベース静的型付け言語の設計と実装 | |||||||
タイトル | ||||||||
言語 | en | |||||||
タイトル | Design and Implementation of a MATLAB-based Statically-typed Language for Matrix Computations | |||||||
言語 | ||||||||
言語 | jpn | |||||||
キーワード | ||||||||
主題Scheme | Other | |||||||
主題 | 通常論文 | |||||||
資源タイプ | ||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
資源タイプ | journal article | |||||||
著者所属 | ||||||||
広島市立大学情報科学部情報工学科 | ||||||||
著者所属 | ||||||||
広島市立大学情報科学部情報工学科 | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Department of Computer Engineering, Hiroshima City University | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Department of Computer Engineering, Hiroshima City University | ||||||||
著者名 |
川端, 英之
北村, 俊明
× 川端, 英之 北村, 俊明
|
|||||||
著者名(英) |
Hideyuki, Kawabata
Toshiaki, Kitamura
× Hideyuki, Kawabata Toshiaki, Kitamura
|
|||||||
論文抄録 | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | 数値計算プログラム記述に広く用いられている言語の1 つにMATLAB がある.MATLAB は各変数が行列を表し,また密行列と疎行列をコード上でほとんど区別なく扱えるので,行列計算を簡潔に記述できる.しかしながらMATLAB は動的型言語であるために処理速度に難があり,特に大規模な疎行列を扱う行列計算や頻繁な手続き呼び出しを含む計算には使いにくい.これに対し我々は,行列計算を高速に処理できかつ記述のしやすい言語処理環境の実現を目的とし,MATLAB をベースとする記述からC やFortran 90 などのコンパイル型言語によるプログラムを生成する処理系を開発している.本論文では,このたび新たに改良を加えた行列計算記述向け言語処理系CMC の仕様について述べる.CMC の入力言語はMATLAB をベースとし,静的型とすることで実行時のオーバヘッドを極力排除して高速化を図るという方針で設計されており,いくつかの実測により効果が確認されている.しかし,従来の言語仕様は柔軟性に欠けるもので,MATLAB との互換性が十分ではなかった.これに対して,新たに代入による暗黙の変数宣言に対応し,同一名の変数を同一手続き中の複数箇所で別の型で扱うことができるようにした.また,値呼びによる引数授受に対応し,行列添字式の動的チェックや行列サイズの動的拡張を行う箇所をユーザが指定できるようにした.ハウスホルダQR 分解を用いた実測により,実行速度を高く保ちながらMATLAB との互換性の高い記述に対応することの可能性が確認できた. | |||||||
論文抄録(英) | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | MATLAB is a programming language that is used widely for implementing matrix computations. Variables of the MATLAB language are of (sparse or dense) matrix type and operators of the language support matrix computations, so that MATLAB programs tend to be quite simple and readable. However, because of its dynamic nature, the execution speed of programs in MATLAB does not compete with that of codes written in compiled languages such as C or Fortran, especially when computations with large-scale sparse matrices are involved. In order to embody a computational environment where the user can implement efficient programs for matrix computations easily, we have been developing a compiler which translates programs in MATLAB-based language, named CMC, into Fortran 90. The basic idea of our approach for speeding up executions is to adopt static typing while keeping the features of MATLAB as many as possible, and some experimental results have been confirmed that our approach is effective. In this paper, we show new features of CMC. We refined the language specification to make CMC more compatible with MATLAB without loosing the ability of generating fast codes. The modified version of CMC has a few new features. Implicit type declaration with assignment allows the user to deal with variables of different types by the same name. Call-by-value is supported. Dynamic array-bounds checking and enlargement of array will be done at explicitly specified points by the user. Experimental results on Householder QR factorization algorithm have exhibited the effectiveness of CMC’s approach. | |||||||
書誌レコードID | ||||||||
収録物識別子タイプ | NCID | |||||||
収録物識別子 | AA11464814 | |||||||
書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 47, 号 SIG6(PRO29), p. 21-36, 発行日 2006-05-15 |
|||||||
ISSN | ||||||||
収録物識別子タイプ | ISSN | |||||||
収録物識別子 | 1882-7802 | |||||||
出版者 | ||||||||
言語 | ja | |||||||
出版者 | 情報処理学会 |