Caml Light

Caml Light

Caml Light est une implémentation légère du langage de programmation Caml développé par l'INRIA. Elle est stable et facilement portable. Cette version de Caml permet une programmation fonctionnelle et impérative. Caml Light ne permet pas la programmation orientée objet contrairement à OCaml, son successeur.

Ce langage est utilisé en classe préparatoires scientifiques (MPSI puis MP option info) pour initier les élèves à la programmation[1].

Sommaire

Exemples

Fonction factorielle

Pour des entiers naturels, la fonction factorielle est définie par :

n! = \prod_{i=1}^n i = 1\times 2\times 3\times \cdots \times (n-1) \times n

et sa définition récursive est :

n!=\begin{cases}
1  \quad    \mbox{si }n=0\\
n \times (n-1)! \quad  \mbox{ sinon}
\end{cases}

En Caml-light cela donne :

let rec fact = function
  | 0 -> 1
  | n -> n * fact (n - 1);;

Algorithme d'Euclide

L'algorithme d'Euclide, pour calculer le pgcd de deux entiers naturels u, v, s'écrit en Caml Light

let rec pgcd u v = 
  if u = 0 then
    v
  else if v < u then
    pgcd v u
  else
    pgcd (v mod u) u;;

Suite de Fibonacci

La suite de Fibonacci (F_n)_{n\ge 1} est définie par :

F_1=F_2=1, \quad F_{n+2}=F_{n+1}+F_n \quad \mbox{ avec } n \ge 0

.

En Caml Light on a

let rec fibonacci n =
  match n with
    | 1 -> 1
    | 2 -> 1
    | m -> fibonacci (m - 1) + fibonacci (m - 2);;

Nous pouvons aussi écrire une version itérative de cet algorithme (ayant l'avantage de ne pas s'exécuter en temps exponentiel), utilisant la récursivité terminale :

let fibo_iteratif n =
  let rec fonction_auxilliaire a b k = match k with
    | 0 -> a
    | k -> fonction_auxilliaire b (a + b) (k - 1)
in fonction_auxilliaire 0 1 n;;

Bibliographie

Liens externes

Site officiel

Notes et références

  1. [PDF] Programme d'informatique en MPSI et MP, B.O. Hors série n° 3 du 29 avril 2004, annexe VII

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Caml Light de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • Caml Light — is a lightweight and portable implementation of the Caml programming language, a dialect of the ML programming language family.It is implemented in C and compiles programs to bytecode.Caml Light is not actively developed, having been replaced by… …   Wikipedia

  • Caml-light — ● np. m. ►LANG Version légère de Caml, essentiellement destinée à l enseignement, mais qui n est plus développée …   Dictionnaire d'informatique francophone

  • Caml — (prononcé camel, signifie Categorical Abstract Machine Language) est un langage de programmation généraliste conçu pour la sécurité et la fiabilité des programmes. Il se prête à des styles de programmation fonctionnelle, impérative et orientée… …   Wikipédia en Français

  • Caml — Семантика: Объектно ориентированное Появился в: 1985 Автор(ы): INRIA Релиз: 3.11.2 (20.01.2010) …   Википедия

  • Caml Lights — may refer to:* Camel Lights, a brand of cigarette. See Camel (cigarette). * Caml Light, a functional programming language …   Wikipedia

  • Caml — Infobox programming language name = Caml paradigm = multi paradigm: functional, imperative; object oriented in OCaml year = 1985 typing = strong, static designer = Gérard Huet, Guy Cousineau, Ascánder Suárez, Pierre Weis, Michel Mauny (Heavy… …   Wikipedia

  • Caml — ● /ka mail/ np. m. ►LANG Categorical Abstract Machine Language. métalangage fonctionnel (voir langage fonctionnel) mis au point à l INRIA à partir de 1984, et dont l objectif était de remplacer Pascal (et le modèle impératif) dans l enseignement… …   Dictionnaire d'informatique francophone

  • Objective Caml — Apparu en 1987 (CAML), 1996 (OCaml) Développeur INRIA Dernière version stable 3.11.1 (le 12  …   Wikipédia en Français

  • O’Caml — Objective Caml Apparu en 1987 (CAML), 1996 (OCaml) Développeur INRIA Dernière version stable 3.11.1 (le 12  …   Wikipédia en Français

  • Objective Caml — Infobox programming language name = Objective Caml paradigm = multi paradigm: imperative, functional, object oriented developer = INRIA latest release version = 3.10.2 latest release date = Release date and age|2008|02|29 operating system = Cross …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”