Привет, ЛОР!
Тащемта, вопрос. В x86-16 были near и far pointers, что позволяло экономить на размере указателя в ту глубокую древность. Почему этот концепт не попал в 64-битные архитектуры? Ведь с учётом локальности, делать все указатели 64-битными выходит в конский расход памяти при том, что большая часть бит указателей в рамках одного экземпляра структуры данных (допустим, связанный список или дерево) будут одинаковыми. А значит, можно сэкономить кучу памяти, сохраняя только последние N бит указателя и хранить полный указатель, например, только в заголовке структуры данных.
В общем, вариантов как это может облегчить жизнь просто вагон. Почему этого сейчас нет нигде?
Update:
Вообще, такой подход дохрена где применяется. Гуглить «succinct data structures». Например, вот это: https://web.archive.org/web/20160312010342/https://www.computer.org/csdl/proceedings/focs/1989/1982/00/063533.pdf
Но мой вопрос скорее про то, почему этого нет на уровне языков/компиляторов.