Clif(1)

NAME
clif - C-like Interpreter Framework (v0.92)

SYNOPSIS
clif [ option | filename ]...

WARNING
The information in this manual page can be incomplete. For full documentation see `The Interpreter Clif Programmer's Guide'.

DESCRIPTION
Clif - C-like Interpreter Framework is open-ended system for fast development of programs with C syntax. The program is compiled and if syntactic correct, code is immediately generated. The code is generated for a virtual machine. The virtual machine is a part of the framework.

The Clif works in two basic modes as an interpreter and/or as a compiler (see `-fhandle-main ' option). The interpreter mode is default. In the interpreter mode, the Clif compiles each function and each loop only once and generated code is executed repetitively. (This is kind of optimization; the source code is not parsed over and over again.)

The compiler mode is entered if `-fhandle-main ' option is specified. The files are compiled and code is generated. When the compilation phase is finished, Clif searches for the `main' function and starts execution of it.

The Clif is submitted with subset of standard C library. The subset is still under development. Intrinsic functions can be easily enhanced for user's purposes.

There are interface functions supporting automatic control and data acquisition, that can be optionally compiled with Clif.

The Clif does not recognize bit-field definition syntax of the C language. The C preprocessor is not implemented yet.

There could be discrepancies between the Clif and the ANSI C Standard. We are working on unifying of semantic of the Clif with the ANSI C Standard.

OPTIONS
For each command line, one or more filename can be specified (usually with .ci suffix). The files are parsed in order of specification in the command line. The file clif.ini is implicitly opened. It is an initialization file. Options used invariably are specified in the file.

Some of -fname options have a -fno-name form. Default value is always mentioned in the option description. Summary of options follows. Explanations are in next sections.

Overall Options
    -bc -c -copying -help -v -version -verbose -warranty

Options Controlling Clif behavior
    -fcall-by-reference -fno-call-by-reference -fcall-by-value -fno-call-by-value -fhandle-main

Debugging Options
    -g -dy

Warning Options
    -w -Wcomment -Wformat -Wimplicit -Wreturn-type -Wtrigraphs -Wuninitialized -Wall -W -Waggregate-return -Wunused

OVERALL OPTIONS

-bc option specifies number of 512-Byte pages for the Clif environment main memory. The arithmetical and temporary stack is multiple of this option as well.

-c  Compile only. (Not fully supported yet.)

-copying
    Show copying.

-help
    Show short help.

-v, -version
    Show version.

-verbose
    Prints general purpose of the Clif and authors.

-warranty
    Show warranty.

OPTIONS CONTROLLING CLIF BEHAVIOR

-fcall-by-reference
    Specifies parameter passing mechanism (default). If explicitly specified, `-fno-call-by-value ' must be specified as well.

-fno-call-by-reference
    do not pass parameter by reference. If explicitly specified, `-fcall-by-value ' must be specified as well.

-fcall-by-value
    call by value parameter passing mechanism. If explicitly specified, `-fno-call-by-reference ' must be specified.

-fno-call-by-value
    do not pass parameters by value (default). If explicitly specified, `-fcall-by-reference ' must be specified.

-fhandle-main
    simulate compiler-like behavior. The files on the command line and included files are compiled. The `main' function must be defined. After parsing pass, the generated code is executed. The main function is the beginning of execution.

DEBUGGING OPTIONS

-g  produce debugging information. The source lines are output during virtual machine code execution.

-dy dump debugging information during parsing to standard error.

WARNING OPTIONS

-w  Inhibit all warning messages.

-Wcomment
    Warn when a comment-start sequence `/* ' appears in a comment.

-Wformat
    Check calls to `printf ', `scanf ', etc., to make sure that the arguments supplied have types appropriate to the specified format string.

-Wimplicit
    Warn if a function or parameter is implicitly declared.

-Wreturn-type
    Warn if the return statement is without return value in non-void function, or with a value in `void ' function.

-Wtrigraphs
    Warn about trigraphs usage.

-Wuninitialized
    An automatic variable is used without first being initialized.

-Wall
    All of the above warnings.

-W  Print extra warning messages.

-Waggregate-return
    Warn if any functions that return structures or unions are defined or called.

-Wunused
    Warn whenever a variable is unused aside from its declaration.

FILES
file.ci		Clif source file
clif.ini		Initialization file

SEE ALSO
cc(1), gcc(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
The Interpreter Clif. Programmer's Guide., L. Koren and T. Hruz

BUGS
There are many, for sure. Please, help to make this software better and report them to Ludovit Koren <koren@vm.stuba.sk>. For instructions on reporting bugs, see the Interpreter Clif Programmer's Guide.

COPYING
Copyright 1998, 1999, 2000 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.

SOURCE
The Clif is available from ftp://www.vm.stuba.sk/pub/csgrp/packages/clif. The online documentation http://www.vm.stuba.sk/~koren/clif.html.

AUTHORS
See the Interpreter Clif Programmer's Guide for the contributors to Clif.