# x = 1, y = 2
x = 0
y = x
print([x, y]) # [0, 0]
Переставляете две инструкции местами, и получаете [0, 1] ахаха
А вот спецификация этого всего, записанная в семантике языков формальных спецификаций наподобие TLA+, такого не допустит. В ней в принципе не существует условий для гонки чередований, и результатом всегда будет
Достаточно глубокое понимание, почему это так (dataflow-переменные например), появится после прохождения трека по вычислительным моделям (это рекомендации кстати европейской школы computer science). Сам удивляюсь, как темы, ещё лет пять назад выглядевшие совершенно академическими (но я тогда их принципиально добавил в Лабораторию), сегодня становятся реально прикладными.
