Важная информация

User Tag List

Страница 2 из 10 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 100

Тема: Кодогенерация SDCC: пожелания об улучшении компилятора

  1. #11
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Чем чтение/запись определяется?
    Объявлением. Если ты написал const, значит 100% не будешь туда писать (компилятор не даст). Сумел обмануть компилятор- ССЗБ. А если не написал- значит туда будут писать.

  2. #12
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Сумел обмануть компилятор- ССЗБ.
    Ты уж расшифровывай, такие сокращения у нас не в обиходе.

    ССЗБ - Сам Себе Злобный Буратино.

  3. #13
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    >такие сокращения у нас не в обиходе.
    Зато на ЛОРе вполне себе употребимы =)

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

  4. #14
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    >такие сокращения у нас не в обиходе.
    Зато на ЛОРе вполне себе употребимы =)
    Не все здесь посещают ухогорлоноса.

  5. #15
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Вот как изначальном вопросе о надобности инициализации, зачем копировать, если данные уже лежат? Пиши - не хочу.
    Вот написал ты такое:
    Код:
    static char text1[] = "very long text string ...";
    static char text2[] = ... //то же самое
    и действующий по твоим заветам компилятор создаст две копии данных строки- использование общих данных будет невозможно. А при копировании сработает обычный string pooling.

  6. #16
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    >компилятор создаст две копии данных строки
    Дык в твоём примере это и подразумевается!
    >обычный string pooling
    Хотяяя... Как я понял погуглив(а попадалась увы одна *****я жаба), при string pooling'е если мы объявим char s1[]="bla-bla-bla";char s2[]="bla-bla-bla"; то они будут указывать на один адрес? Но тогда при объявлении их static как раз разные адреса и должны получиться?

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Дык в твоём примере это и подразумевается!
    Я имею в виду исходные данные для инициализации.

    Плюс к тому, код может физически располагаться в ПЗУ. Обрати внимание -сгенеренный код не использует самомодификацию.

  9. #18
    Activist
    Регистрация
    21.12.2005
    Адрес
    Kyiv/Ukraine
    Сообщений
    415
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кому реально нужно, есть "Feature request" и "Bugs" на трекере проекта.
    V6Z80P - Back for Good

  10. #19
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    106
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Вот написал ты такое:
    Код:
    static char text1[] = "very long text string ...";
    static char text2[] = ... //то же самое
    и действующий по твоим заветам компилятор создаст две копии данных строки- использование общих данных будет невозможно. А при копировании сработает обычный string pooling.
    Да, две копии. А разве не так и должно быть? Какое его сообачье дело, что я пишу в строках - разное оно или одинаковое? Зачем считать пользователя кретином, пишушим в разных строках одно и то же исключительно от невнимательности? Если я для второй строки захочу общих данных с первой, я напишу что-то типа
    static char *text2 = &text1[0];
    и не надо будет никакой самодеятельности компилятора.

    Большинство CP/M-компиляторов С, кстати, такой идиотской инициализации как в SDСС не имеют, и десятки лет на них прекрасно программируют. Кстати, последний SDCC не может собрать работоспособный код из исходников, прекрасно собирающихся при помощи hitech C 3.09 образца 1986 года. Я в итоге от SDCC отказался - устал подбирать его какашки.
    Последний раз редактировалось Error404; 22.08.2012 в 16:55.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #20
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,258
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Да, две копии. А разве не так и должно быть? Какое его сообачье дело, что я пишу в строках - разное оно или одинаковое? Зачем считать пользователя кретином, пишушим в разных строках одно и то же исключительно от невнимательности? Если я для второй строки захочу общих данных с первой, я напишу что-то типа
    static char *text2 = &text1[0];
    и не надо будет никакой самодеятельности компилятора.
    А как ты прокомментируешь возможность работы из пзу? Указатель на строку должен будет прямо в него указывать или таки в озу после предварительного копирования из пзу?

Страница 2 из 10 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. SDCC - Small Device C Compiler
    от Valen в разделе Программирование
    Ответов: 52
    Последнее: 06.04.2012, 20:44
  2. Конструктор для компилятора с Си
    от Raydac в разделе Программирование
    Ответов: 0
    Последнее: 21.12.2009, 23:14
  3. Пожелания ваще
    от svofski в разделе Эмуляторы отечественных компьютеров
    Ответов: 7
    Последнее: 01.09.2009, 18:27
  4. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  5. Пожелания по сервисам форума
    от andrews в разделе Форум
    Ответов: 10
    Последнее: 14.08.2006, 13:47

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •