Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
infoposobie2003.pdf
Скачиваний:
176
Добавлен:
27.02.2016
Размер:
960.96 Кб
Скачать

48

9. ЯЗЫКИ ПРОГРАММИРОВАНИЯ СОВРЕМЕННЫХ ЭВМ. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММ

9.1. Понятие программы

Общение людей друг с другом не отличается большой конкретностью, так, если кто-нибудь на улице спросит вас, где находится «Булочная», вы можете ответить: «Пройдите вон до того дома, и поверните налево». Или, показав рукой направление, сказать: «Вон за тем домом» и спрашивающему, в большинстве случаев, будет достаточно этого , чтобы найти нужный объект. Если бы мы обладали компьютерным мышлением, то нам нужно было бы объяснять дорогу более подробно, учитывая последовательность выполнения этой задачи. Например: «Вам необходимо сделать такое-то количество шагов, чтобы дойти до конца пятого дома, считая от того места, где мы находимся, затем совершить поворот на 90о влево и пройти еще 10 метров, затем, прочтя вывески на здании, которое окажется у вас по правую руку, идентифицировать (т.е. определить) «Булочную». и т.д.

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

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

9.2. Машинный язык и языки программирования высокого уровня

Машинный язык – это язык команд, которые может выполнять данная машина. Машинный язык определяется устройством и схемой компьютера. Каждый новый компьютер порождает новый машинный язык.

Если нам надо сложить два числа, хранящиеся в ячейках А и В, команду на машинном языке мы должны записать в виде трех элементов КАВ, где К - код (номер) операции «сложить», А и В (номера) ячеек памяти (ОЗУ), где хранятся слагаемые (операнды).

Но одних команд для работы ЭВМ мало, так как ЭВМ сама «не знает» никаких чисел, то все требуемые программой числа (константы), должны быть введены в память вместе с программой (это называется описанием констант). Например, при необходимости умножить что-либо на 5, в программе должен

49

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

Чтобы программировать на машинном языке, следует знать не только всю систему команд той ЭВМ, для которой пишется программа, но и ее устройство. Это нужно, прежде всего, для того, чтобы представлять, как будет она реагировать на ту или иную команду. Следует также следить, чтобы не «затереть» нужную информацию в памяти при отсылке результата в ОЗУ, ведь при этом уничтожается прежнее содержимое ячейки, куда записывается новое значение.

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

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

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

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

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

50

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

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

Рис.9.1

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

51

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

ФОРТРАН. Этот язык первый из самых распространенных и на сей день языков программирования. Создание этого языка было обусловлено необходимостью привлечения пользователей к составлению программ

Название этого языка составлено из сокращения двух слов ФОРмульный ТРАНслятор, т.е. формульный переводчик. Он был создан в 1956 году..

За более, чем сорокалетнюю историю ФОРТРАНА на нем было написано огромное количество прикладных программ, поэтому отказываться от этого языка нецелесообразно. Существует даже такой лозунг: «Настоящие программисты пишут только на ФОРТРАНЕ».

ВФОРТРАН-программе операторы не нумеруются и выполняются в порядке следования в программе. При необходимости изменения этого порядка, используются метки, поставленные перед соответствующими операторами.

Язык ФОРТРАН очень хорош для опытных программистов, хорошо владеющих математическим аппаратом, поэтому для тех, кто только осваивает азы программирования на основе языка ФОРТРАН был разработан язык Бэйсик (BASIC).

БЭЙСИК. Многоцелевой язык символических инструкций для начинающих. Научиться работе на языке Бэйсик можно за час. Но, несмотря на свою простоту, он позволяет решать сложные программы. Проблемы с применением этого языка могут возникнуть из-за большого количества его диалектов. Поэтому, переходя от одной машины к другой всегда нужно интересоваться особенностями Бэйсика для этой машины.

Все операторы Бэйсика нумеруются, и выполнение их происходит в порядке нумерации.

Внастоящее время существуют расширенные Бэйсики для решения очень сложных задач, имеющие, например, матричные операции, которые позволяют

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

АЛГОЛ. Этот язык был создан в 1960 году, поэтому его иногда называют Алгол-60, оказал большое влияние на развитие языков программирования. Этот язык применяют в научно-технических расчетах и научно-исследовательских работах.

Существует более поздняя разработка Алгола - Алгол-68. К алголоподобным языкам относятся языки Паскаль и Ада.

ПАСКАЛЬ. Этот язык - прямое развитие направлений Алгола, создан в 1969 г. Очень популярен в настоящее время. В связи с его простотой, его часто

52

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

АДА. Это язык создан в 1979 году, является следующим продолжением направления Алгола программировании. Его основное назначение программирование работы самых разнообразных систем управления на ЭВМ и вообще сложных программных систем. Создание больших программных систем затрудняется тем, что они ненадежны ввиду неизбежных ошибок, допускаемых при программировании. В Аде большое внимание уделяется обеспечению надежности программ даже в ущерб легкости их написания. Поэтому основным элементом программы на язык Ада являются подпрограммы. В отличие от других языков, где подпрограммы играют вспомогательную, в Аде они играют главную роль.

К более поздним разработкам алголоподобных языков относятся С и С++. КОБОЛ. COBOL – означает – Common Business-Oriented Language. .

Создан в 1960 году. COBOL - язык, ориентированный на экономическое применение, для обработки больших массивов данных. Кобол-программа выглядит как ряд предложений из английских слов, что значительно облегчает его применение пользователям-экономистам, администраторам и др., поэтому он пригоден для обработки деловой информации и используется в правительственных учреждениях, страховых компаниях, банках.

PL/1. Родился в результате попытки создания единого универсального языка программирования. Разработчики этого языка стремились совместить в нем все лучшее, что есть в АЛГОЛЕ и КОБОЛЕ. Главная цель его создания - иметь в языке средства, необходимые всем категориям программистов. Это очень мощный, но очень громоздкий язык. Этот язык может обслуживать программирование как экономических, так и научно-технических задач.

GPSS. GPSS означает «общецелевая система моделирования». Это язык высокого уровня, позволяет моделировать поведение вероятностных систем, например, систем массового обслуживания, вычислительных. Моделирование производится путем изменения состояния моделируемого объекта и сводится к генерации этих изменений, обычно, случайных. Например, моделируя процесс обслуживания в магазине, достаточно генерировать случайные времена появления покупателей и окончание их обслуживания.

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

декларативные (Пролог, ЛИСП) и процедурно-ориентированные (СИ, Бэйсик, Паскаль, Ада). Процедурно-ориентированные языки развиваются в

объектно-ориентированные.

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