Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Три составляющие алгоритмического языка

Преобразование алгоритма в программу

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

1. Положить А = п, В = m.

2. Если А=В то перейти к п. 5, иначе — к п. 3.

3. Если А > В, то в качестве нового значения А принять А - В, а значение В оставить без изменения; в противном случае в качестве нового значения В принять В - А, оставив без изменения значение А.

4. Перейти к п. 2.

5. Принять НОД = А и прекратить вычисления.

Впрочем, по сути дела тот же самый алгоритм можно сформулировать и короче:

1. Принять А = п, В = m.

2. Пока А не равно В выполнять: если А > В, то положить А = А – В, иначе положить В = В - А.

3. Принять значение А в качестве НОД и прекратить вычисления.

Как видно, такой способ записи алгоритмов достаточно удобен и понятен для человека, но он имеет и весьма существенные недостатки. Во-первых, он громоздок и может быть излишне многословным. Во-вторых, по сути дела одно и то же указание словами можно сформулировать многими различными способами, а это таит в себе серьезную опасность неоднозначности понимания. В-третьих, такая достаточно произвольная формулировка алгоритма практически непригодна для автоматического — с помощью ЭВМ - перевода алгоритма на язык машины.

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

При написании программ на языке программирования высокого уровня используются определенные правила, основанные на понятиях языка.

Эти понятия принято выражать тремя составляющими:

· алфавитом;

· синтаксисом;

· семантикой.

Алфавит — это фиксированный для данного языка набор основных символов, т.е. "букв алфавита", из которых должен состоять любой текст на этом языке - никакие другие символы в тексте не допускаются.

Синтаксис - это система правил, определяющих допустимые конструкции из букв алфавита. С помощью "этих конструкций представляются отдельные компоненты алгоритма и алгоритм в целом, записанные на данном языке. Таким образом, для каждой цепочки (последовательности) символов синтаксис позволяет ответить на вопрос, является ли она текстом на данном языке или нет.

Семантика — это система правил истолкования отдельных языковых конструкций, позволяющих (при заданных исходных данных) однозначно воспроизвести процесс обработки данных по заданной программе.

Запись текста на любом алгоритмическом языке представляет собой строго линейную последовательность символов (литер), т.е. не допускается использование верхних и нижних индексов (записей типа х2 или ai, k), дробей вида а/b и т.п. Это требование связано, главным образом, с необходимостью ввода текста в память машины (в случае машинной его обработки, например с целью его редактирования или трансляции на какой-либо другой язык), а на современных ЭВМ любые вводимые данные должны быть представлены в виде линейной последовательности литер.

Каждый из алгоритмических языков имеет свои особенности в составе алфавита, синтаксиса и семантики.

<== предыдущая лекция | следующая лекция ==>
Компиляторы и интерпретаторы | Общая характеристика языка Турбо Паскаль
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 797; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.