Язык программирования Perl
Шрифт:
Лекция 1. История развития Perl
В этой лекции излагается история развития языка программирования Perl, на особенности которого сильно повлияла личность создателя языка - Ларри Уолла. Объясняется лингвистическая основа языка Perl и его тесная связь с философией Unix. Рассказывается об оригинальной культуре Perl, объединяющей сообщество Perl-программистов. Далее говорится о сферах применения Perl и рассказывается о разработке новой, 6-й версии языка Perl. Также даются краткие сведения об установке Perl под разными операционными системами.
Цель лекции: познакомиться с историей создания языка Perl, узнать принципы, лежащие в его основе, и источники его особенностей. Кроме того, получить сведения, необходимые для установки системы программирования Perl.
Язык
Рис. 1.1.Создатель языка Perl - Ларри Уолл
После того как 18 декабря 1987 года была выпущена 1-я версия языка Perl, он быстро распространился среди пользователей сети Usenet. Несмотря на то, что в операционной системе (ОС) Unix, для которой был создан Perl, уже имелись многочисленные и разнообразные средства для обработки текстовой информации (awk, csh, grep, sed и другие), новый язык полюбился огромному числу системных администраторов и программистов. Он был легок в изучении и применении: синтаксис похож на С, Perl-программы не требовалось предварительно компилировать, исходные тексты было легко модифицировать. А самое главное - это был действительно очень практичный язык: с его помощью легко решалось большинство повседневных задач - от самых простых до очень сложных. Активно пользуясь языком Perl, программисты из разных стран направляли Ларри Уоллу предложения добавить в него новые возможности или улучшить имеющиеся. Постепенно Perl превратился из средства обработки текстов в среде Unix в мощную универсальную систему программирования. В середине 1990-х годов после победоносного распространения WWW (World Wide Web) Perl стал излюбленным инструментом web-мастеров для создания динамических сайтов и Internet-программирования. Благодаря своим мощным встроенным средствам работы с текстовыми данными Perl широко используется для обработки информации в форматах HTML и XML. Кроме того, Perl стал идеальным языком для быстрого создания прототипов сложных приложений, которые затем нетрудно превратить в реально действующие.
О его успехе и широком признании говорит тот факт, что Perl стал непременным компонентом любой поставки ОС семейства Unix (например, FreeBSD, Linux или Solaris). Кроме этого, к настоящему времени Perl реализован практически для всех современных аппаратных платформ (суперкомпьютеры, RISC, Macintosh, PC, наладонные компьютеры и т. д.) и операционных систем (AIX, Linux, MacOS, MS-DOS, NetWare, OS/2, QNX, Solaris, Windows, VMS - всех не перечесть!). Это дает возможность легко переносить популярные Perl-программы из одного операционного окружения в другое. (К слову сказать, примеры к этому курсу лекций проверялись под операционными системами SuSE Linux 10.0, MS Windows XP Professional SP2, и MS Pocket PC 2003 Premium Edition v. 4.20). Несомненно, его широкому применению способствовало и то, что он распространяется бесплатно на условиях одной из лицензий: либо GNU General Public License (GPL), либо Artistic License - на выбор. Но главное, что в нем есть все средства, чтобы отлично выручать профессионалов и неопытных программистов, когда требуется быстро решать разные системные и прикладные задачи - от самых простых до весьма сложных. В результате Perl стал одним из самых успешных проектов движения open source (с открытыми исходными кодами) - наряду с Apache, Linux, PHP и Python.
Но прежде всего популярность Perl связана с тем, что Ларри Уолл создал действительно необычный язык: принципы его разработки сильно отличаются от применявшихся в программировании до этого. Новаторский характер Perl связан с уникальными особенностями личности автора языка, Ларри Уолла, и его разносторонними интересами.
Во время обучения в университете Ларри Уолл получил не только компьютерное, но и лингвистическое (а
Рис. 1.2.Факторы, повлиявшие на создание Perl
Возможно, главная заслуга Ларри как автора Perl заключается в том, что ему удалось создать язык, учитывающий свойства и принципы естественного языка: ситуативную многозначность конструкций, разумную избыточность (и за счет этого стилевое разнообразие), максимальную адаптированность к различному уровню знаний носителей языка, гибкость и выразительность синтаксических средств. Все это придает особый творческий вкус самому процессу "сочинительства" на этом языке. Пишущие о языке Perl невольно употребляют термины "идиома", "метафора", "синоним", "контекст" и т.п., обычно применяемые к естественным языкам. А сам Ларри Уолл, описывая язык Perl, широко пользуется лингвистическими терминами: существительное, глагол, предложение, единственное и множественное число, местоимение. Выдающийся лингвист Б.Л. Уорф заметил: "Язык формирует наш способ мыслить и определяет, о чем мы можем думать". Эту же мысль подтверждает Дж. Бентли в книге "Жемчужины творчества программистов", описывая случай, когда именно особенности языка программирования APL натолкнули разработчика на оригинальное решение задачи с массивами. В этом смысле Perl как язык для воплощения замыслов программиста, не сковывает фантазию разработчика, дает ему максимальную свободу самовыражения, а иногда даже подсказывает нестандартные решения. При разработке языка Perl были использованы многие лингвистические принципы. Перечислим наиболее важные из них.
Важное значение имеет принцип повторного использования. Человеческие языки тяготеют к использованию ограниченного набора конструкций для выражения разных значений и их повторному применению в различных контекстах. В соответствии с этим принципом, в Perl одни и те же конструкции языка имеют различный смысл, а их однозначное понимание определяется контекстом использования.
Принцип контекста тесно связан с предыдущим. Контекст используется в естественных языках для правильной интерпретации смысла выражения. Подчиняясь этому принципу, в языке Perl, например, многие функции возвращают одно значение или список в зависимости от контекста вызова: требует ли синтаксис выражения единичного или множественного значения.
Принцип смыслового подчеркивания в естественных языках служит для привлечения внимания к важной части высказывания. При этом выделяемая часть обычно ставится в начало предложения. В Perl программист может воспользоваться этим принципом для акцентирования смысла, выбрав простое предложение с модификатором или условную конструкцию, например:
Принцип свободы в естественных языках предполагает, что всегда есть несколько вариантов выражения одной и той же мысли. Как и в естественных языках, в Perl одного и того же результата можно достичь несколькими способами, используя различные выразительные средства языка. Это так называемый принцип TIMTOWTDI- сокращение читается "Тим Тоуди" и расшифровывается как "There is more than one way to do it": "есть более одного способа сделать что-то". В соответствии с ним каждый разработчик выбирает тот вариант языковой конструкции, который больше подходит ему в конкретной ситуации, больше соответствует его стилю или уровню знания языка.
Подобный подход полностью противоположен строго формальному взгляду на языки программирования, когда главными целями разработки становятся однозначность и минимизация языковых конструкций. Но с точки зрения психологии и языкового мышления "лингвистический подход" во многом более продуктивен, как это ни парадоксально! Ведь он стимулирует творчество, привлекая человеческий опыт применения естественного языка, - и писать программы на Perl становится увлекательно и интересно. Наверное, поэтому программирующие на Perl так любят словечко "fun" (весело, забавно).