Про алгоритмический язык Perl

Perl (Перл) — один из множества придуманных людьми языков программирования. Его автор, американский программист Ларри Уолл (Larry Wall) задумал Perl как язык, на котором удобно решать задачи, связанные с обработкой файлов: искать в файлах информацию, извлекать и изменять её.

Не следует думать, что в Perl есть какие-то особые средства для решения таких задач, отсутствующие в других языках общего назначения, например, в C. Всё, что можно выразить на Perl, можно выразить и на C. Более того, Ларри Уолл реализовал свой новый язык, конечно же, на C. Однако опыт показал, что программы на Perl в среднем в 10 раз короче, чем программы на C, делающие то же самое. Это позволяет программисту сосредоточиться на сути решаемой задачи, а не на рутинных деталях. Это делает язык Perl уместным для обучения начинающих программистов. Язык Perl предназначен для ленивых людей, какими мы все являемся (хотя и не всегда в этом признаёмся).

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

Конечно, все эти удобства даются не даром. Программы на Perl медленней выполняются и занимают больше памяти, чем эквивалентные программы на C. На Perl нельзя программировать модули ядра операционной системы, и вообще решать задачи, требующие высокой эффективности. Но для этих целей существуют другие языки, и таким программированием занимаются специалисты очень высокой квалификации. Современные ЭВМ с большой оперативной памятью и мощными процессорами позволяют пользоваться удобствами за счёт некоторой потери эффективности.

Создание программы на C — многоступенчатый процесс. Он включает в себя компиляцию модулей и сборку модулей в готовую программу. В результате программа содержит коды команд, понятных процессору. Операционная система копирует содержимое файла с программой в оперативную память, и процессор готов такую программу выполнять. По большому счёту, создание программы — это перевод с языка C, понятного человеку, на язык машинных инструкций, понятных процессору. Такой перевод делается только один раз (а он требует от процессора определённых усилий). Подобным образом создаются программы на многих других языках — C++, Fortran, Pascal, и так далее.

Существует и другая, в каком-то смысле противоположная технология программирования. Текст программы на языке, понятном человеку, разбирается по строкам, но машинные инструкции не записываются в исполняемый файл, а немедленно исполняются процессором. Эта процедура называется интерпретацией. Главный недостаток такого подхода — медленное исполнение программы. Если какой-то фрагмент исходного текста программы должен выполняться многократно, то каждую его строку придётся многократно переводить на машинный язык. Таковы некоторые реализации языков BASIC, DBase, командные языки операционных систем Unix и DOS. Чтобы выполнить программу на этих языках, необходимо иметь другую программу — интерпретатор, которая проделает перечисленные выше операции.

В реализации языка Perl используется промежуточный подход: при каждом запуске программы её исходный текст компилируется, затем загружается в память и выполняется. Эти действия выполняются программой-компилятором, которая, как правило, называется perl. Если, к примеру, исходный текст нашей программы называется hello.pl, то запуск команды

приведёт к исполнению программы. Здесь значок % обозначает приглашение (prompt) операционной системы, вам его не нужно набирать. В зависимости от того, как настроена система, приглашение может выглядеть по-разному. В операционной системе DOS часто можно увидеть такое:

а в Unix —

Информатика-54© А. Н. Швец