facebook LinkedIn
Google Book Search
Прегледи

Увод в програмирането на Perl Въведение, история и основни идеи

от Курс за ССОК

Увод в програмирането на Perl
Лекция #1 Въведение, история и основни идеи

Основни моменти в тази лекция ще бъдат запознаването с различните типове езици за програмиране, с историята на самия Perl и с библиотеката на Perl.

Днес съществуват стотици езици за програмиране. Условно те могат да бъдат разделени на три групи:

  1. Машинни езици
  2. Асемблерни езици
  3. Езици от високо ниво

Всеки компютър разбира директно само своя машинен език. Машинният език е естествения език на един определен компютър. Той е дефиниран от хардуерния дизайн на този компютър. Машинният език обикновено се състои от низове от числа(които в края на краищата се свеждат до нули и единици), които инструктират процесора да извърши най-елементарни операции в един момент. Машинните езици са зависими от платформата, т.е. Определен машинен език може да бъде използван само върху определен процесор. Освен това за хората е трудно да работят с машинни езици.

С популяризирането компютрите станало ясно, че програмирането на машинни езици е твърде бавно, отегчително и е предпоставка за допускане на много грешки. Вместо низове от числа, които процесорът директно разбирал, програмистите започнали да използват съкращения базирани на английския език, за да представят елементарните процесорни операции. Тези съкращения формирали основите на асемблерните езици. Разработени били програми наречени асемблери, които да превеждат асемблерните програми на машинен език. Асемблерните езици също са зависими от платформата.

Компютърното потребление се увеличило бързо благодарение на асемблерните езици, но и те изисквали много инструкции за изпълнението дори на най-простите операции. За да се ускори процесът на програмирането били разработени езиците от високо ниво, в които едно твърдение изпълнява значителна задача. Програма наречена компилатор превежда програмите от високо ниво до машинен код. Едни от най-популярните езици от високо ниво са C, C++, Java, Perl, FORTRAN.

Концепцията на структурното програмиране – дисциплиниран подход при писането на програми, които са ясни, видимо коректни и лесни за модифициране, възниква през 60те години на миналия век. Един от първите забележими представители на структурните езици за програмиране е Pascal, създаден през 1971 от професор Никлаус Вирт. Pascal е добър език за целта за която е създаден – а именно учебната, но негоден за ползване за комерсиални, индустриални и административни приложения. С, който също бива създаден след изследване в областта на структурното програмиране, е създаден от Денис Ричи през 1972, няма недостатъците на Pascal и се превръща де факто в стандартния език за програмиране.

Не трябва да забравяме и обектно-ориентираното програмиране, което си поставя за цел създаването на софтуер да става бързо, коректно и икономично като се избягва постоянното “преоткриване на колелото”. Обектите са по същество многократно използваеми софтуерни компоненти, които моделират обекти в реалния свят. Най-популярните обектно-ориентирани езици за програмиране са може би C++ и Java.

И ето че най-накрая стигаме до началото на историята на Perl. През 1986 година Лари Уол работи като системен програмист за Националната агенция за сигурност на САЩ по секретен проект, чиято цел била да създаде система способна да генерира доклади за голяма мрежа от UNIX базирани компютри. Недоволен от възможностите на съществуващите по това време инструменти, Уол създава нов език. Целта му била да интегрира възможностите на awk и sed с рамката предоставена от shell(the UNIX command-line scripting language). Awk е език с големи възможности за обработка на низове и регулярни изрази, който има за цел генериране на доклади. Sed е поточен редактор и филтър, който допълва работата на awk. Лари искал неговия език да е гъвкав и мощен като С, но по-прост. Вдъхновен от своя опит като лингвист той искал да направи езика по-близък до естествените човешки езици. Основния принцип бил да се направят “лесните неща лесни и трудните възможни”. През 1987 година той публикува версия 0 на своя Practical Extraction and Report Language(PERL) в Usenet. Лари решава да пусне Perl с отворен код.

Като гъвкав, преносим и ефикасен език Perl бързо набира популярност. Потребителите на Perl създават за него множество модулни разширения. Версия 3 на Perl възприема GPL лиценза, версия 4 още по-свободния Arstistic License. Версия 5 на езика е голяма реорганизация за него – коригирани са много от неговите ограничения – направен е по-мощен, по-четлив и по-разширим. Perl се е разраснал от език за текстообработка до език за програмиране с общо предназначение. По това време той не е управляван преобладаващо от Лари – той възлага разработката и документирането на езика на хора от неговата голяма общност. Силата на Perl е в уеб програмирането и областта на системното програмиране. Разпространението на Linux, *BSD и Apache увеличават популярността на Perl. Той е част от базовата инсталация на почти всяка Linux дистрибуция и BSD операционна система. Компанията ActiveState със своя ActivePerl пък популяризира Perl на Windows платформата.

Perl е модулно разширяем език, затова безброй модула са написани за него от Perl разработчиците по целия свят. Модулите за Perl са дефинирани в библиотечни файлове с разширение .pm. Основния център за разпространение на Perl сорс код, модули и документация е the Comprehensive Perl Archive Network(CPAN) – http://www.cpan.org. Потребителите на ActivePerl могат да използват Perl Package Manager (PPM) да търсят и инсталират модули.

Perl май-добре се описва от два свои лозунга. Първият гласи че основните качества на добрия програмист са “мързел, нетърпение и високомерието”. Лозунга може да изглежда безсмислен, но не е. Мързеливият програмист не обича да преоткрива колелото така че той ще пише многократно използваем код, приложим на много места. Нетърпеливия програмист не би правил ръчно, нещо което компютъра може да свърши по-бързо автоматично – затова той пише процедури, които да автоматизират тези задачи, правейки програмите по-функционални. Високомерния програмист ще показва кода на своите приятели, а за да го разберат те той трябва да го е написал ясно. Следователно програмист с тези качества ще пише преизползваем, пълен и ясен код.

Втория лозунг гласи - “Има повече от един начин да го направиш”. Той отразява любовта на общността на Perl към свободата както и философията на естествен език на Perl. Няма “правилен начин” да напишеш програма на Perl. Програмите на Perl могат да бъдат оптимизирани за каквото качество програмиста пожелае – скорост, яснота, използваемост, гъвкавост.

Perl е един от най-преносимите езици съществуващи днес. Първоначално имплементиран на UNIX оттогава той се е разпространил върху много други платформи. Една програма на Perl може да бъде прехвърлена между различни операционни системи с минимални промени в нейния код. В CPAN са налични портове на Perl за системи, които не се поддържат от стандартната му дистрибуция.

И накрая няколко думи за инсталацията на Perl. Ако ползвате GNU/Linux дистрибуция, *BSD или някоя друга UNIX система има доста голяма вероятност вече да имате Perl инсталиран на вашия компютър. Ако все пак го нямате може да го изтеглите от http://www.perl.com/download.csp под формата на сорс код или на прекомпилирани бинарни дистрибутиви. Ако пък ползвате Microsoft Windows операционна система за вас най-доброто решение е да си инсталирате ActivePerl на ActiveState. ActivePerl може да си изтеглите от тук - http://www.activestate.com/Products/ActivePerl/ напълно безплатно(това важи за стандартната му дистрибуция, Enterprise версията е платена, но пък предлага комерсиална поддръжка).

В следващата лекция вече най-накрая ще се впуснем в самото програмиране на Perl.

Полезни връзки:

  • http://www.perl.com – Официалният сайт на Perl
  • http://www.pm.org – Домашната страница на Perl Mongers, група посветена на поддръжката на Perl общността
  • http://www.perlmonth.com – Perlmonth е месечно издание, посветено на Perl
  • http://www.itknowledge.com/tpj – The Perl Journal е голямо списание посветено на Perl
  • http://www.perl.about.com – Сайта съдържа много статии за Perl, дискусии и други материали
  • http://www.devdaily.com – Това е Developer's Daily Perl Center. Тук има статии и други материали свързани с Perl
  • http://www.perlarchive.com – Тук има статии, новини, ръководство за програмиране на Perl
Локални линукс групи RSS
Дискусии