Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika_shpory.doc
Скачиваний:
29
Добавлен:
21.04.2019
Размер:
726.02 Кб
Скачать

58. Программирование. Типы программирования. Классификация компьютерных языков по уровню.

Этап решения задачи на ЭВМ, состоящий из разработки программы в соответствии с алгоритмом решения задачи, ее отладки и дальнейшего развития программы в ходе ее применения называется программированием.

Программирование происходит всегда в некоторой конкретной программной обстановке, задающей тип ЭВМ, язык программирования и те или иные средства разработки программ.

Различают три типа программирования:

  • синтезирующее, предполагающее полное построение программы по заданной спецификации задачи или по общему алгоритму ее решения;

  • сборочное, опирающееся на библиотеке модулей или подпрограмм и состоящее в выборе подходящих модулей и их быстрой сборке в результирующую программу, решающую задачу из того класса, на который рассчитана библиотека модулей;

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

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

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

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

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

59. Принципы создания компьютерных языков (логическое, функциональное, объектно-ориентированное, процедурное программирование).

В настоящее время основными являются следующие классы языков программирования высокого уровня и, соответственно, подходов к программированию: процедурное программирование; функциональное программирование; логическое программирование; объектно-ориентированное программирование.

Процедурное программирование. Процедурный подход к обработке информации возник на заре программирования. Именно с этим стилем программирования связано все развитие вычислительной техники. Несмотря на прогресс технологии, большинство современных компьютеров построены по тем же принципам, что и машины 1940–х гг. В их основе лежит так называемая архитектура фон Неймана, названная в честь американского ученого Джона фон Неймана, впервые изложившего принципиальные положения строения ЭВМ.

Основные принципы этой архитектуры сост. в следующем:

  • ЭВМ состоит из процессора, памяти и внешних устройств;

  • единственным источником активности в ЭВМ является процессор, который, в свою очередь, управляется программой, находящейся в памяти машины (принцип программного управления);

  • память машины может быть представлена как последовательность дискретных ячеек, каждая из которых имеет свой адрес;

  • обработка информации происходит только в регистрах процессора; информацию в процессор можно ввести из любой ячейки памяти или внешнего устройства, или наоборот;

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

Имеется некоторая последовательность управляющих символов (команд), закодированная в двоичной либо другой форме, а также данных, закодированных в той же форме. Команды и данные различаются лишь способом интерпретации. Команды, располагаясь в оперативной памяти в некоторой последовательности и по определенным адресам, образуют программу. В этом случае можно выделить единый алгоритм функционирования любого вычислительного устройства фон-неймановской архитектуры. Упрощенно он выглядит так: 1. Извлечь команду из оперативной памяти; 2. Извлечь из памяти данные (операнды), требуемые для реализации команды; 3. Выполнить команду; 4. При необходимости сохранить результаты в памяти; 5. Вернуться к шагу 1.

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

Типы операндов: простой, массив, структуры. Типы операторов: присваивания, условных операций, итерации.

Программа, написанная на процедурном языке, явно указывает способ получения результата, но не сам результат. Существует большое число процедурных языков программирования. Это —Algol, Fortran, Pascal, С, Basic и др.

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

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

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

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

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

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

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

Определенное воздействие одного объекта на другой с целью вызвать соответствующую реакцию называют операцией. В объектно-ориентированных языках программирования операции называют методами. Можно выделить пять типов операций:

  • конструктор, создание и инициализация объекта;

  • деструктор, разрушающий объект;

  • модификатор, изменяющий состояние объекта;

  • селектор для доступа к переменным объекта без их изменения;

  • итератор для доступа к содержанию объекта по частям в определенной последовательности.

Основные идеи объектно-ориентированного подхода опираются на следующие положения:

  • Программа представляет собой модель некоторого реального процесса, части реального мира.

  • Модель реального мира или его части может быть описана как совокупность взаимодействующих между собой объектов.

  • Объект описывается набором параметров, значения которых определяют состояние объекта, и набором операций (действий), которые может выполнять объект.

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

  • Объекты, описанные одним и тем же набором параметров и способные выполнять один и тот же набор действий, представляют собой класс однотипных объектов.

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

Наиболее распространенными в настоящее время являются системы программирования Microsoft C++ , Microsoft Visual C++ и системы программирования фирмы Borland International.

Объем памяти — важная характеристика компьютера, она влияет на скорость работы компьютера и на работоспособность программ. Часть ОЗУ, называемая «видеопамять», содержит данные, соответствующие текущему изображению на экране.

ПЗУ используется для хранения данных, которые никогда не потребуют изменения. Содержимое памяти специальным образом «зашивается» в устройстве при его изготовлении для постоянного хранения. Из ПЗУ можно только читать.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]