Чем полезна таблица символов при переводе с одного языка на другой? - PullRequest
0 голосов
/ 17 декабря 2009

В классе компилятора мы создали парсер для надуманного языка, который является упрощенной версией C. Все, что делает парсер, - это создает таблицу символов на основе ввода и завершает работу с сообщением об ошибке, если синтаксис неверен. Теперь нам нужно взять входной файл, написанный на этом языке, и преобразовать его в mips-код (фактически spim-код, который является mips для linux.) Зачем для этого нужна таблица символов? Можно ли это сделать без таблицы символов?

1 Ответ

2 голосов
/ 17 декабря 2009

Таблица символов сообщит на любых последующих проходах вашего компилятора, является ли какое-либо заданное имя (например, имя типа, именем функции, именем переменной и т. Д.). Как бы вы перевели C в ассемблерный код (или любые другие существенные манипуляции), не зная , что ?! Рассмотрим, например, X * Y; - умножает ли это X на Y или объявляет Y указателем на X? Вам нужно знать, называет ли X тип, чтобы устранить неоднозначность - что еще, кроме таблицы символов, может вам сказать?

...