§2 Разговор о программировании

2.1. Что такое программирование и программа?

Современный компьютер, как выше уже было отмечено, представляет собой сложное электронное устройство, воплощающее в себе вершины инженерной мысли конца второго тысячелетия. В его устройстве реализованы весьма оригинальные, даже разработанные другими компьютерами (!)[1], идеи. Использование большинства возможностей компьютера, вообще говоря, подразумевает знание особенностей работы многих его узлов. Но для большинства людей эти знания не являются необходимыми в повседневном труде (зачем бухгалтеру знать принцип чтения информации с компакт-диска или, например, устройство монитора?). Далеко не каждый человек мог бы полностью реализовывать свои идеи на ЭВМ, если бы не были разработаны специальные средства общения человека и компьютера, которые существенно облегчают диалог человека и машины.

Разумеется, существование таких средств общения предполагает наличие групп людей, эти средства создающих. Их называют программистами. Интуиция подсказывает, что программисты создают программы. А что же такое программа?

Компьютер, как и любое электронное устройство, работает по определенным законам и правилам. Эти правила должны быть описаны способом, доступным для понимания самими компьютером. Для пояснения приведу такую аналогию.

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

2.2. Для чего необходимо программирование?

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

·      практически вся современная космонавтика;

·      международные банковские операции;

·      всемирная компьютерная сеть (Internet) как средство общения;

·      управление самыми разнообразными технологическими процессами;

·      образование;

·      здравоохранение.

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

2.3 Как составляют программы для ЭВМ?

Все многообразие программ для ЭВМ сейчас принято делить на три большие группы:

=   системные программы;

=   прикладные программы;

=   системы программирования.

Разговор о первых двух группах можно вести практически до бесконечности. Это может быть темой большой отдельной книги. Предметом нашего разговора станут именно системы программирования, поскольку именно с их помощью человек заставляет работать компьютер “в нужном направлении”, то есть решать множество практических задач.

Под системой программирования понимают:

þ   транслятор языка программирования (о том, что это такое, будет сказано ниже);

þ   средства, предназначенные для облегчения и ускорения работы по созданию программы на данном языке программирования (текстовые редакторы, отладчики и т.д.);

þ   средства для организации дружественного интерфейса[2].

Система программирования - инструмент работы программиста на этапе создания и проверки программы.

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

Поскольку речь зашла о языках программирования, то необходимо указать, что понимают под этим словосочетанием. Язык программирования - фиксированная система обозначений для описания хода решения конкретной задачи. Языков программирования создано к настоящему времени несколько сотен. Часть из них (сравнительно небольшая) имеют универсальный характер (то есть предназначены для решения широкого круга задач), большинство же языков имеют более узкую направленность. Иногда для решения одной задачи может создаваться новый язык программирования. В качестве примера могу привести историю появления языка ДРАКОН (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Надежность). Этот язык был создан специально для обеспечения первого (и, к сожалению, единственного) полета МТКК[3] “Буран”. Вообще же, для обеспечения этого беспилотного полета было использовано пять языков программирования: Прол2, Диполь, Пси-Фортран, Лакс, Ассемблер. Дракон — результат объединения первых трех языков.

Узкая специализация была характерной чертой первых языков программирования (Фортран, Кобол, Алгол). По мере развития языков наметилась тенденция к их универсализации. Первыми универсальными языками считаются PL/1, Basic, Алгол-68, Фортран-77. В наше время наибольшее распространение получили языки Pascal, С, Basic, способные решать очень широкий круг задач.

2.5. Классификация языков программирования

Интересным является вопрос о классификации языков программирования. К настоящему моменту имеет смысл говорить о делении всех языков на императивные и декларативные. К императивным языкам относят Pascal, C, Basic, Фортран. К декларативным — Пролог и Лисп. Отличие императивных языков от декларативных состоит в том, что в императивных языках все инструкции компьютеру нужно “разжевывать”, вплоть до малейших деталей, а в декларативных языках компьютеру нужно логично объяснить смысл задачи, а уж с решением ее он справляется сам. Декларативные языки созданы для решения задач в области искусственного интеллекта и позволяют моделировать мыслительную деятельность. Кроме того, на декларативных языках “пишут” другие языки программирования (например, Basic или Pascal).

Можно провести классификацию языков программирования и по другому принципу. Сейчас принято говорить о языках разного уровня. “Родным” языком ЭВМ является язык машинных команд (ЯМК) процессора. Процессор понимает только ЯМК. Однако в работе он самый неудобный. Понятие уровня языка программирования связано с его удаленностью от ЯМК. Чем выше уровень языка программирования, тем ближе он к естественному человеческому языку и дальше от ЭВМ. ЯМК — язык самого низкого уровня. Первые языки, отличные от ЯМК, назывались Автокодами. Более известное их название — Ассемблер; ассемблер — язык среднего уровня. Еще более высокий уровень имеют языки Pascal, Basic, C, Фортран. На них сейчас работает большинство программистов. Последние несколько лет стали выделять языки сверхвысокого уровня. Такой язык имеет некоторые прикладные программы, например, электронная таблица Excel. Он предназначен для программирования решений задач в электронной таблице. Чем отличаются друг от друга языки разного уровня? Очевидно, что удобством использования. Ведь чем выше уровень языка, тем ближе он к естественному человеческому языку, а значит с ним легче работать. Но за все надо платить: программы, составленные на языках высокого уровня, работают медленнее, чем программы, созданные с помощью ассемблера или ЯМК.

 



[1] Если вас интересуют подробности, я могу рассказать об этом в перерыве между занятиями.

[2] Характерными чертами программы с дружественным интерфейсом является удобство работы с ней и эстетичность оформления.

[3] МТКК — многоразовый транспортный космический корабль.

Используются технологии uCoz