diff options
author | bothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-27 20:51:39 +0000 |
---|---|---|
committer | bothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-27 20:51:39 +0000 |
commit | 641e3b448cc77639cf522d767830f3ceb7b6de6a (patch) | |
tree | e7371d33662176eb19cb0b601f9d934d68606c0c /gcc/ch/chill.brochure | |
parent | 5e2062c727dd9788a2444a700be142b877c84b44 (diff) | |
download | gcc-641e3b448cc77639cf522d767830f3ceb7b6de6a.tar.gz |
�
Migrate from devo/gcc/ch.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22035 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ch/chill.brochure')
-rw-r--r-- | gcc/ch/chill.brochure | 252 |
1 files changed, 252 insertions, 0 deletions
diff --git a/gcc/ch/chill.brochure b/gcc/ch/chill.brochure new file mode 100644 index 00000000000..44301edff92 --- /dev/null +++ b/gcc/ch/chill.brochure @@ -0,0 +1,252 @@ + 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. |