Проблема, которую я вижу с Активными Записями, что это всегда примерно одно таблица. Это хорошо, пока Вы действительно работаете только с, что одна таблица, но когда Вы работаете с данными в большинстве случаев, у Вас будет некоторое соединение где-нибудь.
Да, соединение обычно хуже, чем никакое соединение во всем когда дело доходит до производительности, но , соединение обычно лучше, чем "поддельное" соединение первым чтением целая таблица A и затем использование полученной информации, чтобы считать и отфильтровать таблицу B.
Я не совсем понимаю, что вы подразумеваете под «концептуально наименьшим». Предположительно вас не интересуют минимальные машины Тьюринга или представления в лямбда-исчислении ? Если вы говорите о физических реализациях компилятора, то на самом деле вы говорите о компиляторе, который генерирует инструкции машинного кода. TCC , как упоминается в комментарии Энтони Миллса, является актуальным. Еще одно интересное обсуждение, которое должно иметь практическое применение, - это подробное описание компилятора начальной загрузки, написанного с нуля .
Некоторое время назад в группе новостей comp.compilers было интересное обсуждение , которое стоит проверить.
Вы не говорите, что такое целевая машина, или должен ли компилятор существовать или только воображаться.
В мире воображения я бы сказал, что адаптация Джона Маккарти метациркулярный интерпретатор LISP подошел бы довольно близко. Вы также можете посмотреть статью Джона Рейнольда Definitional Interpreters for High-Order Languages , которая, хотя и является плотной, является образцом простоты.
В мире реальности я бы сделал ставку на Chez Схема , но, к сожалению, компилятор машинного кода является закрытым и закрытым. Все еще, вы можете узнать у устного переводчика. Еще одна система, которую стоит изучить, - это компилятор Oberon , который был разработан и понят одним человеком, и он очень чистый.