**CHILL** (forkortelse for CCITT High Level Language) er et prosedyrisk høynivå programmeringsspråk som ble lansert i november 1980. Språket er konstruert for bruk i telekommunikasjon og strømbrytere innenfor telefonsentraler, og blir fortsatt brukt av enkelte teleselskaper i eldre systemer og for programmering av stillverk.

Språket CHILL ligner i størrelse og kompleksitet på programmeringsspråket Ada, og har også hentet trekk fra ALGOL 68, Modula-2 og mange andre høynivåspråk som var populære på 1970- og 1980-tallet. I 1996 ble CHILL utvidet med objektorientert programmering; denne avarten kalles *Object CHILL* og CHILL96.

I 1997 lanserte Electronics and Telecommunications Research Institute (ETRI) i Sør-Korea varianten ETRI-CHILL.

I 1989 ble CHILL anerkjent som en standard av den internasjonale standardiseringsorganisasjonen (ISO). CCITT skiftet i 1993 navn til ITU-T, og i slutten av 1999 kunngjorde ITU-T at de hadde stanset vedlikeholdet av CHILL-standarden. Den siste standarden er fra 2003, siste gang gjennomgått 18. juni 2014.

GNU CHILL var en fri og åpen CHILL-kompilator fra GNU-prosjektet. Kompilatoren ble inkludert i GNU Compiler Collection (GCC) versjon 2.95 i 1999. Siste versjon var 2.95.3 som ble lansert i 2001. GNU CHILL er ikke lenger en del av GCC.

CHILL ble blant annet brukt på System 12 fra Alcatel og EWSD fra Siemens. CHILL ble også brukt til å skrive sanntidsoperativsystemet *CHIPSY Real-time Operating System*. Dette var et prosjekt som Regnesenteret ved Universitetet i Trondheim (RUNIT), SINTEF og det norske selskapet Kvatro Telecom var delaktig i.

Historie
--------

### Forhistorien

Grunnarbeidet for utviklingen av høynivå programmeringsspråk for telekommunikasjon startet i 1966. CCITT's plenumsmøte i Mar del Plata, Argentina i 1968, besluttet at denne utviklingen skulle håndteres av CCITT. Man innså også nødvendigheten av å standardisere slike språk, og fra 1968 til 1972 var CCITT opptatt av å definere grunnmaterialet for en standard. Man forsøkte å definere programvarespesifikasjoner, så vel som å gi enhetlige beskrivelser av programvarestyrte systemer, slik at forskjellige telefonsystemer lettere kunne sammenlignes med hverandre. De nye språkene måtte være lett å lese og lære, og samtidig være åpne og systemuavhengige.

CCITT besluttet seg for å standardisere tre typer språk. Fra 1973 til 1976 arbeidet de med å skape disse språkene: (1) Et beskrivende språk som definerte beskrivelser av egenskaper, spesifikasjoner og systemer; dette ble senere til *CCITT Specification and Description Language* (SDL), (2) et høynivåspråk som senere ble til CHILL, og (3) et menneske-maskin kommandospråk for å operere og vedlikeholde telefonsystemene; dette ble senere til *CCITT Man-Machine Language* (MML).

### 1973–1974: Enigheten om et nytt programmeringsspråk

I 1973 startet forarbeidet med CHILL. CCITT var engasjert i en evaluering av eksisterende programmeringsspråk, med den intensjon å finne det språket som best fulgte anbefalingene fra CCITT. Deltagere fra AT&T, ITT Corporation, Siemens, UK Post Office og France Telecom var opptatte av å evaluere 27 programmeringsspråk, basert på 15 løselig definerte krav som maskinuavhengighet, portabilitet, den logiske strukturen til programmer, modularisering og utvidbarhet. Kravene var forsiktig definerte og var inspirert av generelle tendenser innenfor programmingsspråk på denne tiden, særlig den akademiske interesse for maskinuavhengighet og portabilitet og industriens interesse i modularisering.

Blant de 27 språkene var ALGOL 68, Pascal og PL/I, så vel som proprietære språk som var utviklet av teleselskaper som ITT Corporation og Ericsson. ALGOL 68 og PL/I ble tidlig forkastet som egnet til telefonsentraler. Til slutt stod syv språk igjen som mulige kandidater:

* Datamax Printer Language (DPL), utviklet av Nippon Telegraph and Telephone (NTT) i Tokyo i Japan
* Ensign Software Programming Language/1 (ESPL/1), utviklet av ITT Corporation i USA og Belgia (solgt til Alcatel i 1986)
* Mary, utviklet av Regnesenteret ved Universitetet i Trondheim (RUNIT)/SINTEF i Norge
* Pascal, skapt i 1970 av den sveitsiske informatikeren Niklaus Wirth (1934–)
* PAPE, utviklet av France Telecom og CNET
* PLEX, utviklet av Ericsson i Sverige
* RTL/2, utviklet ved University of Essex, Storbritannia

Konklusjonen av dette studiet var at ingen av de syv kandidatene var egnet. Evalueringsgruppen fant svakheter i alle språkene. Spesialiserte språk hadde store fordeler fremfor mer generelle språk som Mary og Pascal, fordi de allerede var rettet mot telefonkommunikasjon. Likevel var slike teknologiske fordeler inkompatible med den diplomatiske naturen til CCITT: Det var ikke mulig å skape en universell standard av noe som ble eid og utviklet av én enkelt produsent. Noe slikt ville underminere muligheten til å skape programmer som var portable og maskinvareuavhengige.

I november 1974 konkluderte sluttrapporten med at «[…] det ble slått fast at det ikke var mulig å oppnå konsensus for noe språk, verken i en modifisert eller umodifisert form». Mary og Pascal hadde oppstått i akademiske miljøer, og hadde ingen bagasje fra private økonomiske særinteresser. De samlet likevel ikke nok støtte. Mary var relatert til den akademiske interessen i maskinorienterte høynivåspråk. Pascal var også oppstått i et akademisk miljø, men var lite egnet til «sanntidsprosessering». Niklaus Wirth omtalte denne karakteristikken som «helt objektiv og nøyaktig». CCITT forkastet som sådan både den akademiske rute, såvel som ulike veier som var pløyd opp av ulike produsenter. Det var nå opp til CCITT å skape et nytt programmeringsspråk, å skape noe som var nytt og uprøvd både for organisasjonen, så vel som for dens enkelte medlemmer.

Beslutningen om å lage et standardisert programmeringsspråk, var basert på idéer og strategier som ble lagt frem av administrasjonen for det svenske televerket i 1968. Slike administrasjoner var innflytelsesrike tidlig på 1970-tallet, gjennom arbeidsgrupper som var organisert av CCITT. I november 1974 besluttet deres stemmer at en ekspertgruppe skulle konstruere et nytt programmeringsspråk fra grunnen av. Som sådan var dette i tråd med den indre logikken i det internasjonale telekommunikasjonsregime.

Forskjellige kommersielle produsenter la frem sine egne programmeringsspråk for panelet i CCITT. Det er lite som tyder på at dette skjedde ut fra altruistiske motiver om å dele sine proprietære forretningshemmeligheter med almenheten. De ønsket først og fremst å oppnå fordeler av at deres språk ble anbefalt av CCITT. I denne første runde av teknisk diplomati ble ingen produsenter favoriserte.

CCITT var også påvirket av andre idéer som hadde vokst frem på begynnelsen av 1970-tallet:

* Universaliteten til matematikken hadde økt sin legitimitet gjennom informatikkens utbredelse.
* Det var generell enighet om å bruke verdensspråket engelsk i programmeringsspråk.
* Fagfeltet programvareutvikling (*software engineering*) vokste frem fra 1968 til 1972 for å løse «programvarekrisen». Fagfeltet påvirket også utviklingen av programmeringsspråk i årene som fulgte, og konferanser om programvareutvikling ble sponset av NATO.
* Fremveksten av maskinorienterte høynivåspråk og digitalisering av telenettet var også i tiden. Førstnevnte fremmet ideen om minimalistiske språk, såvel som ideen om portabilitet og maskinvareuavhengighet.

Disse faktorer førte til dannelsen av en distinkt gruppe som var opptatt av programmeringsspråk for telekommunikasjon. Denne gruppen organiserte *International Federation for Information Processing* (IFIP) fra 1960, *Software Engineering for Telecommunication Switching Systems* (SETSS) fra 1973 til 1992 og *International Switching Symposium* (ISS) fra 1972 til 1990. Dette miljøet vakte interesse hos CCITT, og hadde en betydelig innflytelse på deltagerne.

### 1975–: Ekspertgruppen

I 1975 ble det satt ned en *ad hoc*-gruppe bestående av åtte spesialister for å håndtere utviklingen av et nytt programmeringsspråk. De åtte spesialistene representerte Philips (Nederland), NTT (Japan), SINTEF (på vegne av administrasjonen for de nordiske teleselskapene), Siemens (Tyskland), Ellemtel Utvecklings AB (Sverige), ITT (USA), British Telecom (Storbritannia) og PPT (Sveits).

I oktober 1976 var et foreløbig forslag for det nye programmeringsspråket klart, og i 1977 startet en etterfølgende periode med evaluering. Spesialistgruppen ble erstattet av «implementatorenes forum», som samlet praktiske erfaringer fra ulike implementasjoner av språket. I slutten av 1979 ble det endelige forslaget lagt frem, og plenumsforsamlingen i CCITT godkjente definisjonen av CHILL i november 1980.

### 1980–1990: CHILL tas i bruk

Fra 1977 begynte mange selskaper og organisasjoner å konstruere CHILL-kompilatorer. Frem til 1987 var mer enn 30 kompilatorer laget for forskjellige typer datamaskiner og datamaskinarkitekturer. Flere av kompilatorene var satt i industriell produksjon, og de fleste systemene nedenfor ble programmerte med egenproduserte kompilatorer:

| Teletex | Digitale krysskoblingssystemer (DCS) | Ruralt nettverk |
| --- | --- | --- |
| TTCF, utviklet av Ascom Hasler (Sveits) | RN64, utviklet av Telettra (Italia) | Levent, utviklet av Teletas (Tyrkia) |

| Hustelefonsentraler (PABX) | Offentlige sentraler |
| --- | --- |
| Systemet PKI i Tyskland | EWSD, utviklet av Siemens (Tyskland) |
| Nodal Switch, utviklet av Alcatel for Televerket i Norge | PRXD, utviklet av Philips (Nederland) |
| HICOM, utviklet av Siemens (Tyskland) | System 12, utviklet av Alcatel (Belgia/Tyskland) |
| Saturn, utviklet av Siemens (USA) | E10, utviklet av Alcatel (Frankrike) |
| Amanda, utviklet av Alcatel (Østerrike) | D70, utviklet av NTT, NEC og Hitachi (Japan) |
| Sopho, utviklet av Philips (Nederland) | KBD70, utviklet av Oki Electric Industry (Japan) |
| Focus, utviklet av Fujitsu (Japan) | LINEA UT, utviklet av Italtel (Italia) |
|  | TDX-10, utviklet av Daewoo Telecom (Sør-Korea) |
|  | Tropico, utviklet av Telebrás (Brasil) |
|  | PXAJ-500/2000, utviklet av det 10. Forskningsinstitutt (Kina) |

### 1990–1999: Fra suksess til marginalisering

Fra 1980 fortsatte CCITT å støtte og vedlikeholde CHILL og oppgradere språket i henhold til industriens behov og den tekniske utvikling. CCITT skiftet i 1993 navn til ITU-T. Utviklingen av CHILL kan deles opp i fire faser:

* 1981–1984: Programmering i stykkevise deler, navnekvalifisering og I/O (over telenett)
* 1985–1988: Tidsverdier og tidsoperasjoner
* 1991–1992: Variabler (dataobjekter) for reelle tall
* 1992–1996: Utvidelser med objekt-orientert programmering

I 1989 ble CHILL anerkjent som en standard av den internasjonale standardiseringsorganisasjonen (ISO).

Arbeidet med objektorienterte versjonen av CHILL ble påbegynt i 1992. Den kalles noen ganger *Object-CHILL*, og andre ganger CHILL96.

I 1997 lanserte Electronics and Telecommunications Research Institute (ETRI) i Sør-Korea en egen variant kalt ETRI-CHILL.

I 1990 var CHILL det eneste programmeringsspråket som var felles for mer enn én av telefonsentralene som var i bruk i verden. Omkring 45% av de digitale sentralene benyttet CHILL, mot omkring 32% i 1985. Mange av de mest suksessfulle telefonsentralsystemene i verdensmarkedet var blitt konstruert for å kjøre CHILL, deriblant systemene EWSD, E10, D70 og System 12 (nevnt ovenfor). På dette tidspunktet hadde mer enn 12 000 programmerere benyttet språket på en eller annen måte. I 1993 var det mellom 12 000 og 15 000 CHILL-programmerere i verden, og mer enn 1 000 årsverk hadde blitt brukt på å investere i CHILL-kompilatorer, støtte og trening.

Det nest mest brukte programmeringsspråket for telekommunikasjon i 1993 var Protel (*Procedure Oriented Type Enforcing Language*), som ble benyttet av Northern Telecom i Canada. Programmeringsspråket C, som ble benyttet av AT&T i USA, var på tredjeplass.

I slutten av 1999 – 19 år etter sin fødsel, var språket CHILL blitt marginalisert. Det var faretruende nær sin død. Det var ingen videre utvikling av språket, og ingen ny programvare ble skrevet med CHILL. Språket ble bare brukt av enkelte teleselskaper i eldre systemer og for programmering av stillverk. Den 19. november 1999 kunngjorde ITU-T at de hadde stanset vedlikeholdet av CHILL-standarden. Den siste standarden er fra desember 2003, siste gang gjennomgått 18. juni 2014.

Den 29. august 1998 donerte selskapet Cygnus Solutions sin CHILL-kompilator til GNU-Prosjektet. GNU CHILL var en fri og åpen kompilator, og ble inkludert i GNU Compiler Collection (GCC) versjon 2.95 den 31. juli 1999. Siste versjon (2.95.3) ble lansert den 16. mars 2001, og GNU CHILL ble fjernet i GCC 3.0 som ble lansert 18. juni 2001. GNU CHILL er ikke lenger en del av GCC.

CHIPSY Real-time Operating System
---------------------------------

CHILL ble også brukt til å skrive *CHIPSY Real-time Operating System*, et prosjekt som norske SINTEF og Kvatro Telecom var delaktig i.

Oppbygningen av CHILL
---------------------

CHILL arvet trekk fra mange andre høynivåspråk som var populære på 1970- og 1980-tallet, deriblant Ada. Nedenfor er et eksempelprogram i CHILL:

```
line_allocator:
MODULE
   SEIZE line_process, line, occupied, unoccupied,
      search,connect, accepted;
   GRANT line_allocator_process;  

   line_allocator_process:
   PROCESS ();
      NEWMODE states = SET(free, busy);
      DCL next_state states := free, lno INT := 0;
      line(lno) := START line_process(lno);
      DO FOR EVER;
         CASE next_state OF
         (free): RECEIVE CASE SET sender;
             (occupied):
                 next_state := busy;
             (search):
                 SEND connect(sender) TO line(lno);
                 SEND accepted TO sender;
                 next_state := busy;
         (else): -- Consume any other signal
         ESAC;
         (busy): RECEIVE CASE SET sender;
            (unoccupied):
               next_state := free;
            (search):
               SEND rejected TO sender;
            (else): -- Consume any other signal
            ESAC;
         ESAC;
      OD;
   END
   line_allocator_process;
END
line_allocator;
```

Referanser
----------

1. 1 2 3 4  Rekdal, side 6
2. 1 2  COM XI, 1978
3. ↑  COM XI, 1978
4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  Rekdal, side 7
5. 1 2 3 4 5 6 7 8 9 10  Paulsen, 2011, side 67
6. 1 2  COMXI-135, 1977
7. ↑  COMXI-73E, 1978
8. ↑  Datamax Corporation, 1999
9. 1 2 3 4 5  Paulsen, 2011, side 68
10. ↑  Ensign Software, Inc. 2019
11. ↑  NTNU, side 15
12. 1 2 3 4 5 6 7  Paulsen, 2011, side 69
13. ↑  XI/3, side 95
14. ↑  XI/3, side 91
15. 1 2 3 4  Paulsen, 2011, side 70
16. 1 2  NTNU, side 16
17. ↑  HLL, 1977
18. ↑  CCITT, 1981
19. ↑  ISO, 1989
20. ↑  ISO, 1995
21. ↑  ISO, 1998
22. 1 2  ISO, 2003
23. ↑  ITT, 1989
24. ↑  Winkler, 1992
25. ↑  Winkler, 2019
26. ↑  Lee, 1997
27. 1 2  Paulsen, 2011, side 1
28. ↑  ITU-T, 1999
29. ↑  Cygnus, 1998
30. ↑  GNU, 1999
31. ↑  GNU, 2002

Kilder
------

* Branquart, Paul; Louis, Georges; Wodon, Pierre (1982). *An analytical description of CHILL, the CCITT high level language*. Lecture notes in computer science, 128, Springer-Verlag, Berlin, New York, 1982. CS1-vedlikehold: Flere navn: forfatterliste (link)
* CCITT, International Telegraph and Telephone Consultative Committee (1981). *CCITT high level language (Chill) : recommendation Z.200*. Yellow book : VIIth Plenary Assembly, Geneva, 10-21 November 1980 / CCITT, The International Telegraph and Telephone Consultative Committee, vol. 6 ; fasc. 6-8, International Telecommunication Union, 1981.
* COM XI-No. 73-E (1978). *Extracts from the minutes of an informal C.C.I.T.T. meeting held in London from 25 – 27 March 1974*. COM XI-No. 73-E. Period 1973 – 1976, CCITT, ITUA.
* COM XI-No.74-E (1978). *Annex E til Progress report of sub group XI/3-2, High-level programming language for SPC telephone exchanges*. COM XI 1973 – 1977, CCITT, ITUA.
* COM XI-No.74-E (1978). *Record of programming exercises and experts’ comments*. COM XI 1973 – 1977, CCITT, ITUA.
* COM XI-No.135-E (1977). *Report on the meeting held in Geneva from 18 September to 25 September 1974*. COM XI-No.135-E. Period 1973 – 1976, CCITT, ITUA.
* Cygnus Solutions (1998). *Chill Front End*. gnu.org, 29. august 1998.
* Datamax Corporation (1999). *DPL Programmer’s Manual* (PDF). Datamax Corporation Part Number: 88-2051-01 Revision: E. Arkivert fra originalen (PDF) 19. oktober 2020. Besøkt 19. oktober 2020.
* Ensign Software, Inc. (2019). *ESPL Manual. Ensign Software Programming Language. Ensign 10* (PDF). Ensign Software, Inc. 3, april 2019.
* GNU-prosjektet (1999). *GCC 2.95*. gnu.org, 31. juli 1999, oppdatert 16. mars 2001.
* GNU-prosjektet (2002). *GCC 3.04*. gnu.org, 20. februar 2002.
* HLL Team of Specialists (1977). *Progress report of the sixth meeting of the HLL Team of Specialists, Kyoto, 12-22 October 1977* (PDF). CCITT - HLL Team of Specialists - Møtereferater 1974 - 1976, Møte 1-6, KRC.
* NTNU. *Programmeringsspråket for den interne kommunikasjon i P2 utviklet i Norge. CHILL klar til introduksjon på verdensmarkedet* (PDF). folk.ntnu.no, besøkt 22. oktober 2020. s. 15-17.
* ISO/IEC (1989). *ISO/IEC 9496:1989 CCITT high level language (CHILL), juli 1989*.
* ISO/IEC (1995). *ISO/IEC 9496:1995 CCITT high level language (CHILL), desember 1995*.
* ISO/IEC (1998). *ISO/IEC 9496:1998 CCITT high level language (CHILL), desember 1998*.
* ISO/IEC (2003). *ISO/IEC 9496:2003 CHILL — The ITU-T programming language, desember 2003*. Siste gang gjennomgått 18. juni 2014, ny gjennomgang innledet 15. april 2019.
* International Telegraph and Telephone Consultative Committee. Plenary Assembly (1989). *Blue Book: IXth Plenary Assembly, Melbourne, 14-25 November 1988, Volum 8,Utgave 6*. International Telecommunication Union, 1989. ISBN 9261037119. ISBN 9789261037116.
* International Telecommunication Union (1999). *CHILL - The ITU-T Programming Language : recommendation Z.2002.-2002.209*. ITU-T Study Group 10 (1997-2000), 19. november 1999.
* Lee, DongGill; Lee, JoonKyung; Choi, Wan; Lee, Byung Sun; Han, Chimoon (1997). *A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large-scale Switching Systems* (PDF). ETRI Journal, volume 18, nr 4, januar 1997. CS1-vedlikehold: Flere navn: forfatterliste (link)
* Paulsen, Gard (2011). *Betwixt and between Software in telecommunications and the programming language Chill, 1974 - 1999*. A dissertation submitted to BI Norwegian Business School for the degree of PhD, PhD specialisation: Innovation and Entrepreneurship, Series of Dissertations 8/2011 BI Norwegian Business School, 2011. ISBN 978-82-8247-031-5. ISSN 1502-2099.
* Rekdal, Kristen (1993). *CHILL – the International Standard Language for Telecommunications Programming* (PDF). Telektronikk 89(2/3) 1993.
* Winkler, Jürgen F. H.; Dießl, Georg (1992). *Object CHILL—an object oriented language for systems implementation*. Proceedings of the 1992 ACM annual conference on Communications. Association for Computing Machinery, Kansas City, Missouri, USA. s. 139–147. ISBN 0-89791-472-4. DOI 10.1145/131214.131232. CS1-vedlikehold: Flere navn: forfatterliste (link)
* Winkler, Jürgen F. H (2019). *Welcome to the CHILL Homepage*. Friedrich Schiller University Jena, Dept. of Mathematics and Computer Science Programming Languages and Compilers, 5. april 2010, oppdatert 20. mars 2019.
* Working Party XI/3. *Language descriptions*. Working Party XI/3, The "Pink Document", CCITT, Period 1973 – 1976.

Eksterne lenker
---------------

* (en) The CHILL Homepage

| * v
* d
* r
Programmeringsspråk |
| --- |
| Tidslinje |
| A# **·** ActionScript **·** Ada **·** Alef **·** ALGOL **·** ALGOL 58 **·** ALGOL 60 **·** ALGOL 68 **·** ALTRAN **·** APL **·** AppleScript **·** Argus **·** Assembler **·** Autokode **·** awk **·** B **·** BASIC **·** BCPL **·** BETA **·** BitC **·** BLISS **·** Bourne Shell **·** C **·** C++ **·** C-- **·** CHILL **·** C# **·** C shell **·** Caml **·** Ch **·** Cilk **·** Cilk++ **·** Cilk Plus **·** Clarion **·** Clipper **·** CLISP **·** Clojure **·** CLU **·** COBOL **·** COMAL **·** Common Lisp **·** Concurrent C **·** Concurrent Euclid **·** Concurrent Pascal **·** C shell **·** D **·** Delphi **·** Dylan **·** ECMAScript **·** Eiffel **·** Emacs Lisp **·** Erlang **·** Euclid **·** F\* **·** F# **·** Forth **·** Fortran **·** GNU Common Lisp **·** GNU Pascal **·** Go **·** Haskell **·** HyperTalk **·** Incr Tcl **·** INTERCAL **·** Interlisp **·** Java **·** JavaScript **·** JRuby **·** LaTeX **·** Legoscript **·** LilyPond **·** Limbo **·** Lisp **·** LPC **·** Lua **·** Lynx **·** Mary **·** MATLAB **·** Mesa **·** ML **·** MML **·** Modula **·** Modula-2 **·** MUMPS **·** Objective-C **·** Objective-C++ **·** OCaml **·** OpenVera **·** O'Haskell **·** Pascal **·** Perl **·** PHP **·** Pike **·** PL/I **·** Plankalkül **·** PLEX **·** Prolog **·** Protel **·** Pure Data **·** Python **·** R **·** Ratfor **·** REXX **·** RTL/2 **·** Ruby **·** Rust **·** SAS **·** Scala **·** Scheme **·** Scratch **·** Simula **·** SML **·** Smalltalk **·** SNOBOL **·** Tcsh **·** Tcl **·** TECO **·** TOM **·** Turbo Basic **·** Turbo Pascal **·** Verilog **·** Visual Prolog **·** Turing **·** TypeScript **·** Vala **·** VHDL **·** Visual Basic **·** Flere.. |
| 
* Kategori **Kategori**

 |

|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | Store norske leksikon **·** LCCN
 |