User Tag List

Страница 5 из 5 ПерваяПервая 12345
Показано с 41 по 45 из 45

Тема: Рапределение памяти при работе компилятора ЯВУ

  1. #41

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну да,
    It is not possible to get the address of a constant, because they aren't stored in memory, you can try making it a typed constant.
    но всё равно не понимаю.

  2. #42

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    но всё равно не понимаю.
    При компиляции в код подставляется непосредственно значение константы, а не ссылка на ячейку с ней. Т.е., к примеру, если константа в ЯВУ задана ccc=2, то в компилируемом коде подставляется ld a,2, а не ld a,(ccc). А эта ссс вообще не записывается нигде. Поэтому и указатель на нее невозможно создать.

  3. #43

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    То есть если этой константе, которая явно string, не указать тип, то в памяти она не хранится?

  4. #44

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По-видимому, хранится непосредственно в команде в качестве аргумента.

  5. #45

    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот столько памяти компилятору нужно для обработки самого себя:
    Код:
    LEX
    before: 5382 lines, 143737 chars
    after: 18924 tokens, 64656 chars
    
    SYNTAX
    930 IDs // sizeof=70 bytes, total 65100
    677 vars // sizeof=14 bytes, total 9478
    188 subrs // sizeof=79 bytes, total 14852
    178 types // sizeof=32 bytes, total 5696
    8503 nodes // sizeof=71 bytes, total 603713
    Хранить синтаксическое дерево полностью не требуется, достаточно хранить только для одной обрабатываемой в данный момент подпрограммы, тогда оно займёт не более 30 килобайт.
    Плюс сам компилятор (на данный момент 50 килобайт, но будет больше).

    Итого, чтобы компилятор мог собрать сам себя на целевой системе нужна система с каким-то диском и минимум 256 кБайт RAM. IBM PC AT?

Страница 5 из 5 ПерваяПервая 12345

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

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

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

Похожие темы

  1. Построение компилятора
    от Andrew771 в разделе Программирование
    Ответов: 32
    Последнее: 04.05.2014, 19:16
  2. Кодогенерация SDCC: пожелания об улучшении компилятора
    от Oleg N. Cher в разделе Программирование
    Ответов: 99
    Последнее: 10.11.2012, 16:05
  3. Конструктор для компилятора с Си
    от Raydac в разделе Программирование
    Ответов: 0
    Последнее: 21.12.2009, 23:14

Ваши права

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