Цитата Сообщение от bigral Посмотреть сообщение
Как по мне дак самое главное в этом магическом "разные платформы" именно адресуемое пространство, сегодня 99.999% литературы по алгоритмам предпологают бесконечное адресное пространство ...
Короче, отвечая в лоб, если хочется чтобы твой компилер был одинаковый для всех, то сначала уровняй всех. Например напиши для всех 1 виртуальную машину, и компилер пиши для этой машины.
Для меня в этом магическом "разные платформы" главное - переносимость на уровне исходного кода. Язык высокого уровня и есть то, что позволяет писать, не задумываясь о том, на чём это будет запускаться.
Виртуальная машина тоже позволяет абстрагироваться от конкретного процессора. Создать такую виртуальную машину и писать программы на ассемблере для неё я уже пробовал, следующим этапом стал Паскаль. Который в том числе сможет генерировать код для виртуальной машины.
Цитата Сообщение от bigral Посмотреть сообщение
Отсюда вопрос - не пагубна ли сама идея: "сборка под разные платформы"? смысла практического ведь НЕТУ? Но вот под конкретную платформу сделать хороший инструмент, нужный людям! куда как более востребованное занятие, не зря народ жаждит update-a borland pascal под cp/m
Нет, не пагубна. Практичность/академичность действий понятие относительное. Например, вычисление тройных интегралов и числа Пи до 100-го знака на 8-битных процессорах может использоваться для тестирования процессоров и математических библиотек. Вполне практическое применение.
Мне интересна работа и устройство компиляторов и процессоров, Andrew771 делает инструмент под конкретную платформу, Oleg N. Cher'у нравится Оберон, кто-то запускает ARM Linux на 8-битных процессорах, а кто-то может заняться добавлением функций в дизассемблированную программу или написанием кодогенератора для FPC/GCC/etc.
Цитата Сообщение от Andrew771 Посмотреть сообщение
В моем компиле точно есть (дописываю на днях):
...
Это всё на уровне псевдокода? В момент генерации или отдельным проходом? Где и как при этом хранится псевдокод?

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