LINUX.ORG.RU

ЯП для написания алгоритмов

 , ,


0

2

Занялся тут на досуге клепанием алгоритмов для известных науке P, NP, PSPACE итп-complete, проблем.

Как ЯП сишку отбросил сразу, ибо не хочется писать и дебажить структуры данных и сторонние библиотеки не хочется, в них всегда все через попу сделано и часто студентотой.

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

Выбрал яву. Но и с ней не все так просто. Хоть в java 8 и можно заменять for лупы функциональщиной, все равно получается как-то многословно и процедурально.

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

Какой ЯП лучше подходит для написания алгоритмов красноглазя ночами ненавидя свою основную работу? Может алгол86...

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

★★★★

Последнее исправление: unt1tled (всего исправлений: 1)

Ответ на: комментарий от Deleted

И чо? причем тут функциональщина?

В Io тоже можно так написать:

Range setRange(20, 10, -3) asList foreach(print)
В 2 строки мы можем запилить твой сахар как простую функцию:
List -> := List getSlot(«foreach»)
range := method(x, y, z, Range setRange(x, y, z) asList)

range(20, 10, -3) -> (print) 
можно и еще слаще сделать, при желании.

nuboquest
()

интересный способ бампать треды: постишь и удаляешь пост, тред всплывает в топ с последним сообщением месяц назад и все думают "полтергейст движок лора говно бажное"

unt1tled ★★★★
() автор топика
Последнее исправление: unt1tled (всего исправлений: 1)
Ответ на: комментарий от nuboquest

думал генераторы относятся к функциональщине.

Deleted
()
Ответ на: комментарий от tailgunner

кстати, что ты думаешь насчёт Mirage OS в частности, и unikernels в целом?

вот например MELANGE смотрится любопытно

да и вообще, презентации там прикольные: в итоге, unikernel is a functor, composable module via DSL (see MELANGE) and xen appliance.

anonymous
()
Ответ на: комментарий от anonymous

Для слабаков - Паскаль. Для чотких пацанов - Оберон.

для царей — оберс (оссемблер же, не для лалок! понемать надоть!)

anonymous
()

Какой ЯП лучше подходит для написания алгоритмов красноглазя ночами ненавидя свою основную работу?

matlab

Reset ★★★★★
()
Ответ на: комментарий от unt1tled

но его же не существует...

Почему это? Полно реализаций.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

кстати, что ты думаешь насчёт Mirage OS в частности, и unikernels в целом?

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

tailgunner ★★★★★
()
Ответ на: комментарий от Reset

Какой ЯП лучше подходит для написания алгоритмов красноглазя ночами ненавидя свою основную работу?

matlab

Бугага.

/me .oO( Ну вот почему при слове «алгоритмы» у большинства людей возникает ассоциация «вычислительные алгоритмы»? )

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Что такое «вычислительный алгоритм» и чем он отличается от обычного? В матлабе есть и можно писать всякие. Или кто-то путает алгоритм с бизнеслогикой?

Reset ★★★★★
()
Ответ на: комментарий от Reset

Что такое «вычислительный алгоритм» и чем он отличается от обычного?

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

tailgunner ★★★★★
()

Занялся тут на досуге клепанием алгоритмов для известных науке P, NP, PSPACE итп-complete, проблем.

Тут сразу proof assistant бери, чтобы два раза не бегать.

olibjerd ★★★★★
()
Ответ на: комментарий от anonymous

Для слабаков - Паскаль. Для чотких пацанов - Оберон. Для быдла - все остальное.

Никлаус, ты?

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Бугага.

Если опустить тему вашего разговора, матлаб всё равно говнина адовая. Побочный эффект прошедшей всенародной любви к фортрану.

anonymous
()
Ответ на: комментарий от Reset

Ага, ещё это больше 1000 убитых человеколет.

anonymous
()

Как всегда «сообщество» погроммистов начинает своё общение: гав гав гав гав гав гав гав гав гав гав гав гав гав гав гав гав гав гав гав.

anonymous
()
Ответ на: комментарий от tailgunner

не дающая профита, необходимого для выживания в реальном мире.

чтоа? почему это? аргументируй. что в твоём понимании есть профит.

драйверы через функторы и TLS выглядят весьма годно. зацени реализацию ASN.1 и количество строк (почитай их бложик)

The entire ASN library comes down to ~1,700 lines of OCaml, with around ~1,100 more in tests, giving a mostly-complete treatment of BER and DER.

Its main use so far is in the context of the X.509 library (discussed yesterday). It allowed the grammar of certificates and RSA keys, together with a number of transformations from the raw types to more pleasant, externally facing ones, to be written in ~900 lines of OCaml.

вот кстати, список papers внушаить.

здесь из публикаций интересна например эта:

Open-Source and Cyber Warfare
Anil Madhavapeddy
in the NATO Science for Peace 2011 CSaP workshop, Wolfson College.

блин, зацени вектор развития и эту тему с мобильными камерафонами (а также «Limel: Local Computation and Linear Coordination» и обмен SDR акустическими сетями)

хостится поверх гипервизора, работает вот на этом

аргументируй. что в твоём понимании есть профит.
бложик, TLS, OpenSwitch и прочее — как бы уже не игрушка.

anonymous
()
Ответ на: комментарий от anonymous

мяу (was: Re: гав гав гав ко ко ко)

сабж сабж сабж

anonymous
()
Ответ на: комментарий от anonymous

и вообще на тему профита смотри decks — презенташки, хостящиеся с самого миража.

там выводы вполне убедительно описаны. таблички с графиками.

anonymous
()

В зависимости от степени ненависти к работе – python, что-то из семьи Lisp (например, Clojure крутится на JVM, чтобы не было совсем-совсем чуждым), haskell, forth. Последние три здорово прочищают мозги.

xenith
()
Ответ на: комментарий от anonymous

не дающая профита, необходимого для выживания в реальном мире.

чтоа? почему это?

Я не вижу, откуда ему взяться.

аргументируй.

Давай ты будешь аргументировать. Как-то так: «OpenMirage станет $SOMETHING, потому что $WHATEVER».

что в твоём понимании есть профит.

Уменьшение затрат на разработку и эксплуатацию приложений.

драйверы через функторы и TLS выглядят весьма годно

Ocaml вообще годный язык, но это не имеет отношения к OpenMirage (впрочем, это не мешает мне тоже читать их бложик).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

потому что $WHATEVER

потому что DSL. и MELANGE это пример как строится по DSL из спецификации протоколы интернетов. и TLS это пример аналогичный.

и даже драйвер сетевой карты — аналогичный пример. потому что одинаковый принцип.

но что более интересно — так это тот DSL, который делает их модульным. и то, что само униядро строится как функтор, комбинатор из таких вот DSL, сконфигурённый и построенный во время компиляции — см. про staged metaprogramming и специализацию времени компиляции.

killer-feature, выражающаяся в количестве строк на реализацию и минимальном профиле поверхности атаки.

и в составимости (composability) таких DSL.

Уменьшение затрат на разработку и эксплуатацию приложений.

сравни реализацию OpenSSL, причины появления Heartbleed и количество строк на реализацию похожей функциональности.

сравни один ключик configure --xen или configure --unix, который «за сценой» делает сборку под гипервизор на «голом железе» или внутри линаксов.

сравни деплой бинарников через GIT и загрузку в реальном времени по сети ядра из GIT-а.

это всё в эту тему. осталось только годный фреймворк для микросервисов написать, и сервер приложений — в приставке. а приставка в сети. а сеть в облаке. (утка в зайце, яйцо в утке).

anonymous
()
Ответ на: комментарий от tailgunner

somerandomidiot.com пишет у себя в бложике, что её девчачий wordpress пытались ломать боты. и знаешь что? она права. но! сложно сломать то, где ломаться нечему.

поэтому девачка с приставочкой хостится в мираже который хостится в облаке, обновляет всю приставочку с октопресс-бложиком через git и на досуге занимается фуззингом своей приставочки.

прикольно, ага. окамл — и для девочек тоже.

anonymous
()
Ответ на: комментарий от tailgunner

> не дающая профита, необходимого для выживания в реальном мире.

Я не вижу, откуда ему взяться.

какому именно профиту? хипсторы раскаиваются, бросают node.js, и массово переходят на rust (клабник пишет книжку не по рубям, а по ржавчине, гы), и на ocaml?

а затем столица переименовывается в нью-васюки и далее по тексту?

или какому профиту?

anonymous
()
Ответ на: комментарий от tailgunner

не дающая профита

посмотрим, возьмут ли профит с пинаты.

anonymous
()
Ответ на: комментарий от vada

Пример 1. При создании гибридного языка Дракон-Си необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Си. В этом случае Си является целевым языком.

Пример 2. При создании гибридного языка Дракон-Дельфи необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Дельфи. При этом Дельфи является целевым языком.

Пример 3. При создании гибридного языка Дракон-Фортран необходимо, в частности, создать транслятор из дракон-схемы в исходный код языка Фортран. В этом случае Фортран служит целевым языком.

Серьёзная штука. Для военных писалась, наверное.

ugoday ★★★★★
()
Ответ на: комментарий от anonymous

потому что DSL. и MELANGE это пример как строится по DSL из спецификации протоколы интернетов. и TLS это пример аналогичный.

и даже драйвер сетевой карты — аналогичный пример. потому что одинаковый принцип.

но что более интересно — так это тот DSL, который делает их модульным. и то, что само униядро строится как функтор, комбинатор из таких вот DSL, сконфигурённый и построенный во время компиляции — см. про staged metaprogramming и специализацию времени компиляции.

И каким образом из этого следует успех _unikernels_? Я вижу любопытные разработки на Ocaml. Еще раз: всё это - просто фреймворк на Ocaml... для чего - Си, Java, Python? Или для Ocaml?

Уменьшение затрат на разработку и эксплуатацию приложений.

сравни реализацию OpenSSL, причины появления Heartbleed и количество строк на реализацию похожей функциональности.

Прекрасно, ocaml-tls выиграл. Что дальше? Ocaml становится основным языком разработки ПО?

сравни один ключик configure --xen или configure --unix, который «за сценой» делает сборку под гипервизор на «голом железе» или внутри линаксов.

Сравнил. А теперь сравни, сколько профита дает запуск в виде unikernel, на голом Xen, по сравнению с запуском в Linux.

сравни деплой бинарников через GIT и загрузку в реальном времени по сети ядра из GIT-а.

Я вообще считаю, что Git говно, а деплой из Git - дело малограмотных хипсторов, но такой уж я немодный.

или какому профиту?

Что непонятно во фразе «уменьшение затрат»? Затраты - это деньги и время. Профит - тоже.

tailgunner ★★★★★
()
9 апреля 2015 г.

Какой ЯП лучше подходит для написания алгоритмов красноглазя ночами ненавидя свою основную работу? Может алгол86...

В какой то толстой книжке автор использовал ассемблер, вот прикол, да?

Deleted
()
9 мая 2016 г.
Ответ на: комментарий от Debasher

Классная щутка!

Какие шутки? Все очень серьезно. Просто императивное быдло почему-то называет обычные функции функторами.

Waterlaz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.