summaryrefslogtreecommitdiff
path: root/gcc/ch/chill.brochure
diff options
context:
space:
mode:
authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-27 20:51:39 +0000
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-27 20:51:39 +0000
commit641e3b448cc77639cf522d767830f3ceb7b6de6a (patch)
treee7371d33662176eb19cb0b601f9d934d68606c0c /gcc/ch/chill.brochure
parent5e2062c727dd9788a2444a700be142b877c84b44 (diff)
downloadgcc-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.brochure252
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.