М.Ю. Харламов, ВНУ им. В.Даля, 2009. Таблицы идентификаторов Таблицы идентификаторов (символов) хранят все найденные идентификаторы и связанные с ними.

Презентация:



Advertisements
Похожие презентации
ЛАБОРАТОРНАЯ РАБОТА 1 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ ТАБЛИЦ, ИСПОЛЬЗУЕМЫХ В ТРАНСЛЯТОРЕ Рейн Т. С.
Advertisements

Введение в теорию компиляции Основные принципы построения трансляторов.
Переменная - это величина, которая имеет имя, тип и значение. Значение переменной может меняться во время выполнения программы. В компьютерах каждая переменная.
М.Ю. Харламов, ВНУ им. В.Даля, Семантический анализатор Семантический анализатор выполняет следующие основные действия: проверку соблюдения во входной.
Основы алгоритмизации Алгоритмы. Типы алгоритмов. Алгоритмы. Типы алгоритмов. Блок-схемы. Вопросы и задания. Вопросы и задания.
Хэш-таблицы и хэш-функции Лекция 3. Хеш-таблицы Для многих приложений достаточны динамические множества, поддерживающие только стандартные словарные операции.
Данные в языке. Данные это часть программы, совокуп- ность значений определенных ячеек памя- ти, преобразование которых осуществляет код. Промежуточные.
1 Лекция 5 Абстрактные структуры данных. 2 Таблицы Таблица – это набор элементов, содержащих ключ – отличительный признак для поиска элементов, и тело.
«Типы данных». Целочисленные типы данных Тип ДиапазонТребуемая память (байт) byte shortint integer word longint
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Переменная l. Определение Переменная - именованное место в памяти, в котором можно хранить некоторое значение.
Описание переменных в языке Visual Basic Презентацию подготовила учитель информатики МБОУ СОШ 3 г. Светлого Нетесова Н. А.
М.Ю. Харламов, ВНУ им. В.Даля, Генерация объектного кода это перевод компилятором внутреннего представ­ления исходной программы в цепочку символов.
Основные понятия программирования. АЛГОРИТМЫ + ДАННЫЕ = ПРОГРАММЫ Н. Вирт.
Необхідність структурування даних. Послідовне і зв ' язне розподілення даних в пам ' яті ЕОМ. Статичні і динамічні структури даних.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Горохова Светлана Николаевна МАОУ СОШ 19 п. Пироговский.
Переменные, величины Переменные, величины Типы, имена переменных Типы, имена переменных Хранение величин Хранение величин Переменные, величины Переменные,
Для вычислений в таблице с помощью встроенных функций Excel 2007 рекомендуется использовать мастер функций. Диалоговое окно мастера функций доступно при.
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Транксрипт:

М.Ю. Харламов, ВНУ им. В.Даля, 2009

Таблицы идентификаторов Таблицы идентификаторов (символов) хранят все найденные идентификаторы и связанные с ними характеристики в течение всего процесса компиляции, чтобы иметь возможность использовать их на различных фазах компиляции Основное требование - компилятор должен иметь возможность максимально быстрого поиска нужного ему элемента Тема 3. Организация таблиц идентификаторов

для переменных имя переменной тип данных переменной область памяти, связанная с переменной для констант: название константы (если оно имеется) значение константы тип данных константы (если требуется) для функций: имя функции количество и типы формальных аргументов функции тип возвращаемого результата адрес кода функции Тема 3. Организация таблиц идентификаторов

Списки (таблицы) T з ~ 0; Т п =O(N) Упорядоченные списки (таблицы) Т п = O(log 2 N) Бинарное дерево (узел – элементы таб-цы) Т з = N*O(log 2 N); Т п = O(log 2 N) Тема 3. Организация таблиц идентификаторов Последовательность идентификаторов: GA, D1, М22, Е, А12, ВС, F Последовательность идентификаторов: GA, D1, М22, Е, А12, ВС, F Ga D1 A12 E M22 BCF GaD1M22EA12BCF GaD1M22EA12BCF

Хеш-функцией Хеш-функцией F называется некоторое отображение множества входных элементов R на множество целых неотрицательных чисел Z: F(r) = n, r R, n Z Область определения хеш-функции - множество допустимых входных элементов R Множество значений хеш-функции - М Z, содержащее все возможные значения, возвращаемые функцией F Хеширование - процесс отображения области определения хеш-функции на множество значений Тема 3. Организация таблиц идентификаторов

Хеш-адресация заключается в использовании значения, возвращаемого хеш-функцией, в качестве адреса ячейки из некоторого массива данных Тема 3. Организация таблиц идентификаторов A1A1 A2A2 A3A3 F A1A1 A3A3 A3A3 Иденти- фикаторы Хеш-функция Таблица Поиск ? F Результат поиска

Хеширование обычно достигается за счет выполнения над цепочкой символов некоторых простых арифметических и логических операций = коду внутреннего представления в компьютере литеры символа Недостатки хеш-адресации неэффективное использование объема памяти под таблицу идентификаторов Необходимость разумного выбора хэш-функции Коллизии Коллизии - ситуация, когда двум или более идентификаторам соответствует одно и то же значение функции Тема 3. Организация таблиц идентификаторов

если для элемента А адрес h(A), вычисленный с помощью хэш-функции h, указывает на уже занятую ячейку, то необходимо вычислять значения функций n i = h i (A) до тех пор, пока не будет найдена свободная ячейка Тема 3. Организация таблиц идентификаторов h i =(h(A)+p i )mod N m h i =(h(A)+i)mod N m P i – вычисляемое число; N m - максимальное значение из области значений хеш-функции A1A1 A1A1 h(A 1 ) n 1 1. A 1 A1A1 A1A1 h(A 2 ) n 1 2. A 2 n2n2 A2A2 A2A2 h 1 (A 2 ) A1A1 A1A1 n1n1 3. A 3 h(A 3 ) n 2 A2A2 A2A2 n3n3 A3A3 A3A3 h 1 (A 3 ) h i =(h(A)*i)mod N m T п =O((1-L f /2)/(1-L f ))

Основная идея – использование «промежуточной» хеш-таблицы со значениями указателей на области памяти из основной таблицы идентификаторов Тема 3. Организация таблиц идентификаторов n1n1 n2n2 n3n3 n4n4 n5n5 A1A1 A1A1 - - H(A 1 ) 1. A 1 Free Ptr n1n1 n2n2 n3n3 n4n4 n5n5 A1A1 A1A1 H(A 1 ),H(A 2 ) 3. A 1 Free Ptr A2A2 A2A2 - - A3A3 A3A3 - - H(A 3 )