Смекни!
smekni.com

Реализация алгоритма на ЭВМ (стр. 2 из 2)

Если мы увидим фразу: "Стол съел карандаш", то без дополнительных комментариев она для нас бессмысленна, так как объекты реального мира, обозначаемые словом стол, не могут ничего и никого съесть. Таким образом, конструкции языка могут быть корректны синтаксически, а семантически - нет.

Итак, семантика - это отображение, соответствие между конструкциями языка и объектами из некоторого множества объектов, называемого миром или Universum. Так, в примере со столом, когда фраза, пусть даже синтаксически правильная, описывала ситуацию, не согласующуюся со здравым смыслом (столы не могут никого/ничего есть), мы рассматривали эту фразу как бессмысленную, т.е. семантически не корректную. Что же это означает применительно к языкам программирования?

Вспомним, что всякому алгоритму соответствует множество вычислительных процессов. Всякий вычислительный процесс - это цепочка состояний множества всех переменных этого алгоритма, а действие или шаг алгоритма определяет переход из состояния в состояние.

Поскольку программа - суть алгоритм, оформленный должным образом, то все вышесказанное справедливо и по отношению к программе. Вернемся к нашему примеру 9.1 и рассмотрим выполнение этой программы для n=5.

После выполнения строки 4 переменная n примет значение 5, а значения переменных s и i будут неопределенными. Обозначим это состояние так - (5, ", "). После строки 5 мы получим состояние (5, ", 0), затем (5, 1, 0). Вся последовательность состояний приведена на рис 9.3.

N строки n s i
" " "
4
5 " "
5
5 1 "
6
5 1 1
7
5 1 2
8
5 1+1/2 2
7
5 1+1/2 3
8
5 1+1/2+1/3 3
7
5 1+1/2+1/3 4
8
5 1+1/2+1/3+1/4 4
7
5 1+1/2+1/3+1/4 5
8
5 1+1/2+1/3+1/4+1/5 5
9
Стоп

Рис. 9.3.

Поскольку всякой программе соответствует множество вычислительных процессов, то всякий оператор определяет переход из множества состояний в множество состояний. Особенности, специфика этого перехода и составляет смысл, семантику этого оператора.