src/Doc/Codegen/Adaptation.thy
changeset 81713 378b9d6c52b2
parent 81706 7beb0cf38292
child 82445 bb1f2a03b370
equal deleted inserted replaced
81712:97987036f051 81713:378b9d6c52b2
   202     \item[\<open>Code_Target_Nat\<close>] implements type \<^typ>\<open>nat\<close>
   202     \item[\<open>Code_Target_Nat\<close>] implements type \<^typ>\<open>nat\<close>
   203        by \<^typ>\<open>integer\<close> and thus by target-language built-in integers.
   203        by \<^typ>\<open>integer\<close> and thus by target-language built-in integers.
   204        Pattern matching with \<^term>\<open>0::nat\<close> / \<^const>\<open>Suc\<close> is eliminated
   204        Pattern matching with \<^term>\<open>0::nat\<close> / \<^const>\<open>Suc\<close> is eliminated
   205        by a preprocessor.
   205        by a preprocessor.
   206 
   206 
       
   207     \item[\<open>Code_Target_Bit_Shifts\<close>] implements bit shifts on \<^typ>\<open>integer\<close>
       
   208        by target-language operations. Combined with \<open>Code_Target_Int\<close>
       
   209        or \<open>Code_Target_Nat\<close>, bit shifts on \<^typ>\<open>int\<close> or \<^type>\<open>nat\<close> can
       
   210        be implemented by target-language operations.
       
   211 
   207     \item[\<open>Code_Target_Numeral\<close>] is a convenience theory
   212     \item[\<open>Code_Target_Numeral\<close>] is a convenience theory
   208        containing both \<open>Code_Target_Nat\<close> and
   213        containing \<open>Code_Target_Nat\<close>, \<open>Code_Target_Int\<close> and \<open>Code_Target_Bit_Shifts\<close>-
   209        \<open>Code_Target_Int\<close>.
       
   210 
   214 
   211     \item[\<open>Code_Abstract_Char\<close>] implements type \<^typ>\<open>char\<close> by target language
   215     \item[\<open>Code_Abstract_Char\<close>] implements type \<^typ>\<open>char\<close> by target language
   212        integers, sacrificing pattern patching in exchange for dramatically
   216        integers, sacrificing pattern patching in exchange for dramatically
   213        increased performance for comparisions.
   217        increased performance for comparisons.
   214 
   218 
   215     \item[\<^theory>\<open>HOL-Library.IArray\<close>] provides a type \<^typ>\<open>'a iarray\<close>
   219     \item[\<^theory>\<open>HOL-Library.IArray\<close>] provides a type \<^typ>\<open>'a iarray\<close>
   216        isomorphic to lists but implemented by (effectively immutable)
   220        isomorphic to lists but implemented by (effectively immutable)
   217        arrays \emph{in SML only}.
   221        arrays \emph{in SML only}.
   218 
   222