2009-12-17 5 views
0

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

ответ

2

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