Способы организации одноуровневых
таблиц имен, функций работы с ними и эффективности использования раз-
личных методов их организации.
Альтернативные варианты организации элемента таблицы имен:
Динамическое выделение памяти под имена по мере надобности.
Что здесь хотят от меня? Как это вообще возможно писать трансляторы?
Другие языки программирования и технологии
Трансляторы, нужно пояснение
берём обычный ассемблер и показываем преподу )) Вот и есть транслятор.. .
А насчёт таблиц имён.. . уж не знаю чего хотят.. . вообще реально как я понимаю, заводится таблица имён, желательно индексированная (ведь в программе переменных и функций может быть уйма) , где каждому имени соотносится адрес в памяти (этим обычно линковщик занимается) . При распарсивании кода, если нашло имя - заменяет его на адрес.
Вообще однопроходные трансляторы это, мне кажется, не оправдано.. . Даже ассемблеры все не являются однопроходными.... отдельно пользуется транслятор (не в программу, а в объектный файл) , отдельно линковщик.. . Потому он уже как минимум двухпроходный :)
Динамическое выделение памяти под имена.. . используем страничную адресацию (или организуем её аналог).. . тогда табличка имён будет небольшая (так как память выделяется не отдельно под имя, а порциями) , а доступ удобный.. . А если это происходит под управлением нормальной многозадачной системы (что обычно в наше время) , то можно вообще это на шею системы повесить.. . и просто запрашивать у неё память точно так же порциями (по 4 кб например).. . и их писать в табличку.. .
Но не всё в вопросе мне очевидно.. . в некоторых местаз двузначно написано :)
А насчёт таблиц имён.. . уж не знаю чего хотят.. . вообще реально как я понимаю, заводится таблица имён, желательно индексированная (ведь в программе переменных и функций может быть уйма) , где каждому имени соотносится адрес в памяти (этим обычно линковщик занимается) . При распарсивании кода, если нашло имя - заменяет его на адрес.
Вообще однопроходные трансляторы это, мне кажется, не оправдано.. . Даже ассемблеры все не являются однопроходными.... отдельно пользуется транслятор (не в программу, а в объектный файл) , отдельно линковщик.. . Потому он уже как минимум двухпроходный :)
Динамическое выделение памяти под имена.. . используем страничную адресацию (или организуем её аналог).. . тогда табличка имён будет небольшая (так как память выделяется не отдельно под имя, а порциями) , а доступ удобный.. . А если это происходит под управлением нормальной многозадачной системы (что обычно в наше время) , то можно вообще это на шею системы повесить.. . и просто запрашивать у неё память точно так же порциями (по 4 кб например).. . и их писать в табличку.. .
Но не всё в вопросе мне очевидно.. . в некоторых местаз двузначно написано :)
В моем понимании транслятор- это антенна, которая передает радиосигнал ).
Валерий Победоносный
Нет :) Здесь имеется введу перевод кода понятного человеку в машинный код :)
Похожие вопросы
- Транслятор! Вопрос тем, кто знаком с данной темой. С чего начать написание транслятора с одного языка на другой?
- 16(в степени Х)бит=32 Мбайт. чему равен х????если можно с пояснениями и объяснениями!!!спасибо большое...
- кто можэт прочесть всё что я написал в пояснениях?
- люди где взять список всех операторов на С++ с пояснениями что каждый из них делает???
- Помогите пожалуйста, уважаемые программисты и сисадмины! При установке ХР выключается сист. блок, (чит. пояснения)
- Проблемы с копирование файлов с сиди диска на на диск D!!!!Срочно помогите!!!!Читайте дальше в пояснениях!
- что делать? ! забыла и имя пользователя и пароль, а экран заблокировался (далее смотрите пояснения...
- Скажите как в Excel сделать основным шрифтом TNewRoman! Пояснение внутри.
- Я делаю сайт.Подскажите,как сделать ,чтоб картинку не могли сохранить?подробнее-В ПОЯСНЕНИЯХ! помогите
- Как создать файл .exe, который запустит любой другой файл (В том числе и .exe)? !Прочитайте пояснения в вопросе!