OberonCore
https://forum.oberoncore.ru/

Самодостаточность Haskell'я.
https://forum.oberoncore.ru/viewtopic.php?f=72&t=2430
Страница 1 из 1

Автор:  Alexey Veselovsky [ Четверг, 11 Март, 2010 14:05 ]
Заголовок сообщения:  Самодостаточность Haskell'я.

Судя по всему, haskell таки не является самодостаточным языком. Нет, в идеальном мире, где вычислительные ресурсы бесконечны, у haskell'я проблем бы не было.

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

В частности мне было предложено использовать для этого http://hackage.haskell.org/package/bitmap
Можете скачать, посмотреть что там внутри, в исходниках: http://hackage.haskell.org/packages/arc ... 0.1.tar.gz

Собственно какой смысл в haskell'e, если всё равно систематически приходится лезть в подвал на уровень Си, который ни разу не безопасен? Уж лучше какая-нибудь жаба что-ли...

Хм. Кажется ocaml более самодостаточен и больше приспособлен к реальной жизни нежели haskell. Надо будет пощупать. По крайней мере проблем с битмапами там точно нет :-)

Автор:  Geniepro [ Четверг, 11 Март, 2010 15:45 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Смысл в том, что высокоуровневую логику описываете на безопасном высокоуровневом языке, а низкоуровневые библиотеки реализуются на сях или ассемблере там, тщательно отлаживаются один раз и не трогаются дальше...

ЗЫ. А вообще да, Хаскелл и Си идут по жизни рука об руку... :lol:

Автор:  Alexey Veselovsky [ Четверг, 11 Март, 2010 16:20 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Geniepro писал(а):
Смысл в том, что высокоуровневую логику описываете на безопасном высокоуровневом языке, а низкоуровневые библиотеки реализуются на сях или ассемблере там, тщательно отлаживаются один раз и не трогаются дальше...

ЗЫ. А вообще да, Хаскелл и Си идут по жизни рука об руку... :lol:


А какие преимущества по сравнению с окамлом например? В котором можно и низкий уровень и высокий писать. Низкий более безопасно чем в Си. Высокий почти также как в хаскеле.

Автор:  Info21 [ Четверг, 11 Март, 2010 16:42 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Кстати, ведь ФЯ как более жесткие по ограничениям, наверное, можно придумать как состыковать с Оберонами?

Как бы такая пристройка могла выглядеть? По-грубому? Скажем, программу на H в отдельном окошке компилим отдельной тулзой?
Видимо, проблема будет придумать стыковку между двумя языками?
Или слишком узкое будет "бутылочное горлышко" по типам передаваемых данных?
Или сделать ФЯ таким, чтобы из Оберона его данные можно было полегче читать?

Не очень понятно, зачем, но забавно.

Автор:  Alexey Veselovsky [ Четверг, 11 Март, 2010 16:57 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Info21 писал(а):
Кстати, ведь ФЯ как более жесткие по ограничениям, наверное, можно придумать как состыковать с Оберонами?

Как бы такая пристройка могла выглядеть? По-грубому? Скажем, программу на H в отдельном окошке компилим отдельной тулзой?
Видимо, проблема будет придумать стыковку между двумя языками?
Или слишком узкое будет "бутылочное горлышко" по типам передаваемых данных?
Или сделать ФЯ таким, чтобы из Оберона его данные можно было полегче читать?

Не очень понятно, зачем, но забавно.


Ну делают же стыковку с Си. Значит и с оберонами можно. Другое дело насколько это будет удобно.

С т.з. ФЯ такая стыковка была бы полезна, ибо оберончики таки побезопасне Цэ будут. Да и синтаксис поприятней. И сборщик мусора можно было бы единый использовать :-) Ну или хоть Цэ на модулу-2 заменить что-ли...

С т.з. оберонов насколько такая связка будет полезной не очень понятно, т.к. оберон не сможет нормально пользоваться абстракциями разработанными на ФЯ. Всякие hof, с карингом и лямбдами, выводом типов и проч.

Автор:  Info21 [ Четверг, 11 Март, 2010 19:29 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Alexey Veselovsky писал(а):
С т.з. ФЯ такая стыковка была бы полезна, ибо оберончики таки побезопасне Цэ будут. ... И сборщик мусора можно было бы единый использовать :-) ...

С т.з. оберонов насколько такая связка будет полезной не очень понятно, т.к. оберон не сможет нормально пользоваться абстракциями разработанными на ФЯ. Всякие hof, с карингом и лямбдами, выводом типов и проч.
Об том и речь, что инфраструктура уже есть общая.

Из оберона не обязательно всеми этими абстракциями пользоваться -- зачем? Это кухня ФЯ.
Просто разумный минимум для обмена данными между Обероном и ФЯ.

Автор:  Geniepro [ Пятница, 12 Март, 2010 07:51 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Alexey Veselovsky писал(а):
А какие преимущества по сравнению с окамлом например? В котором можно и низкий уровень и высокий писать. Низкий более безопасно чем в Си. Высокий почти также как в хаскеле.

Я сам с Окамлом практически не имел дела. Синтаксис Окамла мне кажется ужасным по сравнению с Хаскеллом. Набор библиотек для Окамла, говорят, тоже не ахти. Под виндою вообще ужас-ужас.
С другой стороны, майкрософтская реализация Окамла -- F# -- очень даже ничего. Синтаксис более чистый, чем у Окамла, библиотеки -- .NET Framework, с виндою, само собой, никаких проблем. Единственно что расстраивает -- нет дизайнера форм, а вручную делать формы тоскливо.
Правда, некоторые тоже жалуются, что система типов перегружена, слишком ориентирована на .NET, синтаксис всё-таки сложный...

Автор:  Geniepro [ Пятница, 12 Март, 2010 07:59 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Alexey Veselovsky писал(а):
Ну делают же стыковку с Си. Значит и с оберонами можно. Другое дело насколько это будет удобно.
Основной компилятор Хаскелла включает в себя GCC и может в одном из режимов генерировать сишный код, который транслируется этим самым GCC, так что проблем с интеграцией сишного кода в хаскельную программу нет изначально.
Вот маршаллить данные из хаскелла в си и обратно -- неприятно, утомительно, трудоёмко, обёртки писать надо...
Впрочем, также и у тех, кто хочет из оберонов использовать сишные либы...

Alexey Veselovsky писал(а):
С т.з. ФЯ такая стыковка была бы полезна, ибо оберончики таки побезопасне Цэ будут. Да и синтаксис поприятней.
Насчёт более приятного синтаксиса -- вопрос очень спорный. После хаскелла что си, что паскаль -- одинаковое г...

Автор:  Alexey Veselovsky [ Пятница, 12 Март, 2010 10:42 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Вооще, как вариант бы, писать критичные по быстродействию места, которые не удается написать на чистом хаскеле, на окамле (с его возможной императивностью и мутабельность) а всё остальное на хаскеле.

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

Автор:  Geniepro [ Пятница, 12 Март, 2010 13:18 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Языки всё-таки не очень-то и похожи, системы типов отличаются довольно сильно. В Окамле, например, нет классов типов. Это уже влияет на внутреннее устройство полиморфных функций.
Не смог нагуглить что-нить толковое по взаимодействию Хаскелла с Окамлем, видимо, придётся использовать сишный интерфейс, так как у обоих языков есть средства FFI с сями...

Автор:  Geniepro [ Пятница, 12 Март, 2010 15:03 ]
Заголовок сообщения:  Re: Самодостаточность Haskell'я.

Alexey Veselovsky писал(а):
А какие преимущества по сравнению с окамлом например? В котором можно и низкий уровень и высокий писать. Низкий более безопасно чем в Си. Высокий почти также как в хаскеле.

Ну, Си всё-таки проще, чем Окамль, есть реализации под все платформы, эффективность почти на уровне ассемблера...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/