Kurz: Funktional, statisch typisiert und schnell.
Genauer: OCaml wird eingesetzt für Compiler und Sprachwerkzeuge, Finanzsoftware (Jane Street), Beweisassistenten (Coq), Systemwerkzeuge und Forschung. OCaml (1996, INRIA Frankreich) ist eine funktionale Sprache aus der ML-Familie mit statischem Typsystem und Typinferenz: Typen werden fast immer automatisch erkannt, trotzdem fängt der Compiler viele Fehler vor dem Start ab.
Steckbrief
| Eigenschaft | Wert |
|---|---|
| Erschienen | 1996 |
| Entwickelt von | Xavier Leroy u. a. (INRIA) |
| Paradigmen | funktional, imperativ, objektorientiert |
| Typisierung | statisch, Typinferenz |
| Ausführung | Bytecode oder nativ kompiliert |
| Paketverwaltung | opam / dune |
| Dateiendung | .ml, .mli |
| Sprachfamilie | Funktionale Sprachen (ML/Haskell) |
Einsatzgebiete
Compiler und Sprachwerkzeuge, Finanzsoftware (Jane Street), Beweisassistenten (Coq), Systemwerkzeuge und Forschung.
So führst du Code aus
Datei hallo.ml speichern und mit ocaml hallo.ml ausführen (OCaml von ocaml.org, Paketmanager opam).
Das erste Programm
let () =
print_endline "Hallo, Welt!";
Printf.printf "1 + 2 = %d\n" (1 + 2);
print_string "ohne Zeilenumbruch";
print_newline ()Ausgabe:
Hallo, Welt!
1 + 2 = 3
ohne ZeilenumbruchDer Kurs: 8 Kapitel
Jedes Kapitel enthält geprüfte Beispiele mit echter Ausgabe, Merksätze, eine Übungsaufgabe und ein Quiz. Zum Üben mit Fortschrittsanzeige, Abzeichen und Zertifikat: OCaml-Kurs auf der Lernseite.
- Einführung und erstes Programm
- Funktionen und Kontrollfluss
- Listen, Tupel und Records
- Varianten und algebraische Datentypen
- Module, Strings und Standardbibliothek
- Funktional vertieft: Lazy, GADTs und Objekte
- Dateien, Werkzeuge und Ökosystem
- Referenz und Spickzettel
Ähnliche Sprachen
- F#: Funktionale Programmierung für .NET
- Haskell: Rein funktional, streng typisiert, elegant
- Rust: Schnell wie C, aber speichersicher dank Ownership
Siehe auch
Programmiersprachen im Überblick, Sprachen im Vergleich, Zeitstrahl der Programmiersprachen, Programmierparadigmen, Kompiliert oder interpretiert?