Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 10
Текст из файла (страница 10)
~Когда РОКТВАХ ужо начал распространяться~ мы столкнулись с тем фактом, что не все из 25 000 ого и«струкцнй правильно работюот и что вознпкак<т проблемы, которые можно выявить только после длительного использования<ь К середине 60-х гг. 1к этому времени н относится приведснпое выше высказывание), после появления языков ГОКТКАХ, СОВО!., 1.15Р в Л1.СО1., Бэкус уже понимал, что программнрованис изменилось Машины становились дешевле, затраты на программирование, наоборот, росли, появилась реальная необходимость персноспть программы с одной машины на другую, а поддержка конечного продукта требовала значительных компьютерных ресурсов.
В связи с этим поменялись требования, которым должен был удовлетворять создаваемый язык программирования. Вместо обеспечения эф<рсктпвиой< работы скомпилированной программы на дорогом компьютере псред языками высокого уровня возникла другая задача — упростить создание коррсктных программ для решения задач в конкретных областях. Технология создания компиляторов была сформирована в 60-с и 70-с гг.
<см. главу 3), н развитие языковых технологий сконцентрировалось на решении специфичных задач в конкретных областях. В научном программировании в основном использовался ГОВТВЛ)ч, дсловые прнложсния писались на языкс СОВО1., в военной сфере применялся < ОЧ!А1., программы пскусствснного интеллекта писались на Б15Р, встроенные военные пряложсния использовали Л<)а. Как и естествепныс языки, языки программирования развиваются и в конце концов выходят из употребления, умирают. Так, язык А!.ОО1. использовался в 60-е, затем его сменил Разса!, который, в свою очередь, вытесняется языками С-»-» и <ача.
В области деловых приложений уменьшасгся роль языка СОВО1., его также замсняет С++. В 60-е гг. активно применялись языки ЛРЕ, РЕ/1 и 5)ч ОВ 014, а в 70-е — Разса1, в настоящее же время они практически исчезли. Те старые языки, которые примсняются и в настоящее время, постоянно пересматрнваются, чтобы соответствовать изменениям в других областях компьютерных технологий. Болсе новь<с языки, такие как С»+, ~ ага и М1., созданы на основе опыта, накопленного в процессе использования этих и сотен других более старых языков.
На принципы конструирования новых языков влияют следующие факторы: 1. Возможности кочпь<отероо. Компьютеры эволюцпонировалп от огромных, медленных и дорогих ламповых машин 50-х гг, до соврсмспных суперкомпьютеров и микрокомпьютеров. В то жс время между аппаратной частью компь<отера и языком программирования появилось промежуточное звено, представляющсс собой программное обеспсчснпс операционных систем. Эти факторы оказали влияние как на структуру языков, так н на стоимость использования тех плп иных языковых возможностей.
2. Области применения. В 50-е гг. компьютеры использовались лишь в военной отрасли, науке, деловом мире и промышленности, где высокая стоимость 36 Глава 1. Проблемы разработки языка В разви Таблица 1.2. Факторы, повлиявшие на развитие языков программирования Годы Факторы н новые технологии 1951-1955 Аппаратная часть. "компьютеры нв электронных лампах, память с ртутной линией задержки. Методы: языки ассемблера; основные концепции; подпрограммы; структуры данных. Языки: экспериментальное использование компиляторов выражений Аппаратная чвстгы запоминающие устройства нв магнитных лентах; память нз сердечниках; схемы нв транзисторах.
Методы: ранние технологнн кОМПнпнРОваннЯ; НФБ-грвммзтнкн; Оптнмнэацня кода; интерпретаторы; методы дннзмнческого рзслределення памяти н обработка списков. Языки: РОНТНАЫ, АСВОС 56, АСВОС 60, С)БР Аппаратная часть: семейства совместимых архитектур, запоминающие устройства нз магнитных дисках. Методьц мультнпрогрзммные операционные системы; синтаксические КОМПИЛЯТОРЫ. Языки. "СОВОВ АСВОС 60 (новая версия), БЙОВОЫ ЗОЧ)АС Аппаратная часты увеличение размера н быстродействия прн уменьшении стоимости; мнкропрогрвммнровзнне; интегральные схемы.
Методьц системы с разделением времени; оптимизирующие компиляторы; системы написания трансляторов. Языки: Арц ГОНТНАМ 66, СОВОС 65, АСВОС 68, БМОВОС4, ВАМС, Р~.Г!, 81 М Г) СА 67, А!.ООС-УУ 1956-1960 1961-!965 1966-1970 была обоснованной. В настоящее же время их применение распространилось на область компьютерных игр, программ для персональных компьютеров, Интернета и вообще на приложения во всех областях человеческой деятельности. Требования, специфические для этих новых областей применения, влияют как на конструирование новых языков, так и на пересмотр и расширения старых языков, Методы программирования. Структурное строение языка отражает изменяющееся с влечением времени наше представление о том, что является хорошим методом написания большой и сложной программы, а также отражает изменяющуюся со временем среду, в которой осуществляется программирование. Методы реализации. Усовершенствование методов реализации отражается на выборе тех новых свойств, которые добавляются во вновь разрабатываемые языки.
Теоретические исследования. Исследование концептуальных основ разработки и реализации языка с 1юмощью формальных математических методов углубляет понимание сильных и слабых сторон конкретного языка, что отражается на добавлении тех или иных свойств при создании новых языков. Стандартизация. Необходимость в стандартных языках, которые могут быть легко реализованы в различных компь1отерных системах (что позволяет переносить программы с одного компьютера на другой), сильно влияет на эволюцию принципов разработки языков программирования.
табл. 1.2 кратко описаны факторы, оказавшие наиболее важное влияние на тис языков программирования во второй половине ХХ столетия. 1.3. Роль языков программирования 37 Факторы и новые технологии Годы Аппаратная часть: мини-компьютеры; запоминающие устройства небольшой емкости; полупроводниковая память. Методы: верификация программ; структурное программирование; технологии программирования. Языки". Рааса(, СОВОь 74, Р1„~1 (стандарт), С, Всьегпе, Рго!ор Аппаратная часть: микрокомпьютеры; запоминающие устройства большой емкости; распределенные вычисления.
Методы: абстракция данных: формальная семантика; технологии программирования. параллельная, встроенная и в режиме реального времени. Языки: В!пав(а!К, Аг1а, РОВТВАЫ 77, МЗ Аппаратная часть: персональные компьютеры; рабочие станции, видеоигры; локальные вычислительные сети; АВРАНЕТ. Мвтодьс объектно-ориентированное программирование; интерактивные среды разработки; синтаксические редакторы.
Языки: Тцгсо Рааса), Вгпа)Иа!К-80, Рго!о9, Аоа 83, Роз1зспр1 Аппаратная часть: эра микрокомпьютеров, автоматизированное рабочее место (АРМ) проектировщика, архитектуры В)ВС, Интернет. Мвтодьп клиент-серверные вычисления. Языки: РОВТВАЫ 90, С++, ВМ1 (5!апсаг! МС) Аппаратная часть: очень быстрые и недорогие рабочие станции и микрокомпьютеры; архитектура с массовым параллелизмом; звук, видео, факс, мультимедиа. Методы: открытые системы, среды разработки. Языки: Аоа 95, языки создания процессов (ТСЦ Рег!), НТМ1. Аппаратная часть: компьютеры — дешевые приспособления; персональный электронный помощник; Всемирная паутина ЧУУУ)(У; домашние кабельные сети; большой объем дисковой памяти (гигабайты).
Методы: электронная коммерция. Языки: Зача, Зачазсг)р!, ХМ!. 1971-1975 1976-1980 1981-1985 1986-1990 1991-1995 1996-2000 1.3.1. Какой язык следует считать хорошим? Механизмы разработки языка высокого уровня должны постоянно совершенствоваться. Каждый язык, описанный в данной книге, имеет свои недостатки, но тем не менее все они относительно удачны по сравнению с сотнями других языков, которые были разработаны, реализованы, использовались какое-то время, а потом были преданы забвению. Некоторые причины успеха или неуспеха языка могут быть внешними по отношению к самому языку. Так, использование языков СОВ01.
или Аг(а в Соединенных И1татах для разработки приложений в некоторых предметных областях бьщо регламентировано указом правительства. Аналогично часть успеха языка ГОВТВА)к( можно отнести к его большой поддержке различными производителями вычислительной техники, которые тратили много усилий на его изящные реализации и подробныс описания. Часть успеха Б)ч)ОВО!.4 в 70-е гг.
можно приписать превосходному описанию этого языка, сделан ному Грисволдом [46~. И1 ирокое распространение таких языков, как 1.1ВР и Разса1 объясняется как их использованием в качестве объектов теоретического изучения студентами, специализировав- 38 Глава 1. Проблемы разработки языка шимися в области разработки языков программирования, так и реальной практи- ческой значимостью этих языков, Свойства хорошего языка Несмотря на большое влияние некоторых из перечисленных внешних причин, в конце концов, именно программисты иногда, может быть, косвенно, решают, каким языкам жить, а каким нет.
Существует множество причин, по которым программисты предпочитают тот или иной язык. Рассмотрим некоторые из них. 1. Ясность, простота и единообразие ноллятий языка. Язык программирования обеспечивает как систему понятий для обдумывания алгоритмов, так и средства выражения этих алгоритмов.
Язык должен стать помощником программиста задолго до стадии реального кодирования. Он должен предоставить ясный, простой и единообразный набор понятий, которые могут быть использованы в качестве базисных элементов при разработке алгоритма. С этой целью желательно иметь минимальное количество различных понятий с как можно более простыми и систематпзированными правилами их комбинирования.