OCaml
| Файл:Caml.128x58.gif | |
| Семантика: |
мультипарадигменный: функциональный, объектно-ориентированный, императивный |
|---|---|
| Автор(ы): | |
| Последняя версия: | |
| Типизация данных: | |
| Диалекты: | |
| Испытал влияние: | |
OCaml — современный объектно-ориентированный язык функционального программирования общего назначения, который был разработан с учётом безопасности исполнения и надёжности программ. Этот язык имеет высокую степень выразительности, что позволяет его легко выучить и использовать. Язык CaML поддерживает функциональную, императивную и объектно-ориентированную парадигмы программирования. Был разработан в 1985 году во французском институте INRIA, который занимается исследованиями в области информатики. Самый распространённый в практической работе диалект языка ML.
Инструментарий OCaml включает в себя интерпретатор, компилятор в байткод и оптимизирующий компилятор в машинный код, превосходящий по своим параметрам аналогичные компиляторы C/C++ для многих задач, особенно связанных с синтаксическим анализом и т.п.
На языке OCaml, в частности написан рендеринг формул Википедии, использующих тег <math>, а также популярный файлообменный клиент MLDonkey.
К достоинствам языка относят:
- строгую типизацию;
- развитую систему модулей;
- автоматическую сборку мусора;
- эффективность;
- кроссплатформенность.
Пример исходного текста на OCaml (из файла math/texvc.ml)
<source lang="ocaml"> exception LexerException of string let lexer_token_safe lexbuf =
try Lexer.token lexbuf with Failure s -> raise (LexerException s)
let render tmppath finalpath tree =
let outtex = Util.mapjoin Texutil.render_tex tree in let md5 = Digest.to_hex (Digest.string outtex) in begin
let mathml = Mathml.render tree and html = Html.render tree in print_string (match (html,!Html.conservativeness,mathml) with None,_,None -> "+" ^ md5 | Some h,Html.CONSERVATIVE,None -> "c" ^ md5 ^ h | Some h,Html.MODERATE,None -> "m" ^ md5 ^ h | Some h,Html.LIBERAL,None -> "l" ^ md5 ^ h | Some h,Html.CONSERVATIVE,Some m -> "C" ^ md5 ^ h ^ "\000" ^ m | Some h,Html.MODERATE,Some m -> "M" ^ md5 ^ h ^ "\000" ^ m | Some h,Html.LIBERAL,Some m -> "L" ^ md5 ^ h ^ "\000" ^ m | None,_,Some m -> "X" ^ md5 ^ m ); Render.render tmppath finalpath outtex md5
end
</source>
Ссылки
- Официальный сайт языка OCaml (англ.)
- Сайт OCaml Community (англ.)
- Изучение языка OCaml для C, C++ и Perl-программистов (англ.)
- Сайт Gerd Stolpmann'a, посвященный OCaml (англ.)
- Перевод документации на русский язык
- Перевод на русский язык книги Oreilly DAOC
Языки с похожими возможностями
Основные языки программирования (список • сравнение • IDE • история • хронология) |
|
|---|---|
| Используемые в разработке |
Ада • АПЛ • Ассемблер • ActionScript • ABAP/4 • AutoIt • AWK • BASIC • C • Кобол • C++ • C# • ColdFusion • Common Lisp • D • dBase • Delphi • Eiffel • Erlang • F# • Forth • Фортран • Gambas • Groovy • Haskell • Icon • Java • JavaScript • Limbo • Lua • MATLAB • Object Pascal • Objective-C • OCaml • Oz • Оберон • Parser • Паскаль • Perl • PHP • PowerBASIC • PureBasic • Python • ПЛ/1 • Пролог • Ruby • Scala • Scheme • Smalltalk • SQL • PL/SQL • Tcl • Vala • Visual Basic • VB.NET |
| Академические | |
| IEC61131-3 |
Instruction List • ST • FBD • Ladder Diagram • SFC |
| Прочие | |
| Эзотерические | |
ca:Objective Caml cs:OCaml de:Objective CAML el:OCaml en:Objective Caml es:Ocaml fr:Objective Caml gl:Ocaml it:Objective Caml ja:Objective Caml ka:ობიექტური კამლი ko:Objective Caml la:Ocaml nl:Ocaml nn:OCaml no:OCaml pl:OCaml pt:OCaml sl:Ocaml tg:OCaml tr:Ocaml uk:Objective Caml vi:OCaml zh:OCaml
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....