Реферат: Реализация алгоритма на ЭВМ

Например, в Pascal'е есть понятие имени. Переменная, функция, процедура, равно как и программа на Pascal'е имеют имя. Синтаксис этого понятия “имя” - последовательность букв и цифр, начинающаяся с буквы.

Другой пример - синтаксис оператора присваивания. Примером оператора присваивания может служить конструкция s:=s+1/i из строки 7 на рис. 9.1. Синтаксис оператора присваивания:

<переменная>:=<выражение>.

Здесь синтаксическая конструкция <переменная> должна всегда стоять слева от символа := алфавита языка Pascal, а синтаксическая конструкция <выражение> - справа от него. Если мы теперь определим, что в каких-то случаях <переменная> есть <имя>, то тем самым мы определим синтаксис понятия "переменная", так как синтаксис понятия "имя" мы уже определили ранее. На семинарских занятиях Вы подробно ознакомитесь как с разными способами определения синтаксиса конструкций языка Pascal, так и с синтаксисом самих этих конструкций.

Несколько замечаний необходимо сделать о наборе символов, использование которых допускается в программе на языке Pascal. Наряду с символами латинского алфавита и цифрами в этот набор входит небольшое количество вспомогательных символов. Необходимо знать ограничения этого набора символов, определяемого стандартом ASCII - Американский Стандартный Код для Обмена Информацией.

В ASCII набор, например, не входят математические символы S, £, ", $ и т.д. Часто этот набор расширяют национальными алфавитами. Например, программисты в России должны иметь возможность писать комментарий по-русски.

Под семантикой той или иной языковой конструкции понимается ее смысл. Для примера рассмотрим фразу: "На столе лежит карандаш.". Мы знаем, какие объекты реального мира обозначаются словом "стол", какие объекты обозначаются словом "карандаш" и что обозначает слово "лежать". Заметим, что, например, слово "стол" обозначает сразу множество объектов реального мира, а не один какой-то конкретный объект.

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

Итак, семантика - это отображение, соответствие между конструкциями языка и объектами из некоторого множества объектов, называемого миром или 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.

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

К-во Просмотров: 232
Бесплатно скачать Реферат: Реализация алгоритма на ЭВМ