.
Р.Манекин
При первом знакомстве с человеком (особенно если это знакомство обещает быть долгим, прочным) принято справляться о его семье, об основных этапах его биографии, о приемлемом для него языке (способе) общения. Сегодня Вы знакомитесь с новым аппаратом – КОМПЬЮТЕРОМ. Почему бы Вам не поступить в этом случае аналогичным образом? А именно: постараться побольше узнать о том, что представляет из себя эта новая для Вас машина.
В разрешении этой проблемы Вам помогут первые разделы данного пособия.
§ I. Общие сведения об ЭВМ.
История ЭВМ насчитывает вот уже более полутора столетий. У истоков электронно-вычислительной техники стояли такие известные инженеры и исследователи, как Ч.Беббидж, А.Лавлейс (дочь Ч.Байрона), Дж. Буль, Ф.М.Слободской, В.Я.Слонимский, И.Штоффель, Ю.М.Дьяков, П.Л. Чебышев, Г.Холлерит, Атанасов, Айткен, др. Первая ЭВМ, обладающая всеми компонентами современного компьютера (промежуточной внутренней памятью, программным обеспечением, проч. - речь ждет о машине «EDSAC», изобретенной Дж.Эккертом и Дж.Моучли) была создана в 1947 г. в Пенсильванском университете (Англия). С тех пор сменилось уже три поколения ЭВМ, каждое из которых отличалось от другого целым набором технических характеристик. А именно:
I. своей элементной базой[1]
2. быстродействием[2];
3. объемом оперативной памяти[3]
4. математическим обеспечением;
5. внешними устройствами[4], [5], проч,
Сегодня существует уже несколько видов и несчетное количество модификаций (типов) ЭВМ, а общий объем парка ЭВМ превышает 109 машин.[6]
Большинство ЭВМ работает на основе двоичной системы счисления.[7] Что это такое?
Двоичной навивается такая система счисления, где есть только две цифры - ноль и единица.
Почему изобретатели ЭВМ отказались от привычной нам десятичной системы и перешли на иную?
Дело в том, что электронные системы, в которых электрический ток может находиться в двух состояниях (или он есть в цепи, или его нет), наиболее просты и надежны. Вместе с тем даже с помощью двух цифр - 0 и 1 - можно записывать числа любой величины, складывать их, умножать и делить. Любое сообщение, самое сложное, может быть выражено в двоичном коде в виде серии ответов типа «да» и «нет».
(Если сообщение записано словами, можно найти каждое слово в словаре, задавая такие вопросы: находится ли оно в первой половине словаря - да или нет? Далее: находится ли оно в первой половине этой части - да или нет? И так далее. И в этом случае слову будет соответствовать цепочка чисел типа 100111001. Для того, чтобы зaкодировать слово в словаре в четверть миллиона слов, достаточно самое большее восемнадцати вопросов с ответами 1 или 0 (поскольку 218 больше 250 тыс)).
Однако современные программисты, конечно же, не пользуются при написании своих программ двоичным кодом. Обычно они используют т.н. языки программирования - набор универсальных команд, легко усваиваемых человеком и «понятных» электронно-вычислительным машинам. Различают машинно-ориентированные языки программирования (или языки ассёмблерного типа) и языки программирования высокого уровня (алгоритмические, машинно-независимые языки).
Языки ассемблерного типа непосредственно «переводят» инструкции программистов в машинные команды. (Машинные команды различны для различных типов ЭВМ. Для их написания нужно хорошо знать «устройство» каждой конкретной машины, что с неизбежностью отвлекает специалистов от решения задач содержательного характера).
Алгоритмические языки предназначены для «промежуточного общения специалистов и электронно-вычислительных машин. Чтобы машина могла «понимать» алгоритмические языки, в памяти ЭВМ постоянно хранятся т.н. «трансляторы с языков программирования» - специальные программы-»переводчики» на язык машинных команд.
Среди языков высокого уровня различают процедурно-ориентированные и проблемно-ориентированные. К процедурно-ориентированным обычно относят универсальные языки (FORTRAN, PL-1, PASKAL, проч.); проблемно-ориентированные языки предназначены для решения узко специальных задач. Многие универсальные языки программирования часто используют для решения однотипных задач. Так, FORTRANприменяется при ведении вычислительных расчетов, PASKAL- для решения экономических задач, GPSS называют «языком моделирования», BASIС считается языком, упрощающим процесс пользования ЭВМ.
К настоящему времени количество официально зарегистрированных алгоритмических языков достигает двух тысяч. Из них широко распространены более 100. На овладение любым языком программирования подготовленному человеку требуется от нескольких недель до нескольких месяцев. Так что и Вы, немного потренировавшись, сможете самостоятельно выучить любой язык программирования, а затем и применять его при решении исследовательских задач.
Далее. Элементарные операции по работе с устройствами ЭВМ, по управлению ее ресурсами - все это операции очень низкого уровня. Работа пользователя на ЭВМ состоит из нескольких сотен или даже тысяч таких операций. Конечно, описывать каждую из них специально в компьютерных программах очень неудобно. Поэтому большинство современных электронно-вычислительных машин снабжены «встроенной» в память универсальной компьютерной программой, которая осуществляет управление устройствами ЭВМ, распоряжается ее ресурсами (оперативной памятью, проч.), запускает другие прикладные программы на выполнение и т.д.
Подобные программы называются операционными системами[8]. Основное назначение операционных систем состоит в том, чтобы скрыть от пользователя сложные и ненужные подробности управления машиной и предоставить ему удобный интерфейс (т.е. способ общения с ее устройствами).
Взаимодействие пользователя ЭВМ с операционными системами построено по принципу диалога. Практически это выглядит так: пользователь набирает на клавиатуре соответствующую команду - операционная система выполняет его инструкцию. Такой способ «общения» пользователя и ЭВМ ненагляден и недостаточно удобен, т.к. пользователь не имеет возможности корректировать свои действия. Поэтому программисты часто, наряду с операционными системами, вводят в память ЭВМ и т.н. «программы-оболочки». Функция этих программ состоит в том, чтобы выводить на экран монитора ЭВМ описания действий, которые производят операционные системы. С помощью «программ-оболочек» можно просматривать содержащиеся в памяти компьютера каталоги программ, копировать программы, запускать их на выполнение, др.[9]
При построении компьютерных программ принято придерживаться определенных правил[10].
А именно: создавая ту или иную компьютерную программу, следует учитывать тип ЭВМ, для которой она предназначена, программную среду, в которой она должна существовать, изобразительные средства избранного Вами языка программирования;
при программировании нужно строго придерживаться синтаксиса избранного языка программирования; избегать использования нестандартных и машинозависимых конструкций;
программирование имеет несколько этапов: постановка задачи, составление алгоритма решения задачи, построение блок-схемы, написание программы. Начинающий программист должен соблюдать принцип поэтапности программирования;
при составлении больших программ необходимо придерживаться принципа модульности, предписывающего разбиение текста программы на отдельные логически завершенные части - подпрограммы. Наличие подпрограмм позволяет легко исправлять допущенные ошибки, широко использовать пакеты прикладных программ, проч.
5. любая составленная Вами программа должна быть записана так, чтобы ее без труда мог прочесть другой программист. Поэтому наиболее удачные компьютерные программы всегда снабжены комментариями, различными справочниками, проч.
Соблюдение этих простых правил сделает созданные Вами программы эффективным средством как обучения, так и исследования.
* * *
Что же. Будем считать, что Ваше первое знакомство с КОМПЬЮТЕРОМ состоялось? Замечательно! Тогда начнем знакомиться с ним поближе. Но только вот еще что... Для того, чтобы научиться пользоваться компьютером, нужно работать на нем. Чаще всего при проведении историко-философских исследований используются персональные компьютеры. Например, типа IBM РC. Если в Вашем компьютерном классе есть эти машины - не стесняйтесь! Садитесь за клавиатуру! И давайте приступим к работе.
§ 2. Что такое программа?
Вообще говоря, компьютер - это не более, чем механизм, способный воспринимать и генерировать электрические сигналы. То, что придает смысл компьютеру и оправдывает его назначение, называется «программой». В расхожем смысле «программа» - это некоторая последовательность действий, которая может привести нас к желаемому итогу. Думается, что это определение в общем и целом не противоречит многочисленным определениям данного термина, представленным в специальной научной литературе. Из этого определения для нас сейчас важно то, что программа может привести нас к желаемому результату и то, что программу характеризует пошаговость. То есть то, что она cocтоит из определенного количества промежуточных действий, которые мы должны произвести, если хотим ее осуществить.
Компьютерным программам, в отличие от массы других (например, программы спецкурса по истории философии), присуща строгая формализация. То есть каждый наш шаг должен быть в ней выражен определенно и непротиворечиво. Такую возможность нам дают современные языки программирования. Наиболее простым для усвоения обычно считается BASIС, и поэтому начнем знакомство с созданием программ, опираясь на эtot язык.
Язык программирования состоит из набора команд, которые обычно именуют операторами. Давайте ознакомимся сейчас с некоторыми из них, а затем попытаемся составить из этих операторов небольшую программу.