johan
01.02.2012 13:45 Dům
Кстати, если кто-то владеет ссылками на статьи, где более-менее понятно объясняется для дебилов, в общих чертах, как это ваше сраное ООП, контексты видимости всей этой хуиты и прочее — реализуется на уровне команд сраному процессору — будет весело.
"Контексты видимости" это исключительно искусственные ограничения, для упрощения понимания индусам, равно как и классы, наследование и прочая муть. Классы, как и простые функции, передаются в процессор в виде адреса в памяти, и параметров (в регистрах, или в стеке, в зависимости от реализации). Класс на уровне процессора представляется грубо говоря списком адресов функций, содержащихся в этом классе.
оооо. дооооо. Т.е. ты тоже согласен с тем, что "развертывание классов" суть есть изменение там значения пары-другой десятков переменных? ;)
Но фразу "Класс на уровне процессора представляется грубо говоря списком адресов функций, содержащихся в этом классе.» не готов вот так сразу здесь понять.
Переменных тоже не существует, это тоже абстракция ;) Процессор умеет "сложить число по такому-то адресу памяти с содержимым такого-то регистра" и всё, ни про какие переменные он не знает. Компилятор, если грубо, берет твою программу, собирает список твоих переменных, функций, классов, составляет их список, прикидывает как их разместить в ячейках памяти, потом генерирует инструкции для процессора, где вместо переменных используются именно их адреса в памяти и регистры.