Ответ зависит от того, интерпретируется или компилируется язык, на котором вы работаете, а также от различных других деталей.Для скомпилированного языка, такого как C, ответ заключается в том, что компилятор, в то время как он переводит ваш код в машинный код (или ассемблер), имеет внутреннюю структуру данных, сообщающую, что представляет собой каждая переменная - каков ее тип, где она хранится и, возможно,другая информация тоже для целей оптимизации.(Но к тому моменту, когда ваш код на самом деле выполняется, эта информация уже исчезла; необходимо скомпилировать код, но не запускать его.)
Для некоторых интерпретируемых языков ответ заключается в том, что интерпретатор имеетпохожая структура данных, которая ищется всякий раз, когда используется переменная.Для других интерпретатор интерпретирует все переменные одинаково, но к их значениям прикреплена информация о типах.