Лучший способ хранения переменных в программе интерпретатора C++?
Помогите!!
В настоящее время я работаю над интерпретатором (с C++).
для хранения переменных я использую массивы структурного типа.
например, в случае целого числа,
typedef struct { char name[10]; int value; }myInt; myInt intArray[1000]; int myInt_index=0; //and when the interpreter reads that an integer is being defined, the following is //executed: { intArray[myInt_index].name= *name_specified_by_user*; intArray[myInt_index].value=(int)*some_value*; myInt_index++; }
но этот процесс не эффективен для памяти, и я знаю, что есть какой-то лучший способ сделать это, и я хочу знать, что это такое. Ваша помощь будет оценена по достоинству. Заранее спасибо.
С уважением
Ратул
Что я уже пробовал:
я попытался найти помощь в google.... но google, вероятно, не понимает, что я имею в виду.
Sergey Alexandrovich Kryukov
Это слишком много связано с общим дизайном вашего продукта. Я предлагаю, чтобы переменные хранились в некоторой структуре данных, представляющей контексты выполнения. Представление контекста и области действия, а также контекста потока для переменной стека является основной проблемой проектирования,а хранение самих переменных-вторичной. Важно понимать, что одно и то же имя переменной может использоваться в разных контекстах, поэтому их не следует путать, хранить как отдельные объекты.
—СА
Philippe Mori
Логотип может быть вашим детским языком... Логотип (язык программирования).
Philippe Mori
Вы также можете скачать этот PDF файл: Основы проектирования компилятора Как только вы прочтете эту книгу или другую книгу по проектированию компиляторов, у вас будет представление о том, как это сделать.