Новости it-компаний

IBM и Novell завершили сертификацию SUSE LINUX по новому, бо

News image

Компании IBM и Novell объявили о том, что система SUSE LINUX Enterprise Server 9 успешно пр...

IBM модернизирует процессоры Cell

News image

Процессоры Cell Broadband Engine, представленные общественности еще в далеком 2005 году, сегодня нашли широкое применение пр...

Авторизация



Развитие технологий:

Микропроцессор Intel 80386, 80486

В 1985 году появился Intel 80386SX и Intel 80386DX. Он открыл класс 32-разрядных процессоров. Микропроцессор Intel 80386 имел 275 тыс. тр...

Спецификации персонального компьютера

Под эгидой фирмы Intel, играющей ведущую роль на рынке микропроцессоров ежегодно проводится форум IDF (Intel Developers Forum), который определяет идеологию в ...


Дейкстра Эдсгер
История - Развитие программного обеспечения

Свой плодотворный вклад в теорию программирования Дейкстра сделал в 1968 г. в возрасте 38 лет. В небольшой работе под названием «Заметки по структурному программированию» он доказывал, что большинство программ неоправданно сложны из-за отсутствия в них четкой математической структуры. Состояние дел в области проектирования программного обеспечения вызывало на протяжении ряда лет беспокойство многих специалистов по вычислительной технике. Все чаше работы по созданию новых систем программного обеспечения для правительственных учреждений и промышленности стоимостью в миллионы долларов не уклады вались в заранее установленные сроки, а потом в процессе использования в них обнаруживались тысячи ошибок. Как раз в то время, когда Дейкстра писал свою работу, проходила международная конференция, на которой возникшая ситуация получила название «кризис программного обеспечения».

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

Как остроумно заметил один американский специалист по компьютерам, «если в вашей программе будет много операторов GOTO, то она станет похожа на спагетти».

Вместо операторов GOTO Дейкстра предложил использовать три типа управляющих структур: простую последовательность (т. е. группу операторов, выполняемых друг за другом), альтернативу (конструкцию, позволяющую выбрать один из двух или более возможных операторов) и повторение (конструкцию, позволяющую выполнять заданный оператор до тех пор, пока удовлетворяется некоторое условие).

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

Сначала идеи Дейкстры вызвали лишь усмешку среди программистов, не желавших отказываться от операторов GOTO. Однако в начале 70-х годов группа сотрудников фирмы IBM под руководством специалиста по системному программированию Харлана Миллса применила структурное программирование для создания информационного банка данных газеты «Нью-Йорк таймс». Работа над проектом шла на удивление гладко, а законченная программа практически не содержала ошибок.

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

Харлан Миллс заявляет: «Теперь мы можем делать то, что не могли делать 10-15 лет назад. Не думаю, что полеты «космического челнока» стали бы возможны без применения методов структурного программирования».

Важной вехой на пути широкого признания принципов структурного программирования стал 1975 г. В этом году Джон Кемени и Томас Курц, авторы самого демократичного языка программирования, дартмутского BASIC, провели ревизию своего детища. Они ввели в него структурные возможности и, по выражению Кемени и Курца, «выбросили оператор GOTO сразу и без всякого сожаления».

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

По словам Курца, увиденное привело его в ужас. Поэтому Кемени и Курц в содружестве с Американским институтом национальных стандартов (ANSI) принялись за разработку канонической версии языка для микрокомпьютеров. Эту версию они назвали «истинный Бейсик» (True BASIC).

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

К тому же, как указывал Дейкстра, тестирование может показать лишь наличие ошибок, но не их отсутствие.

Даже когда казалось, что программа полностью отлажена, новые входные данные могли вызвать отказ, или, как говорят программисты, «аварию».

Вместо того чтобы заниматься тестированием программ, Дейкстра предлагал проверять их математическими методами. Применительно к маленьким программам ему удалось добиться здесь определенных успехов, однако большие программы не поддавались таким приемам. С увеличением программы объем требуемого математического доказательства выходит из-под контроля.

По объему доказательство приближается к самой программе и также становится подверженным ошибкам. Дейкстра полагает, что для доказательства правильности больших про грамм математикам и программистам придется «на порядок увеличить свои способности к доказательству». Он признает, что эта задача трудно достижима, «но необязательно нереальна».

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

 


Читайте:


Добавить комментарий


Защитный код
Обновить

КОНРАД ЦУЗЕ. ПИОНЕР КОМПЬЮТЕРОСТРОЕНИЯ

News image

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

Кто на самом деле первым открыл транзистор?

News image

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

Жесткие диски для ноутбуков становятся тоньше

News image

На данный момент жесткие диски для ноутбуков могут быть толщиной 9,5 мм и 12,5 мм. Первые получили наибольшее распространение, а об...

Financial Times обещает iTablet уже в следующем месяце

News image

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

MacBU подытоживает две тысячи девятый год

News image

Как прошел 2009 год в компании, которую традиционно принято считать вторым крупнейшим разработчиков ПО для платформы Apple Macintosh? В Microsoft Ma...

VESA официально утвердила стандарт mini DisplayPort

News image

Презентованный Apple осенью 2008-го новый видеоинтерфейс mini DisplayPort (сокращенно mDP) вызвал неоднозначную реакцию, отголоски которой оставались различимыми вплоть до вчерашнего дн...

Планшетный Мак покажут 26 января?

News image

За несколько дней до начала нового 2010 года онлайн-пресса разразилась новым потоком слухов на тему планшетного компьютера Apple: сначала хорошо ос...

Внедрение 6-ядерных процессоров Intel Xeon может потребовать

News image

Изданию Fudzilla стали известны подробности по первому 6-ядерному процессору Intel Xeon. Он получит обозначение Core i7 980X, а его несущая тактовая ча...