-
Notifications
You must be signed in to change notification settings - Fork 0
/
ref.tex
167 lines (118 loc) · 13.4 KB
/
ref.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
\documentclass[spec, och, referat, times]{SCWorks}
% параметр - тип обучения - одно из значений:
% spec - специальность
% bachelor - бакалавриат (по умолчанию)
% master - магистратура
% параметр - форма обучения - одно из значений:
% och - очное (по умолчанию)
% zaoch - заочное
% параметр - тип работы - одно из значений:
% referat - реферат
% coursework - курсовая работа (по умолчанию)
% diploma - дипломная работа
% pract - отчет по практике
% параметр - включение шрифта
% times - включение шрифта Times New Roman (если установлен)
% по умолчанию выключен
\usepackage[T2A]{fontenc}
\usepackage[cp1251]{inputenc}
\usepackage{graphicx}
\usepackage[sort,compress]{cite}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{fancyvrb}
\usepackage{longtable}
\usepackage{array}
\usepackage[english,russian]{babel}
\usepackage{tikz}
\usepackage[colorlinks=false]{hyperref}
\newcommand{\eqdef}{\stackrel {\rm def}{=}}
\newtheorem{lem}{Лемма}
\begin{document}
% Кафедра (в родительном падеже)
\chair{математической кибернетики и компьютерных наук}
% Тема работы
\title{Язык программирования Perl}
% Курс
\course{2}
% Группа
\group{251}
% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ")
%\department{факультета КНиИТ}
% Специальность/направление код - наименование
%\napravlenie{010300 "--- Фундаментальная информатика и информационные технологии}
%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем}
%\napravlenie{230100 "--- Информатика и вычислительная техника}
\napravlenie{231000 "--- Программная инженерия}
%\napravlenie{090301 "--- Компьютерная безопасность}
% Для студентки. Для работы студента следующая команда не нужна.
%\studenttitle{Студентки}
% Фамилия, имя, отчество в родительном падеже
\author{Лелякина Михаила Александровича}
% Заведующий кафедрой
\chtitle{к.ф.-м.н.} % степень, звание
\chname{А.~С.~Иванов}
%Научный руководитель (для реферата преподаватель проверяющий работу)
\satitle{к.~ф.-м.~н.} %должность, степень, звание
\saname{С.~В.~Миронов}
% Руководитель практики от организации (только для практики,
% для остальных типов работ не используется)
%\patitle{доцент, к.~ф.-м.~н.}
%\paname{А.~С.~Иванова}
% Семестр (только для практики, для остальных
% типов работ не используется)
%\term{2}
% Наименование практики (только для практики, для остальных
% типов работ не используется)
%\practtype{учебная}
% Продолжительность практики (количество недель) (только для практики,
% для остальных типов работ не используется)
%\duration{2}
% Даты начала и окончания практики (только для практики, для остальных
% типов работ не используется)
%\practStart{01.07.2013}
%\practFinish{14.07.2013}
% Год выполнения отчета
\date{2014}
\maketitle
% Включение нумерации рисунков, формул и таблиц по разделам
% (по умолчанию - нумерация сквозная)
% (допускается оба вида нумерации)
%\secNumbering
\tableofcontents
% Раздел "Обозначения и сокращения". Может отсутствовать в работе
%\abbreviations
% Раздел "Определения". Может отсутствовать в работе
%\definitions
% Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе.
% Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения"
%\defabbr
% Раздел "Введение"
\intro
Полное название языка Perl - «Practical Extraction and Report language» («Практический язык извлечений и отчетов») говорит само за себя. Основной целью создания языка послужила необходимость создания удобного инструмента для работы с большим объёмом текстовых файлов, создания автоматизированных текстовых отчётов о работе операционных систем семейства UNIX.
В наши дни Perl - современный высокоуровневый язык программирования. Последняя его версия вышла в 2012 году (Perl 6.0). На рынке труда в данный момент существуют вакансии Perl-разработчиков.
\section{История создания языка}
Perl был разработан Ларри Уоллом (Larry Wall) в 1986 году. Ларри Уолл, лингвист по образованию, что ни странно являлся системным администратором одного проекта UNIX, связанного с созданием многоуровневой безопасной сети, которая объединяла несколько компьютеров, разнесенных на большие расстояния. Работа была выполнена, но потребовалось создание отчетов на основе большого числа файлов с многочисленными перекрестными ссылками между ними.
Первоначально Предполагалось использовать для этих целей фильтр awk, но оказалось, что он не мог управлять открытием и закрытием большого числа файлов на основе содержащейся в них же самих информации об их расположении. Его первой мыслью было написать специальную системную утилиту, решающую поставленную задачу, но, вспомнив, что до этого ему уже пришлось написать несколько утилит для решения задач, не «берущихся» стандартными средствами UNIX, он принял кардинальное решение — разработать язык программирования, который сочетал бы в себе возможности обработки текстовых файлов (sed), генерации отчетов (awk), решения системных задач (shell) и низкоуровневое программирование, доступное на языке С. Результатом этого решения и явился язык Perl, интерпретатор для которого был написан на С.
По утверждению самого Ларри Уолла, при создании языка Perl им двигала лень \footnote[1]{Лень - тоже, что добродетель. Тачку изобрёл тот, кому было лень носить на руках, письменность - тот, кому было лень запоминать. Perl - тот, кому было лень возиться с разными задачами без одного общего инструмента. Даже реферат пишет тот, кому лень идти на экзамен.}. — в том смысле, что для решения стоявшей перед ним задачи следовало бы написать большое количество программ на разных языках, входящих в состав инструментальных средств UNIX, а это достаточно утомительное занятие.
Новый язык программирования сочетал в себе возможности системного администрирования и обработки файлов — две основные задачи, решаемые обычно при программировании в системе UNIX. Причем следует отметить, что язык Perl появился из практических соображений, а не из-за желания создать еще одно «красивое» средство для работы в UNIX, поэтому-то он и получил широкое распространение среди системных администраторов, когда Ларри Уолл предоставил его широкому кругу пользователей. После создания языка Perl появилась возможность решать задачи с помощью одного инструмента и не тратить время на изучение нескольких языков среды программирования UNIX.
Первая версия языка не содержала многих возможностей, вошедших в последнюю версию Perl. Первоначально вся документация умещалась на пятнадцати страницах.
Perl, ввиду своей цели, испытал влияние таких языков для работы с текстовой инормацией, как awk и sed. Унаследовал Си-подобный синтаксис.
\section{Список версий языка}
Первая версия Perl 1.0 была выпущена в 1987 году и анонсирована как замена утилитам sed и awk.
Ровно через год мир увидел уже следующую версию 2.0. Основным отличием в ней стала переработанный алгоритм реализации регулярных выражений.
А через два - появилась третья версия с возможность обработки двоичных файлов. Изначально в первых трёх версиях единственной официальной документацией по языку была очень длинная страница man-утилиты.
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.7]{01.jpg}
\caption{Обложка первой книги по Perl, де-факто, ставшей стандартом в мире Perl.}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[scale=0.7]{02.png}
\caption{Официальный логотип языка - верблюд. Выбран потому, что он очень хорошо получился на изображении обложки в книги "Программируем на Perl"}
\end{figure}
Перед выпуском книги версия была поднята до четвёртой,не для указания на значительные изменения, а для того, чтобы показать, что версия документирована книгой.
Perl 5.000 был выпущен в 1994 году. Он включал в себя полностью переписанный интерпретатор, а также много новых языковых возможностей, таких, как объекты, ссылки, локальные переменные (my \$var\_name) и модули. Особенно важной частью были модули,они впервые в Perl-инфраструктуре предоставили механизм расширения языка без изменения интерпретатора. Это позволило стабилизировать интерпретатор, но при этом, дало возможность разработчикам добавлять в язык новые возможности. Perl 5 находится в активной разработке по сегодняшний день.
\end{document}