Remove Chill
[[Split portion of a mixed commit.]] From-SVN: r52560.2
This commit is contained in:
parent
26b2988482
commit
626b711eb0
@ -1,252 +0,0 @@
|
||||
GNU CHILL: A Complete CHILL Implementation
|
||||
|
||||
CHILL (the CCITT High Level Language) is a strongly-typed, block
|
||||
structured language designed primarily for the implementation of large
|
||||
and complex embedded systems. Tens of millions of lines of CHILL code
|
||||
exist, and about 15,000 programmers world-wide use CHILL. Many
|
||||
central-office telephone switching systems use CHILL for their control
|
||||
software.
|
||||
|
||||
CHILL was designed to
|
||||
|
||||
- enhance reliability and run time efficiency by means of extensive
|
||||
compile time checking;
|
||||
- provide sufficient flexibility and power to encompass the required
|
||||
range of applications and to exploit a variety of hardware;
|
||||
_ provide facilities that encourage piecewise and modular development
|
||||
of large systems;
|
||||
- cater to real-time implementations by providing built-in concurrency
|
||||
and time supervision primitives;
|
||||
- permit the generation of highly efficient object code;
|
||||
- facilitate ease of use and a short learning curve.
|
||||
|
||||
CHILL is specified in the "Blue Book":
|
||||
CCITT High Level Language (CHILL) Recommendation Z.200
|
||||
ISO/IEC 9496, Geneva 1989 ISBN 92-61-03801-8
|
||||
|
||||
Cygnus Support has completed the first level implementation of the
|
||||
GNU CHILL compiler. Our compiler now supports the core features of
|
||||
the CHILL language. Our goal is a fully retargetable, complete
|
||||
implementation of the Z.200 specification. The next phase of
|
||||
implementation will include:
|
||||
|
||||
. a minimal real-time kernel for demonstration use
|
||||
. more rigorous type checking
|
||||
. retargetable input/output
|
||||
. interprocess communications
|
||||
. fully compliant exception handling.
|
||||
|
||||
The State of the Implementation
|
||||
|
||||
The GNU CHILL compiler is in early beta state, performing correct
|
||||
compilation and execution of correctly coded programs. Like most
|
||||
CHILL compilers, the GNU compiler implements a large subset of the
|
||||
language (as described below).
|
||||
|
||||
Since it uses the same compiler back-ends as the GNU C and C++
|
||||
compilers, GNU CHILL is almost instantly available on all
|
||||
platforms supported by GNU C, including the following:
|
||||
|
||||
m680xx, i960, i80x86, AMD29K, R3000, R4000, SPARClite,
|
||||
Hitachi H8 and SH families, Z8001/2
|
||||
|
||||
It has been specifically tested under SunOS on SPARCs and under
|
||||
SCO Unix on 80386s.
|
||||
|
||||
All of the GCC optimizations apply to CHILL as well, including
|
||||
function inlining, dead code elimination, jump-to-jump elimination,
|
||||
cross-jumping (tail-merging), constant propagation, common
|
||||
subexpression elimination, loop-invariant code motion, strength
|
||||
reduction, loop unrolling, induction variable elimination, flow
|
||||
analysis (copy propagation, dead store elimination and elimination
|
||||
of unreachable code), dataflow-driven instruction scheduling, and
|
||||
many others.
|
||||
|
||||
I/O statements are parsed. The anticipated timeframe for I/O code
|
||||
generation is Q1 1994.
|
||||
|
||||
What's Next
|
||||
|
||||
The multi-tasking functions require a small real time kernel.
|
||||
A free implementation of such a kernel is not yet available.
|
||||
We plan to offer a productized P-threads interface in Q2 1994.
|
||||
Other runtime functions involving strings and powersets are
|
||||
working.
|
||||
|
||||
GDB, the GNU Debugger, has been modified to provide simple CHILL
|
||||
support. Some CHILL expressions are not yet recognized.
|
||||
|
||||
For those who aren't familiar with CHILL, here's a small but
|
||||
useful example program:
|
||||
|
||||
--
|
||||
-- Convert binary integers to decimal-coded ASCII string
|
||||
--
|
||||
vary1: MODULE
|
||||
|
||||
-- include declarations so we can output the test results
|
||||
<> USE_SEIZE_FILE 'chprintf.grt' <>
|
||||
SEIZE chprintf;
|
||||
|
||||
-- create a new name for the CHAR array mode
|
||||
SYNMODE dec_string = CHAR (6) VARYING;
|
||||
|
||||
int_to_dec_char: PROC (decimal_num INT IN)
|
||||
RETURNS (dec_string);
|
||||
|
||||
DCL neg_num BOOL := FALSE; -- save sign of parameter
|
||||
DCL out_string dec_string;
|
||||
|
||||
IF decimal_num < 0 THEN -- positive numbers are easier
|
||||
decimal_num := -decimal_num;
|
||||
neg_num := TRUE;
|
||||
FI
|
||||
|
||||
IF decimal_num = 0 THEN
|
||||
out_string := '0'; /* handle zero */
|
||||
ELSE
|
||||
out_string := '';
|
||||
DO WHILE decimal_num /= 0; -- loop until number is zero
|
||||
-- concatenate a new digit in front of the output string
|
||||
out_string := CHAR (ABS (decimal_num REM D'10) + H'30)
|
||||
// out_string;
|
||||
decimal_num := decimal_num / D'10;
|
||||
OD;
|
||||
IF neg_num THEN
|
||||
-- prepend a hyphen for numbers < zero
|
||||
out_string := '-' // out_string; -- restore sign
|
||||
FI;
|
||||
FI;
|
||||
RESULT out_string; -- remember result
|
||||
|
||||
decimal_num := 0; -- reset for next call
|
||||
neg_num := FALSE;
|
||||
out_string := ' ';
|
||||
|
||||
END int_to_dec_char;
|
||||
|
||||
/* Try some test cases */
|
||||
chprintf (int_to_dec_char (123456), 0);
|
||||
chprintf ("^J", 0);
|
||||
|
||||
chprintf (int_to_dec_char (-654321), 0);
|
||||
chprintf ("^J", 0);
|
||||
|
||||
chprintf (int_to_dec_char (0), 0);
|
||||
chprintf ("^J", 0);
|
||||
|
||||
END vary1;
|
||||
|
||||
Completeness
|
||||
|
||||
GNU CHILL currently supports the following features. This outline
|
||||
generally follows the structure of the Blue Book specification:
|
||||
|
||||
CCITT High Level Language (CHILL) Recommendation Z.200
|
||||
ISO/IEC 9496, Geneva 1989 ISBN 92-61-03801-8
|
||||
|
||||
|
||||
Modes (types)
|
||||
no DYNAMIC modes yet
|
||||
discrete modes
|
||||
integer, boolean, character, real
|
||||
multiple integer/real precisions (an extension)
|
||||
set modes, range modes
|
||||
powersets
|
||||
references
|
||||
(no ROW modes)
|
||||
procedure modes
|
||||
instance modes
|
||||
event modes
|
||||
buffer modes
|
||||
(no input/output modes yet)
|
||||
(no timing modes yet)
|
||||
composite modes
|
||||
strings
|
||||
arrays
|
||||
structures
|
||||
VARYING string/array modes
|
||||
(type-checking is not fully rigorous yet)
|
||||
forward references
|
||||
|
||||
Expressions
|
||||
literals
|
||||
tuples
|
||||
slices, ranges
|
||||
the standard operators
|
||||
|
||||
Actions (statements)
|
||||
assignments
|
||||
if .. then .. else .. fi
|
||||
cases
|
||||
do action
|
||||
do .. with
|
||||
exits
|
||||
calls
|
||||
results/returns
|
||||
gotos
|
||||
assertions
|
||||
cause exception
|
||||
start/stop/continue process
|
||||
|
||||
Input/Output
|
||||
(not yet)
|
||||
|
||||
Exception handling
|
||||
fully compiled, but exceptions aren't
|
||||
generated in all of the required situations
|
||||
|
||||
Time Supervision
|
||||
(syntax only)
|
||||
|
||||
Inter-process communications
|
||||
delay/delay case actions
|
||||
send signal/receive case actions
|
||||
send buffer/receive case actions
|
||||
|
||||
Multi-module programming
|
||||
Seize/grant processing
|
||||
multiple modules per source file
|
||||
|
||||
|
||||
Bibliography
|
||||
|
||||
This list is included as an invitation. We'd appreciate hearing
|
||||
of CHILL-related documents (with ISBN if possible) which aren't
|
||||
described here. We're particularly interested in getting copies
|
||||
of other conference Proceedings.
|
||||
|
||||
CCITT High Level Language (CHILL) Recommendation Z.200
|
||||
ISO/IEC 9496, Geneva 1989 ISBN 92-61-03801-8
|
||||
(The "blue book". The formal language definition; mostly a
|
||||
language-lawyer's document, but more readable than most.)
|
||||
|
||||
Study Group X - Report R 34
|
||||
This is the May 1992 revision of Z.200.
|
||||
|
||||
An Analytic Description of CHILL, the CCITT high-level
|
||||
language, Branquart, Louis & Wodon, Springer-Verlag 1981
|
||||
ISBN 3-540-11196-4
|
||||
|
||||
CHILL User's Manual
|
||||
CCITT, Geneva 1986 ISBN 92-61-02601-X
|
||||
(Most readable, but doesn't cover the whole language).
|
||||
|
||||
Introduction to CHILL
|
||||
CCITT, Geneva 1983 ISBN 92-61-017771-1
|
||||
|
||||
CHILL CCITT High Level Language
|
||||
Proceedings of the 5th CHILL Conference
|
||||
North-Holland, 1991 ISBN 0 444 88904 3
|
||||
|
||||
Introduction to the CHILL programming Language
|
||||
TELEBRAS, Campinas, Brazil 1990
|
||||
|
||||
CHILL: A Self-Instruction Manual
|
||||
Telecommunication Institute - PITTC
|
||||
Available from KVATRO A/S, N-7005 Trondheim, Norway
|
||||
Phone: +47 7 52 00 90
|
||||
(Great discussion of novelty.)
|
||||
|
||||
Some of these documents are available from Global Engineering
|
||||
Documents, in Irvine, CA, USA. +1 714 261 1455.
|
Loading…
Reference in New Issue
Block a user