2014-11-24 3 views
0

Я беру курс« Языки программирования: дизайн и реализация »и хочу знать, что означает« представление во время выполнения »на языках программирования?Что означает «представление во время выполнения» в языках программирования? »

+0

Не могли бы вы уточнить? Временное представление чего? В каком контексте используется используемая фраза и что именно вы не понимаете по этому поводу? – svick

+0

@svick Это также называется реализацией или представлением конструкций или представлением памяти во время выполнения, я не уверен, поэтому я спрашиваю. Он используется при изучении языков программирования: проектирования и реализации. Я не понимаю, что именно это означает, и его значение. – FortMax

ответ

0

Чтобы понять это, вам нужно помнить, что (современные) компьютеры знают только целые числа (в разных длинах: 1, 2, 4 или 8 байтов), числа с плавающей точкой IEEE (4 или 8 байт) и адреса памяти (указатели, 4 или 8 байтов).

Таким образом, если вы хотите иметь список, например, вы (или, по крайней мере, автор компилятора используемого вами языка) должны подумать о том, как будут отображаться списки (!) в память во время выполнения.

Одним из возможного представления элементов по отдельности связанных списков:

|________|________| 
DataPtr NextPtr 

Узел списка принимает два размера слова памяти смежно указателя, первый указуют на фактические данные, вторые точки слова к следующему списку узлу.

Есть две вещи, чтобы отметить здесь:

  1. Представление является весьма условным. Например, мы могли бы переключать данные и следующий указатель, и это будет другое представление, которое так же хорошо, как и первое.

  2. Рассмотрим представление времени выполнения кортежа или пары. Это может быть:

    | ________ | ________ |

    PtrFirst PtrSecond

    то есть, слова две памяти, которые содержат указатели на первый и второй компонент, соответственно. Звучит знакомо?

    Ну, как мы можем определить, представляют ли две последующие слова, содержащие указатели, пару или элемент списка? Мы не можем! Многие из наших абстракций данных будут в конечном итоге использовать одно и то же представление во время выполнения.