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