Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Objective Caml - Wikipedia

Objective Caml

Da Wikipedia, l'enciclopedia libera.

Objective Caml, conosciuto anche con il nome di OCaml o O'Caml , è un avanzato linguaggio di programmazione appartenente alla famiglia di linguaggi di programmazione ML. È sviluppato e distribuito come software open source dalla INRIA. O'Caml è stato creato nel 1996 come successore del CAML. Tra i suoi autori si ricordano Xavier Leroy, Jerome Vouillon and Damien Doligez.

La sigla CAML originariamente derivava da Categorical Abstract Machine Language, mentre la O iniziale è stata aggiunta per sottolineare l'estensione ad oggetti del nuovo linguaggio.

O'Caml condivide le caratteristiche dei linguaggi funzionali e di quelli imperativi, ma contiene elementi di programmazione orientata agli oggetti e alcune differenze sintattiche.

Indice

[modifica] Caratteristiche

O'Caml si distingue dagli altri linguaggi della famiglia ML per le prestazioni. Il sistema di runtime è stato disegnato per essere veloce, efficiente ed avere poche richieste di memoria. O'Caml fornisce un compilatore bytecode, un interprete a riga di comando e un compilatore di codice nativo ottimizzato. Il codice generato dal compilatore nativo è tipicamente paragonabile al C/C++ nella efficienza algoritmica. Per vedere degli esempi The Computer Language Shootout Benchmarks.

Caratteristiche molto potenti del linguaggio sono un sistema di tipi statico, la deduzione del tipo delle variabili, il polimorfismo parametrico, la tail recursion, il pattern matching, le first class lexical closures, l'uso dei functors (parametric modules), la gestione delle eccezioni, e un garbage collection incrementale. È anche molto conciso nella sintassi. Il sistema ad oggetti fornisce ereditarietà multipla, costruzione diretta di oggetti (specificando i metodi che sono unici per quel oggetto) o da classi, e structural subtyping (oggetti sono di tipo compatibile se i loro metodi sono compatibili, a prescindere da cosa siano deriviati)

Le caratteristiche di O'Caml sono bilanciate tra l'espressività e le nuove caratteristiche da una parte e la facilità di interfacciamento con sistemi e librerie pre-esistenti dall'altra. O'Caml contiene il supporto per funzioni comuni ad altri linguaggi, come printf e per interfaccie esterne che permettono un facile linking con primitive C, incluso il supporto per la gestione efficiente di array di numeri in un formato compatibile sia con il C/C++ che con il FORTRAN

Il software fornito a corredo di O'Caml prevede un potente preprocessore (che permette estensioni sintattiche), un debugger (che permette l'analisi a ritroso degli errori), un generatore di documentazione, un profiler e altre numerose librerie di uso comune. Il compilatore è disponibile per un numero di piattaforme elevato, incluso Unix, Windows e Macintosh, con la possibilità di generare codice nativo per tutte le principali architetture (IA-32, PowerPC, AMD64, SPARC, IA-64, Alpha, HP-PA, MIPS, StrongARM), fornendo così una buona portabilità.

[modifica] Uso

O'Caml è usato in un gran numero di applicazioni, che includono sistemi per provare teoremi e per analizzare programmi. È usato anche in applicazioni come MLDonkey (un popolare programma P2P che supporta numerosi protocollo) e Unison File Synchronizer.

Programmi scritti in O'Caml hanno vinto ripetutamente il ICFP programming contest.

O'Caml è usato anche come linguaggio introduttivo in numerose università, incluse la EPITA, École Normale Supérieure, Caltech, Brown University e l'Università di Pisa.

[modifica] Voci correlate

[modifica] Collegamenti esterni

[modifica] Esempi di codice

[modifica] Hello, world!

Il seguente esempio stampa il testo "Hello world".

  let main () =
     print_endline "Hello World";;

[modifica] 99 bottiglie di birra

open Printf 

let bottiglie = function
  | 0 -> "non c'e' nessuna bottiglia di birra"
  | 1 -> "c'e' una bottiglia di birra"
  | n -> sprintf "ci sono %d bottiglie di birra" n

let verso n =
  let corrente = bottiglie n and prossimo = bottiglie (n - 1) in
  let primaLinea = sprintf "%s sulla parete, %s.\n" corrente corrente in
  let secondaLinea = "Prendine una, passala in giro,\n" in
  let terzaLinea = sprintf "e %s sulla parete!\n" prossimo in
  primaLinea ^ secondaLinea ^ terzaLinea  

let cantaCanzone () =
  for n = 99 downto 1 do
    print_endline (verso n)
  done;; 

cantaCanzone()
Principali linguaggi di programmazione (tutti)

Ada | ALGOL | APL | Awk | BASIC | C | C++ | C# | COBOL | Delphi | Eiffel | Fortran | Haskell | IDL | Java | JavaScript | J# | Lisp | LOGO | ML | Objective C | O'Caml | Pascal | Perl | PHP | PL/I | PLaSM | Prolog | Python | Ruby | SAS | Scheme | sh | Simula | Smalltalk | SQL | Visual Basic

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com