metaclass: (Default)
[personal profile] metaclass
Вот жеж страуструпъ намутил, блин.
const/не-const
указатель/ссылка/значение
куча/стек

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

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

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

Date: 2012-06-19 02:10 am (UTC)
From: [identity profile] nivanych.livejournal.com
У меня для кода микроконтроллеров чисто "сишная" часть получалась раза в полтора больше по объёму.
Сейчас бы, я бы смог сделать получше и было бы больше процентов на 20. Причём, _только_ из-за синтаксиса.
Если бы не поленился с Template Haskell, то можно было бы сделать так же или близко к тому.
В контексте видеокодеков — не знаю, неохота смотреть-вспоминать. Посмотрю пример ниже. Да и тебе тут виднее.

При управлении пачками шаговых двигателей по определённому нетривиальному сценарию, именно "мета" в смысле имитации высокоуровневых конструкций особенно и не была нужна, признаю. Для этого, надо сильно другую специфику.
Зато, было запросто строить свой EDSL с хорошими такими гарантиями корректности. И это было очень проще, чем в сишечке. И работать с получившимся было проще.
Что (не) получится упростить в кодеке, посмотрю.

Date: 2012-06-19 02:36 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Да, вот корректность - это то, в чем реально тут можно хорошо выиграть. В недавнем моем проекте-кодеке самые частые баги были - забыл счетчик инициализировать, забыл где надо увеличить или увеличил не на ту дельту.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 28th, 2025 02:18 pm
Powered by Dreamwidth Studios