Студопедия

КАТЕГОРИИ:


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

Системы программирования. Язык программирования высокого уров­ня содержит соглашения о наборе понятий, служащих для описания алгоритмов программ




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

Языки программирования с описанными выше свойствами называются машинно-независимыми. Отметим, что при повсеместном переходе на языки программирования программой стал называться текст на языке программи­ро­вания, а оттранслированная программа на машинном языке стала назы­ваться машинным кодом или программным кодом.

С самого начала вычислительные машины ориентировались на операциональный подход к построению программ. Во всех языках программирования программы состоят примерно из одного набора операций:

¨ операция присваивания;

¨ простейшие арифметические операции;

¨ операции сравнения;

¨ операторы условного и безусловного перехода;

¨ оператор вызова подпрограмм.

Соответственно структура операторов программы определена тремя переходами, которых достаточно для отражения структуры любых программ

¨ следование;

¨ ветвление;

¨ циклическое выполнение.

Все языки программирования предусматривают использование подпрограмм и модулей. И модуль, и подпрограмма – логически и содержательно независимые части программы. Использование модулей и подпрограмм имеет ряд преимуществ:

¨ повышение качества разработок за счет нисходящего проектирования программ (принцип детализации или декомпозиции программ);

¨ возможность модификации программ;

¨ упрощение отладки программ;

¨ использование готовых библиотек;

¨ возможность коллективного программирования.

В мире уже составлено огромное коли­чество программ, и очень многие из них имеют тождественные фрагменты, выполня­ющие одинаковые подзадачи. Наиболее типичные и употребитель­ные фрагменты уже написаны, отлажены и вставлены в трансляторы в форме так называемых стандартных процедур и функций. Из них составлены библи­о­теки, которыми программист может пользоваться (и обычно пользуется). Поэтому при трансляции программы, составленной программистом, не получается нормального кода: в нем нет тех стандартных функций, которые хранятся в библиотеках. Чтобы отличить такой промежуточный продукт от работоспособной программы, он помещается в файл с расширением.obj (подразумевается object), в то время как окончательный код получает расширение.exe (подраземевается execute). Соответственно компиляцией называется преобразование текста программы в obj-файл, в то время как образование exe‑файла путем сборки кода из нескольких фрагментов называется редактированием связей.

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

Кроме выполнения свойства адекватного представления алгоритмов, язык программирования должен способствовать написанию надежных программ и упрощать их сопровождение. Надежности программ отдается предпочтение даже перед легкостью написания. Достигается надежность во многом с помощью избыточности средств, используемых во многих языках. Например, использование типов в языке Pascal ограничивает операции с переменными и способствует своевременному выявлению ошибок.

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

Изложим схему профессионального программирования на языке высокого уровня. Обычно при решении отдельных задач или комплекса задач выделяются следующие этапы;

¨ постановка задачи, формулировка цели, условий и функций создаваемой программы;

¨ построение общей схемы программы;

¨ формальное (математическое) моделирование, состоящее в формулировке задачи и конструировании моделей данных;

¨ методическое решение задачи;

¨ разработка алгоритма в терминах некоторого языка (например, языка блок-схем или непосредственно языка программирования);

¨ составление текста программы;

¨ тестирование и отладка программных компонентов;

¨ документирование программ;

¨ опытная эксплуатация;

¨ внедрение программы для практического использования.

Проектирование программы представляет собой последовательное развертывание целей и функций создаваемой программы от общих к детальным с параллельной локализацией этих функций в отдельных модулях создаваемой программы. Методы проектирования делятся на ориентированные на процедуры и ориентированные на данные. В методах, ориентированных на процедуры, структура программы повторяет функциональную схему задачи, которую необходимо автоматизировать. Поэтому вначале определяется структура модулей программы для выполнения отдельных функций, определяется их взаимодействие. Данные описываются как часть взаимодействия модулей, исходя из целей этого взаимодействия. В методике, ориентированной на данные, в первую очередь надо определить структуры данных, дающих полное функциональное описание объекта. Процедуры обработки определяются согласно тем операциям, которые над этими данными в принципе могут производиться. Те функции, которые специфицированы для поставленной задачи, автоматически оказываются осуществленными.

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

Более современным считается первый подход, который получил название структурного программирования. На практике используется смешанная стратегия.

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

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

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

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

¨ текстовый редактор для написания и модификации текстов программ;

¨ транслятор текстов на данном языке;

¨ компоновщик программ;

¨ исполнитель программ;

¨ библиотека стандартных процедур и функций;

¨ отладчик программ.

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

В среду Turbo Pascal входит редактор текстов, пользуясь которым удобно набирать и модифицировать программы на языке Turbo Pascal (несколько расширенная версия базового языка Pascal). Одним нажатием клавиши текст программы можно откомпилировать и найти в нем все синтак­сические ошибки, причем эти ошибки будут выделены в тексте программы особым цветом. Нажатием другой клавиши можно собрать программу с помощью редактора связей. Третья клавиша запускает программу. В среде Turbo Pascal имеются очень мощные средства отладки программ. Например, возможно выполнять программу с остановкой после каждой выполненной команды, после чего есть возможность проверить зна­чения переменных, участвующих в текущей операции, и результат операции. Это позволяет с небольшими трудозатратами точно локализовать возмож­ные логические ошибки.




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


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


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



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




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