Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Языки программирования низкого уровня




Базовые алгоритмические структуры

 

Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Естественно, что при таком подходе к алгоритмам изучение основных принципов их конструирования должно начинаться с изучения этих базовых элементов. Для их описания будем использовать язык схем алгоритмов и школьный алгоритмический язык.

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

Характерной особенностью базовых структур является наличие в них одного входа и одного выхода.

1. Базовая структура следование. Образуется из последовательности действий, следующих одно за другим:

 

Школьный алгоритмический язык Язык блок-схем
действие 1 действие2 действие n  

 

2. Базовая структура ветвление. Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.

Структура ветвление существует в четырех основных вариантах:

· если-то;

· если-то-иначе;

· выбор;

· выбор-иначе.

 


Школьный алгоритмический язык Язык блок-схем
1. если-то
если условие то действия все  
2. если-то-иначе
если условие то действия 1 иначе действия 2 все  
3. выбор
Выбор при условие 1: действия 1 при условие 2: действия 2 при условие N: действия Nвсе  
4. выбор-иначе
Выбор при условие 1: действия 1 при условие 2: действия 2 при условие N: действия N иначе действия N+1 все  

 

Примеры команды если

Школьный алгоритмический язык Язык блок-схем
если x > 0 то y:= sin(x) все  
если a > b то a:= 2*a; b:= 1 иначе b:= 2*b все  
Выбор при n = 1: y:= sin(x) при n = 2: y:= cos(x) при n = 3: y:= 0 се  
Выбор при a > 5: i:= i+1 при a = 0: j:= j+1 иначе i:= 10; j:=0 все  

 

3. Базовая структура цикл. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:

 

Школьный алгоритмический язык Язык блок-схем
Цикл типа пока Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока.
нц пока условие тело цикла (последовательность действий) кц  
Цикл типа для. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне.
нц для i от i1 до i2 тело цикла (последовательность действий) кц  

 

Примеры команд пока и для

Школьный алгоритмический язык Язык блок-схем
нц пока i <= 5 S:= S+A[i] i:= i+1 кц  
нц для i от 1 до 5 X[i]:= i*i*i Y[i]:= X[i]/2 кц  

 


 

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

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

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

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

Более многочисленную группу составляют языки программирования высокого уровня, средства которых допускают описание задачи в наглядном, легко воспринимаемом виде. Отличительной особенностью этих языков является их ориентация не на систему команд той или иной ЭВМ, а на систему операторов, характерных для записи определенного класса алгоритмов. К языкам программирования этого типа относятся: Бейсик, Фортран, Алгол, Паскаль, Си. Программа на языках высокого уровня записывается системой обозначений, близкой человеку (например, фиксированным набором слов английского языка, имеющих строго определенное назначение). Программу на языке высокого уровня проще понять и значительно легче отладить.

К языкам программирования сверхвысокого уровня можно отнести Алгол-68, при разработке которого сделана попытка формализовать описание языка, приведшая к появлению абстрактной и конкретной программ. Абстрактная программа создается программистом, конкретная - выводится из первой. Предполагается, что при таком подходе принципиально невозможно породить неверную синтаксически (а в идеале и семантически) конкретную программу. Язык APL относят к языкам сверхвысокого уровня за счет введения сверхмощных операций и операторов. Запись программ на таком языке получается компактной.

Наиболее употребительными простыми языками являются PASCAL, C (более сложная версия — C++) и BASIC. Более сложные языки программирования — PL/1, ADA, MODULA-2. Прочие языки высокого уровня: COBOL, FORTRAN, ALGOL и т.д. PROLOG и PLANNER относятся к декларативным языкам программирования (декларативные языки позволяют формулировать сразу цель программы, а алгоритм ее решения строится автоматически).

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

 




Поделиться с друзьями:


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


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



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




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