В своих материалах я не раз упоминал типы данных, но объяснял их лишь частично. Типы вроде бы интуитивно понятны – число это один тип, строка это другой тип, они не похожи друг на друга. Однако в то же время они довольно иллюзорны и не являются тем, чем кажутся.
Поэтому я решил написать о них с самого начала. Предупреждаю – длинно и очень издалека.
Каков самый низкий уровень программирования? Это машинные инструкции, которые хранятся в памяти. Процессор читает эти инструкции и делает то, что они требуют. А требовать им особо и нечего. Они говорят процессору – возьми число по такому-то адресу, сложи с числом по такому-то адресу, помести результат в такой-то адрес, и так далее. На этом уровне нет никаких типов. Есть память, в памяти есть адреса и числа, и всё. И с появлением языков программирования ничего не меняется. Память у компьютера остаётся та же самая, числа в ней те же самые, процессор вообще ничего не знает о типах. |