Ответ 1
Вы можете найти довольно подробное описание внутренних объектов OCaml в этом сообщении в блоге Джейком Донхэмом. Суть его в том, что поддержка объектов в основном реализована как внутренняя библиотека, причем в самом компиляторе имеется только немного логики (и, конечно, логика ввода текста в типе система), в основном вокруг эффективной отправки сообщений.
Я не эксперт в этой части языка, но после поверхностного осмотра похоже, что OCaml полагается на поиск методов в отсортированном методе (разрешен в слоты в таблице методов), с кешированием для метода называемый последним, и оптимизация статически известных вызовов, в частности, самообъявлений внутри реализации метода. Наконец, некоторые широко используемые функции (например, геттеры и сеттеры переменных экземпляров) распознаются и кодируются специально (введите impl во внутреннюю библиотеку OO), чтобы улучшить производительность и, возможно, что более важно, уменьшить размер кода.