Язык программирования Python

       

OCaml


Язык программирования OCaml - это язык функционального программирования (семейства ML, что означает Meta Language), созданный в институте INRIA, Франция. Важной особенностью OCaml является то, что его компилятор порождает исполняемый код, по быстродействию сравнимый с С, родной для платформ, на которых OCaml реализован. В то же время, будучи функциональным по своей природе, он приближается к Python по степени выразительности. Именно поэтому для OCaml была создана библиотека Pycaml, фактически реализующая аналог C API для OCaml. Таким образом, в программах на OCaml могут использоваться модули языка Python, в них даже может быть встроен интерпретатор Python. Для Python имеется большое множество адаптированных C-библиотек, это дает возможность пользователям OCaml применять в разработке комбинированное преимущество Python и OCaml. Минусом является только необходимость знать функции Python/C API, имена которого использованы для связи OCaml и Python.

Следующий пример (из Pycaml) показывает программу для OCaml, которая определяет модуль для Python на OCaml и вызывает встроенный интерпретатор Python:

let foo_bar_print = pywrap_closure (fun x -> pytuple_fromarray (pytuple_toarray x)) ;; let sd = pyimport_getmoduledict () ;; let mx = pymodule_new "CamlModule" ;; let cd = pydict_new () ;; let cx = pyclass_new (pynull (), cd, pystring_fromstring "CamlClass") ;; let cmx = pymethod_new (foo_bar_print,(pynull ()),cx) ;; let _ = pydict_setitemstring (cd, "CamlMethod", cmx) ;; let _ = pydict_setitemstring (pymodule_getdict mx, "CamlClass", cx) ;; let _ = pydict_setitemstring (sd, "CamlModule", mx) ;; let _ = pyrun_simplestring ("from CamlModule import CamlClass\n" ^ "x = CamlClass()\n" ^ "for i in range(100000):\n" ^ " x.CamlMethod(1,2,3,4)\n" ^ "print 'Done'\n")



Содержание раздела