Kontentke ótiw

Caml

Wikipedia — erkin enciklopediya
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

«Sálem, álem!» programması:

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

  1. "A History of Caml", inria.fr