Cryptography Reference
In-Depth Information
CHAPTER 3
Interface Semantics
When people hear some words, they normally believe
that there's some thought behind them.
—Goethe, Faust ,Part1
I N THE FOLLOWING WE SHALL set some fundamental properties that relate to the
behavior of the interface and the use of FLINT/C functions. First we shall consider
the textual representation of CLINT objects and FLINT/C functions, but primarily
we wish to clarify some fundamentals of the implementation that are important
to the use of the functions.
The functions of the FLINT/C package are identified with the convention
that their names end with “ _l ”; for example, add_l denotes the addition function.
Designators of CLINT objects likewise end with an underscore and an appended l .
For the sake of simplicity we shall equate from now on, when conditions permit,
a CLINT object n_l with the value that it represents.
The representation of a FLINT/C function begins with a header, which
contains the syntactic and semantic description of the function interface. Such
function headers typically look something like the following.
Function:
a brief description of the function
int f_l (CLINT a_l, CLINT b_l, CLINT c_l);
Syntax:
a_l, b_l (operands)
Input:
c_l (result)
Output:
Return:
0 if all is ok
otherwise, a warning or error message
Here we distinguish, among other things, between output and return value:
While output refers to the values that are stored by the function in the passed
arguments, by return we mean the values that the function returns via a return
command. Except for a few cases (for example, the functions ld_l() , Section 10.3,
and twofact_l() , Section 10.4.1), the return value consists of status information
or error messages.
Parameters other than those involved with output are not changed by the
function. Calls of the form f_l(a_l, b_l, a_l) , where a_l and b_l are used
 
Search WWH ::




Custom Search