TABLING HILOG PREDICATES ======================== Chang Zhao /************ DEPRECATED (except flora_compiler_options) BEGIN *************/ 1. Changes in the language 1) Directives 'firstorder', 'firstorderall', and 'hilogtable' are no longer needed. 2) The syntax of the directive 'table' is as follows: :- table P/N or :- table P/N/M where P is an atom or a variable, N and M are integers. The number of slashs allowed is determined by FLSK_DEPTH in flrparser.P, which is currently 2. 3) A new directive flora_compiler_options is added. See section 3 for details. 4) get_residual@prolog(tables) is substituted by table_state@flora(sys). see section 4 for details. 5) The syntax of index directive is now :- index N-M where both N and M are integers, 0 t_flapply(p,X) :- flapply(q,X). where t_flapply is the wrapper for tabled hilog and flapply is the wrapper for non-tabled hilog predicates. Both of them are prefixed with _$_$_flora_modspec_. Terms are always wrapped by flapply. For example, the term p(X) will be flapply(p,X), and the term #q(X) will be flapply(#,flapply(q,X)). 3) import syntax import p/1 as ... from ... to import tabled p/1 import #(q)/1 as ... from ... to import non-tabled q/1 4) The syntax of index directive is now :- index N-M or :- index #N-M where both N and M are integers, 0