📄 chill.brochure
字号:
GNU CHILL: A Complete CHILL ImplementationCHILL (the CCITT High Level Language) is a strongly-typed, blockstructured language designed primarily for the implementation of largeand complex embedded systems. Tens of millions of lines of CHILL codeexist, and about 15,000 programmers world-wide use CHILL. Manycentral-office telephone switching systems use CHILL for their controlsoftware.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-8Cygnus Support has completed the first level implementation of the GNU CHILL compiler. Our compiler now supports the core features ofthe CHILL language. Our goal is a fully retargetable, completeimplementation of the Z.200 specification. The next phase ofimplementation 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 ImplementationThe GNU CHILL compiler is in early beta state, performing correctcompilation and execution of correctly coded programs. Like mostCHILL compilers, the GNU compiler implements a large subset of thelanguage (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 allplatforms supported by GNU C, including the following: m680xx, i960, i80x86, AMD29K, R3000, R4000, SPARClite, Hitachi H8 and SH families, Z8001/2It has been specifically tested under SunOS on SPARCs and underSCO 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, flowanalysis (copy propagation, dead store elimination and eliminationof unreachable code), dataflow-driven instruction scheduling, andmany others.I/O statements are parsed. The anticipated timeframe for I/O codegeneration is Q1 1994.What's NextThe 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 CHILLsupport. Some CHILL expressions are not yet recognized.For those who aren't familiar with CHILL, here's a small butuseful 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;CompletenessGNU CHILL currently supports the following features. This outlinegenerally 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 fileBibliographyThis list is included as an invitation. We'd appreciate hearing of CHILL-related documents (with ISBN if possible) which aren'tdescribed here. We're particularly interested in getting copiesof 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 EngineeringDocuments, in Irvine, CA, USA. +1 714 261 1455.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -