2010-11-14 3 views
1

Привет, Я ищу некоторую ориентацию или вариант ссылок. Я создаю компилятор, но я хочу, чтобы он обрабатывал разнородные типы (например, C struct). Массив однородный. Я хочу знать теорию, я знаю, что уже есть методы и методы, например, что-то изменить в таблице переменных и т. Д. Я нашел кое-что в книге Louden, но это не является полной = (объяснение это осталось в воздухе.Тип записи промежуточной генерации кода

Я погуглить, но я не знаю, как Google это ....

Я оценил бы некоторую ориентацию о том, как найти существующие теории и генерации кода, и такие.

язык STATIC типизированных

+1

Как набирается ваш язык? – Tobu

+1

И как память управляется? – Tobu

ответ

1

Если foo тип записи с полями a, b и c типов ta, tb и tc, тогда значение foo может быть представлено в виде фрагментаместимости для измерения размера sizeof(ta) + sizeof(tb) + sizeof(tc).

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

Теперь, если у вас есть значение x типа foo и доступ, например. поле b (путем написания x.b или независимо от синтаксиса вашего языка для доступа к полю) это можно скомпилировать до добавления sizeof(tb) по адресу x, а затем считывая значение типа tb по этому адресу.

Возможно, вы захотите добавить прописку, если тип записи имеет разные размеры.

И это все, что есть в основном.

Смежные вопросы