@article{oai:ipsj.ixsq.nii.ac.jp:00016434, author = {飯塚, 大輔 and 前田, 俊行 and 米澤, 明憲 and Daisuke, Iizuka and Toshiyuki, Maeda and Akinori, Yonezawa}, issue = {2}, journal = {情報処理学会論文誌プログラミング(PRO)}, month = {Sep}, note = {型付きアセンブリ言語(TAL)は,高級言語コンパイラのターゲット言語となりうる,型安全な低級言語である.TALの型システムは,型付けされたプログラムが,クロージャ,タプル,またはユーザによって定義された抽象データ型のような高級言語の構造を破壊しないということを保証する.オリジナルのTALは一般的な理論上のRISCアーキテクチャに対して設計されており,具体的な実装はIA-32アーキテクチャ以外は考えられていない.本論文は,組み込み機器で広く使われているARMアーキテクチャに対応するTALについて説明する.ARMの重要な特徴の1つは条件実行機構である.条件実行とは,命令が実行されるかどうかが,実行時にそれぞれの命令に付随する条件フラグとCPUのステータスレジスタの条件ビットの値を比較することによって決定される,という機構である.より詳細にいうと,本論文は,条件実行をサポートするために,4ビットの条件ビットの値を型に写像する写像型を用いて,TALを拡張する.我々の型システムでは,1つのレジスタは,条件ビットの値によって同時に異なった型を持つことができる., Typed Assembly Language (TAL) is a type-safe low-level language that serves as a target language for compilers of high-level languages. TAL's type system ensures that well-typed programs do not violate high-level language abstractions, such as closures, tuples, and user-defined abstract data types. The original TAL was designed for a generic, theoretical RISC architecture, and no specific real-world architectures have been considered except for the IA-32 architecture. We present a TAL for the ARM architecture that is widely used in embedded computing environments. One key feature of ARM is Conditional Execution facility. Conditional Execution is the mechanism whether an instruction is executed or not is determined dynamically by a comparison of the conditional flag, which is specified in the instruction, and the value of the condition bits in the status register of the CPU. More specifically, we present an extension of TAL to support Conditional Execution with mapping types which map a value of the condition bits to a type. In our type system, a single register can have different types simultaneously, depending on the condition bits.}, pages = {9--27}, title = {CPUの条件実行機能に対応した型付きアセンブリ言語}, volume = {1}, year = {2008} }