metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-06-17 01:33 pm

Крестики же.

Вот жеж страуструпъ намутил, блин.
const/не-const
указатель/ссылка/значение
куча/стек

[identity profile] blackyblack.livejournal.com 2012-06-18 06:34 am (UTC)(link)
За этим добром вам в другую очередь.

[identity profile] aamonster.livejournal.com 2012-06-18 08:29 am (UTC)(link)
В общем, есть дофига языков, которые для метапрограммирования на си с классами лучше, чем встроенный язык темплейтов =)

[identity profile] nicka-startcev.livejournal.com 2012-06-18 09:10 am (UTC)(link)
апи получается кривое и логорейное, что-то типа CreateFileEx("filename.ext"; FILE_MODE_READ | FILE_MODE_WRITE, NULL, NULL, NULL, NULL, NO_WANT_SHARE).

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

[identity profile] nicka-startcev.livejournal.com 2012-06-18 09:15 am (UTC)(link)
в ембеддед, как и в обычном программировании, можно делать что угодно и как угодно, просто результат вылезет быстрее. эмбеддед - это не только 8-битки, но и полноценные 32-битные линупсы и даже банкоматы на писюках с винХР внутри и адом типа ИЕ для оболочки.

[identity profile] nicka-startcev.livejournal.com 2012-06-18 09:17 am (UTC)(link)
крестики надо уметь готовить.
Если задача чуток громоздковата для ассемблера, то иногда, оптимально взять именно крестики. Точнее, общее подмножество С и С++.

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

[identity profile] nicka-startcev.livejournal.com 2012-06-18 09:25 am (UTC)(link)
производительность потокового вывода никакая получается. Переписывание на сишный-файловый, типично, дает ускорение в 3-30 раз.

[identity profile] nivanych.livejournal.com 2012-06-18 09:36 am (UTC)(link)
Что такое WinAPI, к сожалению, я в курсе.
Ну так в этом случае, делаются слова с небольшим числом параметров, для наиболее частых применений.
Какие-то из слов могут включать параметр уже в названии, например.
Правда, признаюсь, что с написанием приложений на форте под win я только игрался, да и было это 10 лет назад.

[identity profile] blackyblack.livejournal.com 2012-06-18 09:43 am (UTC)(link)
Я к тому, что кое-где конст указывает размещать данные во флэше.

[identity profile] nicka-startcev.livejournal.com 2012-06-18 09:47 am (UTC)(link)
а. тоже верно. А кое-где строки и так всегда конст, а кое-где развесистая система атрибутов.

[identity profile] thesz.livejournal.com 2012-06-18 10:33 am (UTC)(link)
Как макроассемблер Форт идеален, натурально.

На нём вполне можно писать ассемблеры и макросы к ним.

А Никите я отвечу.

[identity profile] thesz.livejournal.com 2012-06-18 10:34 am (UTC)(link)
И, кстати, Никита сам сказал, что так (10+ параметров) делать не стоит.

[identity profile] nivanych.livejournal.com 2012-06-18 11:03 am (UTC)(link)
Помнится, когда я летом бы на школе-конференции по алгебраической геометрии, у меня была очень короткая "причёска".
Так и не сделали, но была мысль картинки-фотографии в жанре демотиватора с подписью "Моноидальные замкнутые категории есть? А если найду?"
Некоторая ирония тут в том, что почти где угодно в программировании их можно найти.

[identity profile] nivanych.livejournal.com 2012-06-18 11:04 am (UTC)(link)
In Soviet Belarus, поциент проводит терапию над врачом.
Если ему не лень, конечно.

[identity profile] nivanych.livejournal.com 2012-06-18 11:06 am (UTC)(link)
Я согласен!

[identity profile] nivanych.livejournal.com 2012-06-18 11:14 am (UTC)(link)
Это неправда.
Во-первых, для _кодогенерации_ не нужно глубогокого описания семантики.
Во-вторых, описание некоторого подмножества сишечки не так и сложно.
Я сам лично пробовал таким вот образом низкоуровневого программировать, и получалось куда прикольнее C++. Тогда я активно работал с C++ и ещё мог оценить...
Получаются относительно нормальные макросы, взамен всяких там <>.
И уже дальше, при желании, если задача большая и сложная, то моожет быть, и стоит моделировать глубже. Вот там уже и возникнут, вероятно, и пачки монадных и даже стрелочных трансформеров. Но и без этого, получается ничуть не хуже C++.
Типаа, в C++ это всё так замечательно типизровано, что ли??...
Это у меня было, приблизительно, в эпоху, когда только-только в GHC сделали инфиксную запись типов и вот уже включали в новый GHC. Помню потому, что помню, как радовался ;-)

[identity profile] guamoka.livejournal.com 2012-06-18 11:23 am (UTC)(link)
http://stackoverflow.com/questions/605839/c-and-c-file-i-o

лично мой тест по замене endln на \n и увеличение числа итераций до 10М показал одинаковое время в 4s.

[identity profile] guamoka.livejournal.com 2012-06-18 11:25 am (UTC)(link)
in the eye of the beholder

[identity profile] guamoka.livejournal.com 2012-06-18 11:32 am (UTC)(link)
К счастью, ни рынок, ни индустрия не знают, что "это говно уже вымерло". Ровно как и айседа не знают:-)

[identity profile] nicka-startcev.livejournal.com 2012-06-18 11:39 am (UTC)(link)
некоторые фанаты буста (не буду показывать пальцем, но это авторы Опенскад) генерируют в памяти дикого размера xml (размер до 2 гб, время генерации до получаса) потом скармливают его библиотеке и библиотека считает срез примерно за время до 10 минут.

[identity profile] metaclass.livejournal.com 2012-06-18 11:50 am (UTC)(link)
Гитхаб есть? А если найду?

[identity profile] guamoka.livejournal.com 2012-06-18 12:10 pm (UTC)(link)
Это нам в Турции мыло втюхивали левое. "Вот паглады дарагой, и веб сайт тут напысан! У ных ВЕБСАЙТ есть!"

[identity profile] thedeemon.livejournal.com 2012-06-18 03:10 pm (UTC)(link)
Сгенерить код "шоб работало" сравнительно несложно. А вот видеокодек так писать, придется массу подробностей указывать - тут выравнивание, тут интринсик, тут столько битов в арифметике, тут столько, тут на стеке массивчик, тут еще что. Сокращения кода не ожидается, только синтаксис многословнее.

[identity profile] thedeemon.livejournal.com 2012-06-18 03:14 pm (UTC)(link)
Собсно, чего далеко ходить. Вот очень простой но реальный кодек:
http://ffmpeg.org/doxygen/trunk/msvideo1_8c-source.html
Что тут сильно упростится при генерации его из хаскеля?

[identity profile] nivanych.livejournal.com 2012-06-18 03:49 pm (UTC)(link)
Если говорить про написание на чистом си, ну или подмножестве, которое эмулируем — да, даже близкого по объёму кода добиться сложно.
А если говорить про C++, о чём и начали разговор, то все его возможные мета-хрени будут выглядеть куда проще.
И дело вовсе не в выравнивании и битах в арифметике.

[identity profile] thedeemon.livejournal.com 2012-06-18 04:42 pm (UTC)(link)
Ну вот, сэкономим на метахрени, проиграем на основной массе кода. Речь про генерацию зашла в контексте видеокодеков, там метахрени мало, а банальной арифметики много.

Page 6 of 7