Главная » Просмотр файлов » Языки программирования. Прошлое и будущее. С.Бобровский

Языки программирования. Прошлое и будущее. С.Бобровский (1012869), страница 5

Файл №1012869 Языки программирования. Прошлое и будущее. С.Бобровский (Языки программирования. Прошлое и будущее. С.Бобровский) 5 страницаЯзыки программирования. Прошлое и будущее. С.Бобровский (1012869) страница 52017-06-17СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Для создателей экономических продуктов уже давно выпускаются про­стые, дешевые и эффективные языки, не только PL/В. Использовать дружелюбные (а не «человеконенавистнические») системы программи­рования — в интересах и производителей, и потребителей. Сущест­венно сокращаются сроки разработки, повышается надежность про­граммного обеспечения, облегчаются процессы модификации и совер­шенствования приложений.

Конечно, вряд ли язык PL/B может стать реальным конкурентом уже существующим и массово распространенным коммерческим версиям компиляторов C++. Однако он имеет неплохую сферу применения в качестве языка описания сценариев, встраиваемого в корпоративные и финансовые системы.

Языки сценариев («скрипт-языки»)

Скрипт не забыт

Языки программирования принято делить на пять поколений. Однако в эту классификацию не укладывается большая группа языков описа­ния сценариев или так называемых скрипт-языков. Программы на скрипт-языках обычно вставляются в формате исходных текстов в при­ложения для их гибкой настройки, или, наоборот, служат мощным средством для объединения программного обеспечения, написанного на других языках. Но большинство разработчиков считают скрипт-языки только вспомогательным инструментом. Например, язык JavaScript обычно воспринимается как урезанный вариант Java и используется в основном для создания бегущих строчек в браузере.

Программисты иногда даже возмущаются отсутствием в JavaScript типизации, что говорит о полном непонимании предназначения этого языка. Ведь JavaScript обладает уникальными возможностями по инте­грации объектов Windows (например, для автоматического управления браузером Internet Explorer, который является OLE-объектом). При ра­боте со сценариями JavaScript использовать переменные конкретных типов неудобно или невозможно.

В своей классической статье «Сценарии — высокоуровневое програм­мирование 21 века» Джон Аустираут, создатель скрипт-языка Tcl/Tk, назвал скрипт-языки языками системной интеграции, потому что они ориентированы на работу не с элементарными данными, а с объектами операционной среды. Это позволяет эффективно использовать возмож­ности операционной системы, интегрируя ее ресурсы с помощью язы­ков, которые на высоком уровне, без написания тысяч строк кода, двумя-тремя командами позволяют легко манипулировать системны­ми объектами и «склеивать» их в одно целое. По мнению Аустираута, принципы объектно-ориентированного программирования не завоева­ли должной популярности только потому, что их пытаются реализо­вывать на уровне примитивных операторов языков третьего поколе­ния (3GL) типа C++, что приводит к громоздкому и неуклюжему коду, а не на уровне свойств и методов самих объектов. В отличие от 3GL-языков, в современных скрипт-языках парадигма объектно-ориенти­рованного программирования воплощена наиболее полно. Она присут­ствовала даже в старых скрипт-языках типа командных языков MS-DOS или Unix/Linux, которые позволяют довольно эффективно ра­ботать с объектами операционной системы: файлами и программами.

Практически все скрипт-языки относятся к интерпретируемым (в по­следнее время для ускорения интерпретации все более активно исполь­зуется компиляция в промежуточный код). Это связано с тем, что для работы с объектами операционной системы язык должен обладать высокой гибкостью, а процесс выполнения системных программ часто зависит от многих факторов, которые трудно предусмотреть на этапе компиляции. Для повышения гибкости в скрипт-языках обычно отсут­ствует строгая типизация. Основной элемент данных в этих языках — строка, которую при работе с двоичными объектами нередко надо интерпретировать как последовательность байтов. Кроме того, при настройке крупной системы постоянно возникает нужда в быстром создании или модификации небольших программ, для чего удобнее использовать интерпретаторы. Конечно, скрипт-языки проигрывают компилируемым SGL-языкам в производительности (оператор С транс­лируется в среднем в 3-7 машинных команд, а для выполнения одного оператора скрипт-языка требуются сотни тысяч команд), но позволяют разрабатывать программное обеспечение в десятки раз быстрее. К тому же они легче в изучении, что очень важно при подготовке персо­нала для сопровождения операционной системы и компьютерных се­тей.

Perl — язык альтруистов

Уже давно подтверждено практикой, что наиболее популярные языки программирования создаются не рабочими группами, а специалиста­ми-одиночками. Это, впрочем, касается всех сфер деятельности, кото­рые можно трактовать как искусство, а не как ремесло. Так было, в частности, с языками С (Д. Ритчи) и Паскалем (Н. Вирт). В 80-е годы Ларри Уолл разработал язык Perl (Practical Extraction and Report Language). Первоначально Perl задумывался как средство эффектив­ной обработки больших текстовых файлов, генерации текстовых отче­тов и управления задачами. Одна из первых реализаций интерпрета­тора Perl прекрасно проявила себя в среде Unix/Linux, где Perl использовался в качестве командного языка. А сегодня вообще трудно представить Unix/Linux без Perl. Для этого языка написано немало компиляторов, которые удобны при создании многократно используе­мых утилит. Но для большинства задач по-прежнему применяются интерпретаторы, которые очень просты и позволяют использовать всю мощь операционной среды, под управлением которой работают. За это, конечно, приходится расплачиваться производительностью.

Язык Perl во многом основан на языке С и имеет схожий, но более компактный, синтаксис. В частности, вообще отсутствует типизация. В язык добавлен ряд новых функциональных возможностей, например, хэш- или ассоциативные массивы, мощные операторы THnaforeach и т. д. Но язык Perl имеет и качественные отличия от С. Так, в нем введено понятие динамического массива и списка. При сложной обработке тек­стов не обойтись и без операций сопоставления с образцом, которые реализованы в языке весьма элегантно.

По мощности Perl значительно превосходит С. Кроме того, в язык в качестве стандартных введено много часто используемых функций работы со строками, массивами, всевозможные средства преобразова­ния данных, управления процессами, работы с системной информацией и других. Виртуальная PerZ-машина позволяет работать с произволь­ными по величине данными, а интерпретатор языка оптимизирован для быстрого сканирования текста. В него также встроена поддержка более безопасного выполнения программ в сравнении с С. Например, выход указателя за границы массива не приведет к порче памяти. Глу­бина рекурсии, без которой обрабатывать тексты и списки неудобно, не ограничена.

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

Благодаря наличию в языке Perl мощных встроенных средств обработ­ки данных этот язык легко осваивают начинающие пользователи. Если человек знает С, то перейти на Perl ему не составит никакого труда. С другой стороны, в погоне за мощностью язык Perl усугубил и без того не слишком наглядный процесс программирования на С. Иногда слож­но понять, что делает программа, уместившаяся в трех строчках. С учетом этих особенностей язык Perl редко используют для коллек­тивной разработки больших программ, да он для этого и не предназна­чался.

Скорее, этот язык подходит для создания всевозможных ути­лит и особенно Web-сценариев. Популярность этого языка резко пошла вверх, когда сеть Интернет стала все больше восприниматься как Все­мирная Паутина. Текстовый язык HTML идеально подходил для ана­лиза и генерации Wife-страниц с помощью сценариев Perl. Эти особен­ности языка в сочетании с поддержкой передачи данных в Сети через кокеты и возможностью обращения к функциям операционной системы сделали этот язык одним из самых популярных языков программиро­вания для Интернета. Сегодня на языке Perl написаны тысячи сцена­риев, которые активно используются во всем мире. В частности, все­возможные счетчики, формы запросов с произвольной структурой управляющих элементов или утилиты поиска на Web-узле страниц с заданными ключевыми словами занимают всего несколько сотен (до 500) строк кода. Поэтому многие провайдеры поддерживают Perl, правда, обычно требуя, чтобы пользователи предварительно отдавали свои сценарии ЖеЬ-мастеру на тестирование.

Имеются реализации Perl в виде языка сценариев, которые вставля­ются в исходном виде в код HTML наподобие сценариев JavaScript. Здесь надо отметить принципиальное отличие обычной Peri-программы, которая хоть и распространяется только в исходных текстах, но выпол­няется целиком на сервере, от сценария PerlScript, интерпретацию которого берет на себя клиентская машина.

Интересно, что многие PerZ-программисты считают язык Java, более раскрученный для программирования в Сети, бесперспективным. На изучение более мощного языка Perl требуется значительно меньше времени, чем на изучение Java. Если же необходимо написать большую программу для Сети, можно использовать более знакомый Си++. Конеч­но, язык Java имеет и ряд преимуществ, но он вовсе не конкурирует с языком Perl, занимая совершенно другую нишу. Программы на языке Java представляют собой интерпретируемый двоичный код. На этом языке можно написать, например, сетевую игрушку, но все государст­венные организации, особенно имеющие отношение к национальной безопасности, никогда не запустят на своей сети непроверенный дво­ичный Java-код, так как бреши есть в любой программной системе. А программы на Perl распространяются в исходных текстах — таково требование создателя языка — и профессиональным программистам не представляет труда протестировать их.

Победил Perl и другого конкурента. Для сложной обработки текстов долгое время использовался язык СНОБОЛ, созданный в начале 1960-х годов. Он обладает очень мощными средствами сопоставления с образцом, ориентированными на анализ текстовой информации. Но с появлением персональных компьютеров СНОБОЛ полностью отошел на второй план, так как был ориентирован на пакетную обработку дан­ных. В нем совершенно отсутствуют средства поддержки пользователь­ского интерфейса, а, кроме того, по синтаксису текст программы на СНОБОЛе напоминает текст на Фортране из-за обилия меток, которые определяют результат сопоставления (переход по успеху/неуспеху). Программа выглядит слишком запутанной по сравнению с элегантным кодом Perl.

Распространялся и распространяется язык Perl только бесплатно — таково условие его создателя. Этот язык уже давно перерос рамки про­екта GNU (свободно распространяемое программное обеспечение для Unix/Linux), в рамках которого был создан первоначально. Поддержку пользователей, разработку новых версий интерпретаторов и компиля­торов для своего любимого языка PerZ-программисты осуществляют бесплатно. В конце 90-х годов вышла пятая версия Perl. Реализация языка была полностью пересмотрена автором. Изменился синтаксис Perl — добавились конструкции, упрощающие чтение исходного кода. Значительно информативнее стали предупреждения и сообщения об ошибках. Грамматика, описывающая Perl 5.x, сократилась в два раза. Почти на две трети уменьшилось количество ключевых слов. При этом сохраняется полная совместимость синтаксиса со старыми версиями языка. Кроме того, стало возможным создавать двоичные PerZ-модули с помощью компилятора, хотя такая особенность востребована в основ­ном в задачах, где на первый план выходит производительность работы системы.

В пятой версии Perl сделана попытка сориентировать язык на созда­ние достаточно крупных программ. Введено понятие пакета для поддер­жки модульной структуры. Пакеты могут трактоваться как классы с виртуальными методами — в языке реализованы основные понятия объектно-ориентированного программирования. Расширен список баз данных, к которым в языке Perl организован встроенный доступ. С по­мощью документированного PerZ-интерфейса можно части кода на этом языке встраивать в программы на C/C++ и, наоборот, подключать биб­лиотеки Си к PerZ-программам.

На момент написания книги (начало 2003 года) вышла версия языка Perl 5.8.O. Она характеризуется улучшенной поддержкой текста в фор­мате Unicode, оптимизированными режимами ввода/вывода, возмож­ностью эффективного выполнения нескольких процессов, повышенной точностью вычислений с плавающей запятой. РегГ-система без проблем работает под управлением Unix/Linux, Windows, VMS, OS/2,AmigaOS, на ряде 64-разрядных платформ.

Грядет и шестая версия Perl. Ларри Уолл решил, что она будет создана уже не им одним, а всем сообществом Регl-программистов. В результате должна появиться универсальная система, по идеологии напоминаю­щая систему Java. Сценарий на Perl 6 будет преобразован компилято­ром в переносимый байт-код. Самое главное, чтоРегl-технология позво­лит готовить программу на любых языках программирования. Такое решение, получившее название Parrot, доступно в виде альфа-версии 0.0.9 на сайте www.parrotcode.org. Пока оно объединяет три компилятора.

Получить подробную информацию о текущей, пятой версии Perl можно по адресу www.perl.org.

Характеристики

Тип файла
Документ
Размер
487,5 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее