LINUX.ORG.RU
 

Вышел новый релиз функционального языка программирования Objective Caml 3.04


0

0

Тем кто не в курсе, это одна из реализаций функционального языка программирования ML, которая базируется на диалекте CamlLight плюс ОО расширения и модульная система в стиле Standard ML. Поддерживаются практически все UNIX платформы, а также все виды Windows'а, MacOS, MacOS X. Вся прелесть, в том, что однажды созданный байт-код, может выполняться на всех перечисленных выше платформах (32-х и 64-х разрядных). Конечно есть еще компилятор в high-performance native код, а можно выполнять программу как скрипт ;)

В Changes очень много изменений и добавленных фич.

Кому интересно, могут сходить по ссылке, и посмотреть текущие проекты: http://caml.inria.fr/hump.html

А мне сам язык и идея FP+OOP -- в одном флаконе очень понравились, ИМХО.

>>> Objective Caml 3.04

ЗАСТАВЬ КОМПЬЮТЕР ПОЛИВАТЬ ОГОРОД

автоматизация своими руками: электроприборы под контролем компьютера
beware of programmers who carry screwdrivers!
http://www.unicontrollers.com/products/unc01x

[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Не нашел к сожалению на ихнем сайте - есть ли у этого языка регулярные выражения? Я подыскиваю альтернативу perl - а так как по работе приходится в основном работать с текстовой информацией то регулярные выражения просто жизнено необходимы.

Олег

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Альтернатива Perl - Python, очень удобно и мощно - лучшее от perl, java и php.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Это точно Python - сейчас самое то. Мне понравилось. Меня тоже Perl доставать начал.

anonymous ()

Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Есть мощный пакет PCRE-Regexp - полностью перлокомпатибыл, ну и для простеньких задач есть мелкий и deprecated уже пакет Str, входящий в стандартную библиотеку.

За пакетиками надо лезть в раздел Hump на сайте.

# ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

А python только интерпретатор?

Олег.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Python может сделать bytecode и "заморозить" его - т.е. будет обычный исполнимый файл, к которому прилинкован RunTime и содержащий весь твой код во внутреннем формате.

PS: а extensions на C/C++ всеж проще к Perlу писать, чем к Pythonу. Стоит сравнить хотя размер CPAN с доступными модулями для Python

anonymous ()

Re: Интервью с Miguel de Icaza

>PS: а extensions на C/C++ всеж проще к Perlу писать, чем к Pythonу

неправда это. На питоне что кусок на С приделать, что его самого встроить в С приложение -- не составляет труда. Ничуть не труднее чем с перлом.

А если еще и SWIG при этом использовать -- то вообще детское занятие.

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Ну и при чём тут Питон? С такой корявой лямбдой Питон просто не имеет права находиться под одним топиком с OCaml-ом.

# ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Насчет лямбды. Где можно почитать на русском теорию. О преобразованиях там, всяких, теоремах.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Кто-нибудь может даст ссылку на простенькое введение в OCaml для
тех, кто совершенно не в курсе, что такое функциональное программирование, и пишет на обычных языках?

Please-please
-------------------
А еще об альтернативе Перлу - перлисту будет особенно просто перейти
на Ruby - completely Object Oriented scripting language. Мощный и простой.

www.ruby-lang.org
www.rubycentral.com
www.rubygarden.org

книга -
http://www.rubycentral.com/book/index.html

usenet group - comp.lang.ruby

исходники для юниксов и cygwin -
ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.6.5.tar.gz

готовый дистрибутив для винды -
http://dev.rubycentral.com/downloads/files/ruby165-1.exe



/nick Gerbill

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

http://www.cs.caltech.edu/cs134/cs134b/book.pdf

Довольно компактное и толковое введение практически по всему языку. После него можно уже приступать к чтению родного руководства http://caml.inria.fr/ocaml/htmlman/index.html Оно есть и в pdf

anonymous ()

Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

В качестве библиотек: В стандартной поставке модуль Re(на базе GNU re) От Marcus Mottl Pcre(на базе...Pcre) http://pcre-ocaml.sourceforge.net/ От J?r?me Vouillon http://sourceforge.net/projects/libre/ -- Первые два интерфейсы к C библиотекам, libre %100 OCaml.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Не имею ничего против других языков, но объясните, чем вам Perl не угодил? Обязательно
имеется в любом юниксе, удобен и мощен -- хочешь/не хочешь, а знать его придется.
А вот к следующей осени будет Perl6 - глубокая ревизия с большими перспективами.
Обратно станете переучиваться? :)

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Вопрос имею к знатокам языков: мне кажется, что обязательное условие выживания нового
языка - наличие стандартного платформенно-независимого преобразования из собственного
представления структур данных в представление, используемое стадартными библиотеками
( и обратно, само собой ) и механизма подключения библиотек. Если этого нет, то у
языка нет даже шанса достичь зрелости. Правильно?
А как с этим в caml?

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Излишней "креативностью" и эклектикой. Для каждой фичи в перле свой подход, ну и накой оно нужно?! Вот появится эта самая глубокая ревизия (это которую собирались вместе с питон-тимом делать, но не собрались, кажется?!) и посмотрим, стоить ли к нему возвращаться. Знать перл приходится, а вот юзать сейчас, когда есть питон, для своих поделий - нонсенс. Ясный, быстрый, байт-компилируемый, встраиваемый-наращиваемый и т.д. Хочешь - используй как системный скриптор, хочешь - в песочницу, хочешь - в Апач, хочешь в JavaVirtualMashine... Есть также везде, места с модулями занимает сравнимо с перлом. По удобству - намного превосходит. imho.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

>представления структур данных в представление, используемое >стадартными библиотеками
>( и обратно, само собой ) и механизма подключения библиотек. Если >этого нет, то у
>языка нет даже шанса достичь зрелости. Правильно?
>А как с этим в caml?

С этим все нормально.
Биндинги Си <--> Caml пишутся элементарно. Есть даже утилиты -
ты ей .h файл скармливаешь оно тебе готовый интерфейс выдает
для работы с библиотекой из Caml.

>Не имею ничего против других языков,
>но объясните, чем вам Perl не угодил?
Дело в том что Перл как токовой не имеет стройной концепции,
возник он можно сказать спонтанно, и основная цель -
собрать все unix-утилиты в одной упаковке. Вышло общем неплохо,
для задач где раньше пришлосьбы пользовать скажем bash, awk, sed
и еще парочку утилит, перл предлагает довольно неплохую альтернативу.
Плюс еще CPAN.
НО. Из за своей "спонтанности" он не имеет многих вещей
которые просто должен иметь современный язык программирования.
Конечно производятся попытки ввести их поверх существующих
конструкций, однако это приводят только к засорению и утяжелению
языка.

A Caml - это очень хорошо продуманный и
_ОТЛИЧНО РЕАЛИЗОВАННЫЙ_ язык, с четкой концепцией. Чего стоит только система модулей, типизация, функции первого порядка,
отличный сборщик мусора, ну и много других приятных вещей.
Плюс скорорость, нетребовательность к ресурсам, компактность.

Во здесь смотрим бенчмарки:
Для винды - http://dada.perl.it/shootout/craps_cpumemloc.html
Для линукса - http://www.bagley.org/~doug/shootout/craps.shtml

Смотрим и делаем выводы!

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

> Дело в том что Перл как токовой не имеет стройной концепции,
> возник он можно сказать спонтанно, и основная цель -
> собрать все unix-утилиты в одной упаковке. Вышло общем неплохо,

Основной целью Perl-а можно назвать создание инструментария для решения задач
обработки произвольных текстовых данных. Эти задачи всегда будут важны и нужны в
юниксе. Цель достигнута с честью. Остальное - дань моде. А caml имеет свою нишу
в каком-то круге задач или претендует на роль универсального языка на все случаи
жизни?

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

> А caml имеет свою нишу в каком-то круге задач или > претендует на роль универсального языка на все > случаи жизни?

Изначально язык ML был разработан для доказательства теорем, утекло немало времени и семейство ML сильно разрослось, да и сам язык значительно изменился. Оказалось что на него очень хорошо ложатся решения многих задач. Так что можно сказать что Caml язык общего на значения, скажем есть интерфейсы к разнличным БД, CGI, поддержка threads, регулярных выражений как POSIX-совместимых так и аля Perl, работа с целыми произвольной точности, XML - парсер, gtk, встроенная поддержка типов, массивов( с возможностью контроля допустимости диапазонов), исключения, и т.д. и т.п. Отладчик, профайлер, интерпретатор, препроцессор, ocamlYACC, ocamlLex включены в поставку.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Я на Caml писал: a) Raytracer (ICFP'00 contest) b) Hierarchical aniamtion player (на базе моделей из Outcast) c) IceDock приблуду для поддержки dockapp's в IceWM/TWM/MWM/Sawfish etc. d) Да и все остальное

Так что, для меня, OCaml = general purpose language(and the best at that)

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

2anonymous (*) (2001-12-19 02:31:23.0)
> c) IceDock приблуду для поддержки dockapp's
> в IceWM/TWM/MWM/Sawfish
Очень заманчиво звучит. Можно постотреть? А то велосипед изобретать не хоца :-)

*** ()

Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

2Korwin: Насчет IceDock: http://sdboyd.dyndns.org/icewm/contrib/icedock.tar.bz2 очень юзабельная вещь -- там лежат сырцы и бинарник, если нет OCaml.

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

2ska. Спасибо!
А как с ним работать?
Что-то не въехал. icedock --help не помог :-((

*** ()

Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

2Korwin: после распаковки -> лезешь в каталог x -> там лежит файлик .icedockrc -> $HOME -> правишь по своему вкусу -> наслаждаешься результатом ;)

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

2ska. Спасибо.
Что-то я к 7 утра вообще соображать перестал :-)

*** ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

А вот непонятно. Написано Caml, а ссылка на дистрибутив идет в директорию caml-light. Это как понимать?

**** ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Официальный дом IceDock http://algol.prosalg.no/~malc/icedock
Правда там сейчас лежит довольно старая и сырая версия, если соберусь то выложу на днях working sources так сказать.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

To Antichrist:

>>Насчет лямбды. Где можно почитать
>>на _русском_ теорию. О преобразованиях там, всяких, теоремах

>http://www.cl.cam.ac.uk/Teaching/Lectures/funprog-jrh-1996/index.html

Это я читал, но честно говоря слабоват я в математической
терминологии на инглише, поэтому и прошу чтобы
именно на _русском_, потому как не врубаюсь я маленько :-(.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Вот тут все на русском http://glade.nmd.msu.ru/pleasure/sss/toc.html

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

А что на OCaml написано кроме icedock?
И какие проекты есть интересные?

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

В самой новости ссылк на список проектов
http://caml.inria.fr/hump.html

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

А кто-нибудь haskell и ocaml сравнивал ?

И есть ли под них библиотеки для баз данных?
Например под Sybase ?

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

>>Не имею ничего против других языков,
>>но объясните, чем вам Perl не угодил?

>Дело в том что Перл как токовой не имеет стройной концепции,
>возник он можно сказать спонтанно, и основная цель -
>собрать все unix-утилиты в одной упаковке. Вышло общем неплохо,
>для задач где раньше пришлосьбы пользовать скажем bash, awk, sed
>и еще парочку утилит, перл предлагает довольно неплохую >альтернативу.
>Плюс еще CPAN.
>НО. Из за своей "спонтанности" он не имеет многих вещей
>которые просто должен иметь современный язык программирования.
>Конечно производятся попытки ввести их поверх существующих
>конструкций, однако это приводят только к засорению и утяжелению
>языка.

Думаю, что как долгое время писавший на Перле, имею право
добавить к списку того, что в Перле мне не нравиться.

1) Глобальные переменные по умолчанию. Все время use strict

2) линеаризация, когда push одного массива в другой приводит
к одному массиву, а не сложной структуре данных, а хеш
превращается в кусок массива ключ, значение, ключ, значение

3) References - попытка решить проблему пункта 2 и иметь возможность
создавать сложные структуры данных, результат -
идиотский навороченный синтаксис

4) Примитивный способ передачи параметров в функцию, для передачи
не-скаляров приходится использовать references

5) OO - dirty hack в 5 Перле. OO программы писать на Перле -
лучше я на Бейсике напишу

6) отсутствие дизайна как такового - пласты наворотов и dirty hacks
Понадобились локальные переменные - захреначили my $a,
понадобились сложные структуры - а давайте захреначим
referencies, ${$a->[2]->{'hello'}}{4}. Каково?
А давайте последний элемент массива @a у нас будет @#a ?
Давайте! Ну и так далее

Такие языки как Ruby & Python не менее мощные, но гораздо проще
писать, и что важно, читать и поддерживать код!


/nick Gerbil

anonymous ()

Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Сложно сравнивать. Haskell ленивый, а Caml - нет. И это очень фундаментально.

Ну а для баз данных много чего есть. Есть биндинги ODBC, есть для PostreSQL, есть мои биндинги для Oracle.

# ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Haskell наверно более интересен с точки зрения обучения,
это очень интересный язык, когда немного в нем разберешься
и смотришь примеры, то просто крышу рвет от восторга.
Но к сожалению такой удачной реализации как для Caml нет,
посему для практических задач он малопригоден.

Для баз данных все просто берешь нужную сишную библиотеку,
читаешь главу "Interfacing C with Objective Caml" из manuala
и за день-два пишешь нужный биндинг.
Для примера можно посмотреть уже существующий, скажем к MySQL.
Для информации - размер биндинга к MySQL, занимает от силы
страниц пять-шесть исходников. Так что проблем нет.

anonymous ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Вдогонку биндинг к MySql смотреть здесь
http://www.gaertner.de/~lindig/software/

anonymous ()

Re: Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

to Antichrist (*) (2001-12-19 11:40:50.0)
Прочитал я описание термина "functional language". Все отличие от императивного
лишь в способе представления одной и той же мысли. Вспоминая, какие ты тут баталии
развертывал с любителями императивных языков, сразу возникает вопрос о твоем
психическом здоровье. Понятно, что математику-теоретику приятней видеть sum[1..10],
а инженеру-практику привычней иметь дело с for (i=1; i<=10; ++i) y += i;
Кстати, жудожник кубист тоже смог бы выразить эту мысль, но по-своему ;)

Другое дело, что ты никогда нормально не мог описать действительно хорошие стороны
реализации этого языка - скорость, эффективность, гибкость, расширяемость.
То, что ты тут плел до сих пор работало исключительно на антирекламу языка ;(
Такой вот ты мудак.

anonymous ()

Re: Re: Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

2 anonymous (*) (2001-12-20 00:34:16.0):

>действительно хорошие стороны реализации этого
>языка - скорость, эффективность, гибкость, расширяемость

Посмотри:
http://www.bagley.org/~doug/shootout/craps.shtml

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

А еще под Win32:
http://dada.perl.it/shootout/craps.html

* ()
[#]  

Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Проверил на тех же тестах:
Fibonacci Numbers:

kamil$ time ./fib_c 30
1346269

real 0m0.265s
user 0m0.270s
sys 0m0.000s

kamil$ time ./fib_ml 30
1346269

real 0m0.153s
user 0m0.140s
sys 0m0.020s

kamil$ time ./fib_cpp 30
1346269

real 0m0.271s
user 0m0.270s
sys 0m0.000s

Результат налицо ;)

* ()

Re: Re: Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

>Понятно, что математику-теоретику приятней видеть sum[1..10], >а инженеру-практику привычней иметь дело с for (i=1; i<=10; ++i) y >+= i;

А инженеру практику не приходило в голову: y += (i * (i + 1)) >> 1; ?

anonymous ()

Re: Re: Re: Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

> Посмотри: http://www.bagley.org/~doug/shootout/craps.shtml

А что ты мне показываешь, я не спорил, мне самому это нравится. Речь идет
о том, что анчихрист как та собака - что-то понимает, но нормально сказать
не может. Сколько он тут крови выпил дурацкими спорами "функциональный язык против
императивного".

anonymous ()

Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

Мне нравится не столько сравнительная скорость исполнения, сколько экономное
расходование памяти. Это говорит об очень аккуратной реализации.

anonymous ()

Re: Re: Re: Вышел новый релиз функционального языка программирования Objective Caml 3.04

>>kamil$ time ./fib_c 30
>>real 0m0.265s
>>
>>kamil$ time ./fib_ml 30
>>real 0m0.153s

>libc bloat?
OCaml линкует к той-же самой libc + надо подготовить GC, frametables,
таблицу root-ow, это так в дополнению ко всем C related инициализациям.

anonymous ()