mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-14 13:23:53 +00:00
We had been maintaining two copies of these notes, this change attempts to
merge them into one set. The cononical location for these notes is here in
compiler/notes/, they will be removed from the www repository.
I've also updated a number of URLs.
compiler/notes/allocation.html:
compiler/notes/bootstrapping.html:
compiler/notes/coding_standards.html:
compiler/notes/compiler_design.html:
compiler/notes/gc_and_c_code.html:
compiler/notes/glossary.html:
compiler/notes/release_checklist.html:
compiler/notes/reviews.html:
compiler/notes/todo.html:
compiler/notes/work_in_progress.html:
Merge in differences with the versions of these files in the www
repository. Most differences are trivial.
compiler/notes/bytecode.html:
compiler/notes/c_coding_standard.html:
compiler/notes/developer_intro.html:
Add files that were missing from the main repository but were on the
website.
138 lines
3.4 KiB
HTML
138 lines
3.4 KiB
HTML
<html>
|
|
<head>
|
|
<title>
|
|
Glossary Of Terms Used In Mercury
|
|
</title>
|
|
</head>
|
|
|
|
<body
|
|
bgcolor="#ffffff"
|
|
text="#000000"
|
|
>
|
|
|
|
<hr>
|
|
<!-------------------------->
|
|
|
|
<dl>
|
|
|
|
<dt> assertion
|
|
<dd>
|
|
A particular form of promise which claims to the compiler
|
|
that the specified goal will always hold. If useful, the
|
|
compiler may use this information to perform optimisations.
|
|
|
|
<dt> class context
|
|
<dd>
|
|
The typeclass constraints on a predicate or function.
|
|
|
|
<dt> codeinfo
|
|
<dd>
|
|
a structure used by codegen.m
|
|
|
|
<dt> HLDS
|
|
<dd>
|
|
The "High Level Data Structure". See hlds.m.
|
|
|
|
<dt> inst
|
|
<dd>
|
|
instantiatedness. An inst holds three different sorts of
|
|
information. It indicates whether a variable is free, partially
|
|
bound, or ground. If a variable is bound, it may indicate
|
|
which functor(s) the variable can be bound to. Also,
|
|
an inst records whether a value is unique, or whether
|
|
it may be aliased.
|
|
|
|
<dt> liveness
|
|
<dd>
|
|
this term is used to mean two quite different things!
|
|
<ol>
|
|
<li> There's a notion of liveness used in mode analysis:
|
|
a variable is live if either it or an alias might be
|
|
used later on in the computation.
|
|
<li> There's a different notion of liveness used for code generation:
|
|
a variable becomes live (is "born") when the register or stack
|
|
slot holding the variable first acquires a value, and dies when
|
|
that value will definitely not be needed again within this procedure.
|
|
This notion is low-level because it could depend on the low-level
|
|
representation details (in particular, `no_tag' representations
|
|
ought to affect liveness).
|
|
</ol>
|
|
|
|
<dt> LLDS
|
|
<dd>
|
|
The "Low Level Data Structure". See llds.m.
|
|
|
|
<dt> mode
|
|
<dd>
|
|
this has two meanings:
|
|
<ol>
|
|
<li> a mapping from one instantiatedness to another
|
|
(the mode of a single variable)
|
|
<li> a mapping from an initial instantiatedness of a predicate's
|
|
arguments to their final instantiatedness
|
|
(the mode of a predicate)
|
|
</ol>
|
|
|
|
<dt> moduleinfo
|
|
<dd>
|
|
Another name for the HLDS.
|
|
|
|
<dt> NYI
|
|
<dd>
|
|
Not Yet Implemented.
|
|
|
|
<dt> predinfo
|
|
<dd>
|
|
the structure in HLDS which contains information about
|
|
a predicate.
|
|
|
|
<dt> proc (procedure)
|
|
<dd>
|
|
a particular mode of a predicate.
|
|
|
|
<dt> procinfo
|
|
<dd>
|
|
the structure in HLDS which contains
|
|
information about a procedure.
|
|
|
|
<dt> promise
|
|
<dd>
|
|
A declaration that specifies a law that holds for the
|
|
predicates/functions in the declaration. Thus, examples of promises
|
|
are assertions and promise ex declarations. More generally, the term
|
|
promise is often used for a declaration where extra information is
|
|
given to the compiler which it cannot check itself, for example in
|
|
purity pragmas.
|
|
|
|
<dt> promise ex
|
|
<dd>
|
|
A shorthand for promise_exclusive, promise_exhaustive, and
|
|
promise_exclusive_exhaustive declarations. These declarations
|
|
are used to tell the compiler determinism properties of a
|
|
disjunction.
|
|
|
|
<dt> RTTI
|
|
<dd>
|
|
The "RunTime Type Information". See rtti.m. A copy of a paper given
|
|
on this topic is available
|
|
<a href="http://www.mercurylang.org/documentation/papers/rtti_ppdp.ps.gz">here</a> in zipped Postscript format.
|
|
|
|
<dt> super-homogenous form (SHF)
|
|
<dd>
|
|
a simplified, flattened form of goals, where
|
|
each unification is split into its component pieces; in particular,
|
|
the arguments of each predicate call and functor must be distinct
|
|
variables.
|
|
|
|
<dt> switch
|
|
<dd>
|
|
a disjunction which does a case analysis on the toplevel
|
|
functor of some variable.
|
|
</dl>
|
|
|
|
<hr>
|
|
<!-------------------------->
|
|
|
|
</body>
|
|
</html>
|