Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 8
Текст из файла (страница 8)
Для получения информации он должен был подсоединиться к соответствующему серверу. Для этого использовались протоколы ге!пег и протокол передачи файлов ЕТР (!!!е ггапз!ег ргогосо1). Протокол ге!пег позволял на компьютере пользователя эмулировать удаленный терминал сервера, что позволяло пользователю непосредственно общаться с удаленным сервером, в то время как протокол ГТР просто позволял клиентской машине посылатл файлгв на сервер или получать пх с сервера. В обоих случаях пользователь должен был знать, на какой именно машине находится необходимая ему информация. В то же самое время был разработан третий протокол — простой протокол передачи сообщений (ЯМТР— Я!шр!е Ма(! Тгапэ(ег Рготосо!).
Протокол 8МТР— основа сегодняшней электронной почты. Каждый пользователь имеет локальное регистрационное имя на клиентской машине, а каждая машина имеет уникальное собственное имя (например, шчг — регистрационное имя автора этой книги, а аз~оп.сзшшо.едц — уникальное собственное имя машины, подключенной к Интернету). Послать сообщение можно, используя п!юграмму, поддерживающую протокол ВМТР, и зная пмя пользователя и имя машины, на которой он зарегистрирован (например, шчг9аагоп.сг.цш0.ег!о). Здесь важно отме~ить, что, как правило, нет необходимости знать точный адрес компьютера, на котором зарегистрирован данный пользователь (например, достаточно использовать адрес шчгфсз.
шпо.ей о). Нет никакой необходимости знать точный адрес машины в Интернете. В конце 80-х основной целью стало упрощение поиска информации в Интернете. Прорыв в этом направлении осуществился в Европейском институте ядерных исследований (СЕЙМ), находящемся в Женеве (Швейцария). Вернере-Ли (Вегпегз!.ее) разработал концепцию гиперссылок в рамках языка НТМ Е (Ну!югТехг Магкнр !.апйнайе) как способа навигации в Интернете. После создания в 1993 г. ~чеЬ-браузера Мозагс и добавления к Интернет-технологиям протокола передачи гипертекстов НТТР (НурегТехг Тгапз1ег Ргогосо)) наконец-то произошло открытие Интернета для широких слоев населения.
К концу ХХ столетия изменилась целая структура поиска информации и получения знаний, гак как наличие доступа к Интернету (имеющегося у значительной части населения) позволяет отьк:кивать необходимые сведения в любом уголке Всемирной паутины. Влияние на языки программирования. Появление Всемирной паутины (%'~Ча†Ч'ог1г) ЮЫе %еЬ) вновь изменило роль языков программирования. Вычисления снова стали централизованными, но существенно иным образом, нежели в раннюю эру универсальных компьютеров. По всему миру создаются крупные серверы информационных архивов.
Для получения информации пользователи подклю- 30 Глава 1, Проблемы разработки языка чаются к этим серверам через Интернет, а для ее обработки (например, для создания отчета) используют локальные клиентские машины. Вместо того чтобы распространять миллионы копий нового программного обеспечения, поставщик может просто вьшожить продукт на сайт %'Ъ"Ю, а пользователь может загрузить его себе на машину для локального использования.
Чтобы пользователь мог загрузить программный продукт, а поставщик программного обеспечения имел возможность получить плату за использование этого продукта, необходим язык программирования, позволяющий вести дишюг между клиентским компьютером и сервером. !'азнитие электронной торговли напрямую зависит от наличия языково такими возможностями. Изначально тгсЬ-страницы были статическими: можно бьшо просмотреть текст, рисунки или графики. Для доступа к другой странице пользователь мог щелкнуть на се адресе ПК1.
(()Ыогш Кезопгсе 1 осагог), Однако для развития электронной коммерции информация должна передаваться в обоих направлениях между клиентской машиной и сервером, поэтому шеЬ-страницы должны были стать более активными. Подобные возможности обеспечиваются такими языками программирования, как 1'ег! и )ага. Использование ЪУЪ''гт' поставило перед языками такие проблемы, которые не были оченндны в предыдущне две вры. Одна из них — безопасность. Посетитель в сЬ-сайта должен быть уверен в том, что его владелец пе имеет злого умысла и не испортит клиентский компьютер, удалив с него информацию.
Эта проблема, характерная для систем с разделением времени, отсутствует для персональных компьютеров, к которым, в принципе, имеет доступ только сам пользователь. Следовательно, доступ со стороны иеЬ-сервера к локальным файлам пользователя должен быль ограничен. Еще одна важная проблема — производительность. Хотя персональные компьютеры стали очень быстроденствующими, линии связи, соединяющие пользователя с Интернетом, как правило, имеют ограниченную скорость передачи, Вдобавок, хотя сами машины достаточно быстры, при подключении к серверу достаточно большого количества пользователей он может оказаться перегружен. Чтобы избежать возникновения таких ситуаций, можно обрабатывать информацию на клиентской машине, а не на сервере.
Чтобы разгрузить сервер за счет клиентской машины, он должен переслать клиенту небольшую исполняемую программу. Проблема состоит в том, что сервер не знает, каким компьютером является клиентская машина, поэтому не ясно, какого вида должна быть исполняемая программа. Далее мы подробно рассмотрим язык )ага, который был специалыш разработан для решения этой проблемы. 1.2.3. Области применения Выбор подходящего языка программирования для решения той или иной задачи часто зависит от того, к какой предметной области она приналлежпт.
Спектр языков программирования, применяемых для решения прикладных задач из различных предметных областей, за последние 30 лет претерпел значительные изменения. В табл. 1.1 подведены итоги использования различных языков программирования в различных предметных областях и в разные периоды. 1.2. Краткая история языков программирования 31 Таблица 1.1. Использование языков в различных областях Период Область применения Основные языки Другие языки Аззетшег АЬООЬ, ВА81С, АР1. доу1А~., Еодл ЗНОВОь С, Р11! 4ОЬз СОВОь ЕОВТВАН Азветыег 'ь!ЗР СОВО1., С++, бзчз, зргевбзпее! ЕОВТВАМ, С, С++, ,!вча С, С»»,,3вча Обработка деловой информации Научные вычисления Системная область 1980-е гг.
Искусственный интеллект Обработка деловой информации Настоящее время Научные вычисления ВА81С Аба, ВАЗ!С, Мобц1а Системная область Искусственный интеллект Издательская деятельность ЫЗР Рго1оц ТеХ, Роз1зспр1, текстовые процессоры ОН1Х, зьв!1, ТС1, Рег!, ЗзчаЗспр! М1., Зпзв11! вж Создание процессов АЧЧК, Мвгче1, ЗЕО Новые парадигмы Еиеа Приложения 60-х Программные приложения, которые в 60-е гг, интенсивно разрабатывались, можно разделить на четыре основных типа: обработка деловой информации, научные вычисления, системное программирование, системы искусственного интеллекта. Приложения для обработки деловой информации. Большинство приложений этого типа, сегодня чаще называемых бизнес-приложениями, было предназначено для обработки огромного количества данных и выполнялось на больших чжелезных» универсальных машинах (Ыд !гоп гло1п~гитвз), Класс приложений этого типа включал в себя программы для учета поступления заказов, управления ресурсами и персоналом, а также для начисления зарплаты.
Они были предназначены для считывания больших объемов данных, собранных за длительный период времени и хранящихся на магнитных лентах, и созданию новых данных, обновленных в результате незначительных преобразований. Чтобы понять, как это выглядело, посмотрите любой научно-фантастический фильм 60-х гг. Крутящиеся бобины с лентами в этих фильмах служили символом современных компьютерных технологий. Для создания таких приложений был разработан язык СОВ01. Разработчики этого языка приложили немало усилий, чтобы обеспечить корректную обработку данных.
Класс бизнес-приложений включает в себя также деловое планирование, анализ риска и оценку возможных вариантов. В 60-е гг. программисту, использовавшему СОВ01., обычно требовалось несколько месяцев на создание типичного приложения оценки возможных вариантов. Научные вычисления. Приложения этого класса сводятся к нахождению решений различных математических уравнений. Они включают в себя задачи численноп! анализа, решения дифференциальных и интегральных уравнений и зада- 32 Глава 1. Проблемы разработки языка чи статистики. Для применения именно в этой области изначально и создавались компьютеры — для составления баллистических таблиц во время Второй мировой войны.
Здесь всегда доминировал ЕОКТКАН. Его синтаксис всегда был близок к математическому языку, и ученым было легко использовать его. Системная область. Для создания операционных систелт и реализации компиляторов в то время не существовало эффективного языка. Такие приложения должны были иметь доступ ко всем функциональным возможностям н ресурсам аппаратной части компьютера. Для достижения максимальной эффективности часто выбирался язык ассемблер. В некоторых проектах Министерства обороны США испол ьзов ьтся ) ОЧ1АŠ— разновидность языка АЕС01, кроме того, вплоть до конца 60-х для таких приложений использовались также языки типа Р1/1. Еше одна близкая область — управление технологическим процессом и управление оборудованием. В связи с дороговизной и большими размерами компьютеров того времени большинство таких приложений (например, программа управления электростанцией или автоматической линией сборки) были больших объемов.