User Tag List

Показано с 1 по 10 из 45

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

    Немного статистики.

    4900 строк, 127000 символов.
    17500 токенов, 60000 символов. (т.е. комментарии составляют половину текста)
    900 идентификаторов, около 100 килобайт для хранения.
    8200 узлов синтаксического дерева, около 600 килобайт для хранения.

    Не могу понять одну вещь. Почему так? Это особенность FPC или так и должно быть?
    Код:
    const
       c1:array [1..10] of byte=(0,1,2,3,4,5,6,7,8,9);
       c2:string='qwe';
       c3='qwe';
    var
       p:pointer;
    begin
       p:=@c1; // Ok
       p:=@c2; // Ok
       p:=@c3; // Error: Can't take the address of constant expressions
    end.

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

  3. #2

    Регистрация
    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?

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

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

Эту тему просматривают: 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

Ваши права

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