Другие языки программирования и технологии

Трансляторы, нужно пояснение

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

Альтернативные варианты организации элемента таблицы имен:
Динамическое выделение памяти под имена по мере надобности.

Что здесь хотят от меня? Как это вообще возможно писать трансляторы?
берём обычный ассемблер и показываем преподу )) Вот и есть транслятор.. .

А насчёт таблиц имён.. . уж не знаю чего хотят.. . вообще реально как я понимаю, заводится таблица имён, желательно индексированная (ведь в программе переменных и функций может быть уйма) , где каждому имени соотносится адрес в памяти (этим обычно линковщик занимается) . При распарсивании кода, если нашло имя - заменяет его на адрес.

Вообще однопроходные трансляторы это, мне кажется, не оправдано.. . Даже ассемблеры все не являются однопроходными.... отдельно пользуется транслятор (не в программу, а в объектный файл) , отдельно линковщик.. . Потому он уже как минимум двухпроходный :)

Динамическое выделение памяти под имена.. . используем страничную адресацию (или организуем её аналог).. . тогда табличка имён будет небольшая (так как память выделяется не отдельно под имя, а порциями) , а доступ удобный.. . А если это происходит под управлением нормальной многозадачной системы (что обычно в наше время) , то можно вообще это на шею системы повесить.. . и просто запрашивать у неё память точно так же порциями (по 4 кб например).. . и их писать в табличку.. .

Но не всё в вопросе мне очевидно.. . в некоторых местаз двузначно написано :)
Иван Борбот
Иван Борбот
42 952
Лучший ответ
В моем понимании транслятор- это антенна, которая передает радиосигнал ).
Валерий Победоносный Нет :) Здесь имеется введу перевод кода понятного человеку в машинный код :)

Похожие вопросы