Есть ли упаковщики Си / Си++ исходного кода?

Тема в разделе "LANGS.C", создана пользователем AndreyMust19, 14 мар 2009.

  1. AndreyMust19

    AndreyMust19 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2008
    Сообщения:
    714
    Например, на www.javascript.ru есть возможность "упаковать" исходник на JS. Этот упаковщик:
    - убирает комментарии, все лишние пробелы и табуляцию.
    Но, к сожалению:
    - не дает переменным более короткие имена
    Смысл такой упаковки:
    1) Уменьшить размер исходников (н-р, чтобы на сайте или в tar.gz архиве они занимали меньше места)
    2) затруднение анализа алгоритма

    Вопрос. Есть ли в природе подобный упаковщик для Си / Си++ исходников?
    Одно из больших практических применений - ядро Linux'а и исходники UNIX-программ. Те, кому не нужно разбираться в алгоритме, а только компилировать, могут сэкономить до половины объема архива (или даже больше)!
    В Си / Си++ упаковщике также можно:
    - кроме переменных переименовывать типы на более короткие (н-р unsigned char -> uc)
    - заменять 0x3C на символ
    главное - не заниматься оптимизацией самого алгоритма!
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    это называется "препроцессор" cpp.exe
     
  3. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    AndreyMust19
    /offtop
    Слушай, почему бы тебе не заняться чем-нибудь человеческим? Вот где ты видишь, например, чтобы кто-нибудь занимался внедрением в обьективные файлы или сжатием исходников?
    Я серьезно, тебе не жалко своего времени?
     
  4. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    K10
    +10

    AndreyMust19
    вот тут http://wasm.ru/forum/viewtopic.php?pid=303827 чел занимается чемто подобным по духу. объединяйтесь
     
  5. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    нда.... выкладывать сорцы, но чтобы с ними никто не смог разобраться... странно все это
    вообще, как правило, сорцы в разы больше исполняемого файла (не касается делфи), т.к. в исходнике ты пишешь кучу имен и переменный, а компилятор превращает это в однобайтовые инструкции (сразу оговорюсь - имею ввиду асм, но, думаю, это применимо в определенной степени и к си, особенно с оптимизацией). Так вот, не проще ли бинарник выкладывать, а не морфить сорцы не ипать никому мосх?
     
  6. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    K10
    +100
     
  7. AndreyMust19

    AndreyMust19 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2008
    Сообщения:
    714
    K10
    www.javascript.ru, как уже сказал
    Не жалко. Если такой "упаковщик" есть, я его буду использовать.
    MSoft
    Не проще - бинарники не под все ОСи есть, равно как и портированные исходники.
    Кто больше?
     
  8. _int2e_

    _int2e_ New Member

    Публикаций:
    0
    Регистрация:
    1 мар 2009
    Сообщения:
    124
    кг/ам
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    AndreyMust19
    Если это чисто для уменьшения размера исходников, то бред, ибо архиваторы рулят.
    Если для обфускации, то другое дело, но это из другой оперы.

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

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    ну и какая разница - избыточность более менее пропадет
    и архиватор выдаст тоже самое

    если времени не жалко, то лучше на работу устроиться - там хоть узнаешь - в чем есть смысл, а что выглядит как душевное заболевание
     
  11. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Booster
    Или в ущерб гибкости, масштабируемости, переносимости, а часто и всё вместе взятое.

    Весь прогрессивный мир разработки думает над методиками снижения сложности проектов в целом, а тут человек ради каких-то призрачных сэкономленых байт готов увеличить сложность на несколько порядков. :)
     
  12. pas

    pas New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2003
    Сообщения:
    330
    Адрес:
    Russia
    Какой смысл выкладывать исходники без коментариев? Для проектов покрупней "hello word!" даже автор далеко не сразу разберется в программе через год после ее написания, тем более если удалить все коментарии и названия переменных (и видимо процедур/функций) приветси к виду V0012.
     
  13. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    AndreyMust19
    Тем чем ты озабочен, весьма хорошая задача. Но это возникает слишком, слишком не часто! Как правило программер работат на дядю и там есть система контроля версий и тут ему по "голове погладят" за такие дела или же он пишет на продажу софт, там исходники нет смысла таким образом "упаковывать", т.к. ему же их и саппортить. Возникает только тогда, когда контора вдруг не может справиться с задачей и просит стороннюю, но в договоре галочка "предоставить исходный код" и вот тут-то возникает задача как можно больше обфусцировать, но, насколько видел и слышал и учавствовал в программерских проектах, такого возникало на моей памяти только и только 1 разок!

    Вопрос: на кой икс надо тратить самого себя на пустяки ?
     
  14. AndreyMust19

    AndreyMust19 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2008
    Сообщения:
    714
    Booster
    W4FhLF
    Нет! Этот "упаковщик" исходников уменьшает размер самих исходников и убирает из них все то, без чего исходник спокойно скомпилируется (н-р, комментарии). В результате исходник становится меньше и архив, следовательно - тоже. Если не верите - возьмите любой Java-скрипт из HTML-страницы (с расширением js или css) и "упакуй" его на указанном сайте. А затем заархивируй то, что получилось и оригинал. Как говорится - ощути разницу в размере архива!

    Booster
    pas
    Помоему я уже говорил что это выгодно только для тех, кому надо только компилировать исходники, не разбираясь в алгоритме программы.
    EvilsInterrupt
    Я уже говорил что если такая программа есть, то я буду ее использовать.
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Для HTML это и правда может быть полезным.
     
  16. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Для JS такое обоснованно, т.к. он грузится при каждом сеансе (кэш не учитываем). Посмотрите в исходнике гугловских скриптов. Они на такой оптимизации экономят миллионы.
     
  17. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Зачем обфусцировать компилируемый кот?
     
  18. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    W4FhLF
    Для JS понятно, на автор ведь собрался С С++ сжимать...
     
  19. AndreyMust19

    AndreyMust19 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2008
    Сообщения:
    714
    _DEN_
    Например, по требованиям GPL-лицензии компания обязана выложить код своего продукта. А она не хочет им ни с кем делиться!!! И поэтому она обфусцирует выкладываемый код. GPL-лицензия не нарушена - код есть, а то что в нем фиг кто разберется - дело десятое.
     
  20. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    AndreyMust19

    Да, прикольно, я об этом как-то не подумал.