Caml
| Caml | |
|---|---|
| Paradigma | Kóp paradigmalı: funkcional, imperativ |
| Shańaraǵı | ML |
| Dúziwshiler | Jerar Yue, Gi Kusino, Askander Suares, Pyer Vays, Mishel Moni (Heavy Caml), Ksavye Lerua (Caml Light) |
| Islep shıǵarıwshı | INRIA, ENS |
| Birinshi payda bolıwı | 1985-jıl |
| Turaqlı reliz | 0.75 / 2002-jıl 26-yanvar |
| Tiplestiriw tártibi | shıǵarılǵan, statikalıq, kúshli |
| Yadtı basqarıw | avtomat |
| Operaciyalıq sistema | Kross-platformalı: Unix, Linux, macOS; Windows |
| Licenziya | QPL 1, LGPL 2 (Caml Light) |
| Veb-sayt | caml.inria.fr |
Caml (dáslep Categorical Abstract Machine Language degen sózlerdiń qısqartpası) — bul ML programmalastırıw tili shańaraǵınıń bir dialekti bolǵan kóp paradigmalı, ulıwma maqsetli, joqarı dárejeli, funkcional programmalastırıw tili. Caml Franciyada Kompyuter Ilimleri hám Avtomatlastırıw boyınsha Francuz Izertlew Institutında (INRIA) hám Joqarı normal mektep (Parij) (ENS) te islep shıǵılǵan.
Caml statikalıq túrde tiplestirilgen, qatań bahalanǵan hám avtomat yadtı basqarıwdı qollanadı. OCaml, Caml nıń tiykarǵı miyrasxorı, tilge kóp ózgeshelikler qosadı, sonıń ishinde obyektke baǵdarlanǵan programmalastırıw (obyekt) qatlamı bar.
Mısallar
Tómende, # Caml shańaraǵınıń buyrıq qatarı belgisin kórsetedi.
Sálem, álem
print_endline "Sálem, álem!";;
Faktorial funkciyası (rekursiya hám taza funkcional programmalastırıw)
Faktorial sıyaqlı kóp matematikalıq funkciyalar eń tábiyiy túrde taza funkcional formada kórsetiledi. Tómendegi rekursiv, taza funkcional Caml funkciyası faktorialdı ámelge asıradı:
let rec fact n = if n=0 then 1 else n * fact(n - 1);;
Funkciyanı úlgi sáykesligi járdeminde de uqsas túrde jazıwǵa boladı:
let rec fact = function
| 0 -> 1
| n -> n * fact(n - 1);;
Bul sońǵı forma — faktorialdıń rekurrentlik qatnas retindegi matematikalıq anıqlaması. Esletip ótemiz, kompilyator bul funkciyanıń tipin int -> int dep shıǵardı, bul funkciyanıń pútin sanlardı pútin sanlarǵa sáwlelendiretuǵının bildiredi. Mısalı, 12! tómendegishe:
# fact 12;;
- : int = 479001600
Tariyxı
Birinshi Caml implementaciyası 1987-jılı Kompyuter Ilimleri hám Avtomatlastırıw boyınsha Francuz Izertlew Institutında (INRIA) Askander Suares tárepinen Lisp tilinde jazılǵan[1].
Onıń miyrasxorı Caml Light Ksavye Lerua hám Damien Doligez tárepinen C tilinde ámelge asırılǵan hám dáslepkisi joqarı yad hám oraylıq processor talapları sebepli «Heavy Caml» degen laqap atqa iye boldı.
Caml Special Light tiykarǵı tilge kúshli modul sistemasın qosqan tolıq qayta jazıw boldı. Ol Obyektiv Caml bolıw ushın obyektke baǵdarlanǵan programmalastırıw (obyekt) qatlamı menen keńeytildi, aqırında OCaml dep qayta ataldı.
Derekler
- ↑ "A History of Caml", inria.fr