Лекция Зачем спо в школе?
Вид материала | Лекция |
Содержание13.3 Расширенные регулярные выражения Вместо заключения. Зачем школа свободному ПО? |
- Ясаков Александр Геннадьевич. Вшколе третий год эксперимент. Неутихающие споры в учительской:, 174.31kb.
- Сергей Кремлёв Зачем убили Сталина, 5558.27kb.
- Рандеву с неудачником, 2676.71kb.
- Марченко Алексей Михайлович Болезнь? Ну и хрен с ней! Вступление Ну зачем, зачем, 2343.21kb.
- Марченко Алексей Михайлович - "Болезнь? Ну и хрен с ней!" Вступление Ну зачем, зачем, 3184.4kb.
- Е. В. Чудинова Зачем нужна биология в школе?, 98.05kb.
- «Зоар» с комментарием «Сулам». Глава «Шемот» Зачем в изгнание и почему в Египет?, 5641.69kb.
- Лекция Что такое жизнь с точки зрения химика. Зачем "Науки о живом", 65.58kb.
- План вступление: а зачем изучать теорию литературы в школе; б изучение тл по программе, 341.08kb.
- Лекция для родителей «готовность ребенка к школе», 308.68kb.
13.3 Расширенные регулярные выражения
Расширенные регулярные выражения, используемые более сложными утилитами, такими как awk, отличаются от базовых:
- специальным значением круглых скобок (используемых для построения скобочных конструкций), причем \( и \) обозначают буквальное значение этих символов (более логичный, но обратный по отношению к базовым выражениям синтаксис);
- специальным значением символа плюс (+), подобным значению звездочки, но означающим одно или более вхождений предшествующего символа или выражения. Шаблон /а+б/ соответствует строкам “аб”, “ааб”, “аааб” и т.д., но не “б”;
- специальным значением вопросительного знака (?), подобным значению звездочки и плюса, но означающим ни одного или одно вхождение предшествующего символа или выражения. Шаблон /а?б/ соответствует строкам “аб” и “б”, но не “ааб”;
- специальным значением вертикальной черты (|), означающей включающее логическое “или”. Шаблон /аб|ба/ соответствует строкам “аб” и “ба”.
Заключение
Владение регулярными выражениями представляет собой полезный навык, который должен считаться частью компьютерной грамотности. Эффективное практическое применение регулярных выражений — достаточно тонкое искусство, которое требует твердого знания основ и определенной изобретательности. О регулярных выражениях написаны целые книги (см. [22-24], а также весьма забавные примеры в [25]).
Методически регулярные выражения поставляют интересный материал, поскольку их применение не относится к численному или чисто логическому домену, и поскольку в своей основе они все-таки не так сложны. Однако чисто прагматическая их подача и трактовка исключительно “в терминах исполнения” может “засушить” предмет{Алгоритмика, реализующая регулярные выражения, интересна сама по себе, но ее изящество и тонкости выходят далеко за пределы уровня школьной информатики.}.
Существует альтернатива. В 50-60е гг. XX в. Наумом Хомским и последователями был разработан аппарат так называемых трансформационных порождающих (генеративных) грамматик. Это формальные описания, которые первоначально предлагались как метаязык для возможности грамматик на заданном словаре.
Например, если предложение определяется как последовательность <группы подлежащего> и <группы сказуемого>, группа подлежащего — как последовательность необязательного <прилагательного> и <существительного>, группа сказуемого как последовательность <глагола> и необязательного <существительного>, существительное как “boy” или “apple”, глагол как “eats” или “flies”, а прилагательное как “red” или “sour”, то допустимым станет конечное множество предложений (среди которых и скучно-правильные типа “red boy eats sour apple”, и загадочные типа “sour boy flies”, и бессмысленные типа “apple flies boy”{Пример приведен на английском, поскольку флексивный характер русского языка приводит к очевидной неправдоподобности выражений. Перечислены существительные “мальчик”, “яблоко”, глаголы “ест”, “летит”, прилагательные “красный” (“рыжий”), “кислый”. Предложения (c опущенными для простоты артиклями) можно перевести как “рыжий мальчик ест кислое яблоко”, “кислый мальчик летит”, “яблоко летит мальчика”.}.
Программисты и теоретики вычислительной науки, будучи людьми в массе своей достаточно бесцеремонными, существенно расширили объектную область порождающих грамматик. Регулярные выражения являются одним из их приложений: их применение можно интерпретировать не только в терминах исполнения, но и как операцию пересечения множеств, заданных, с одной стороны, выражением, а с другой — списком наличных объектов (например, файлов в каталоге или строк в тексте).
С методической точки зрения может быть интересным то, что порождающие грамматики широко используются в современной информатике и в других целях (например, в нормальной форме Бэкуса-Наура для описания синтаксиса языков программирования или других формальных языков). Представляется, что этот теоретический материал вполне может быть подан в доступной школьникам форме и проинтерпретирован на указанных приложениях.
Ресурсы
1. Стандартная оболочка и перечисленные утилиты входят в поставку любой открытой ОС. Для альтернативных ОС можно использовать GNU Tools (например, для Microsoft Windows — Cygwin (ссылка скрыта) или UNIX Services for Windows (www.microsoft.com).
2. Новая редакция стандарта на открытые ОС пока доступна только по-английски: IEEE Std 1003.1-2001 (The Open Group Base Specifications Issue 6, www.unix-systems.org/single_unix_specification/). Девятая глава тома “Базовые определения” содержит исчерпывающее описание синтаксиса базовых и расширенных регулярных выражений. Вторая глава тома “Оболочка и утилиты” содержит описания синтаксиса паттернов имен файлов (“глоббинга”).
Вместо заключения. Зачем школа свободному ПО?
На протяжении заканчивающегося учебного года на страницах повышения квалификации, предоставленных “лектору” газетой, мы обсуждали перспективы свободных программ, пакетов и систем в школьном образовании, точнее, более узко, в программном обеспечении школьной информатики.
Проект оказался несколько более трудоемким, чем предполагалось, но в то же время неожиданно богатым результатами. Помимо полутора десятков “лекций”, опубликованных в “Информатике”, эти результаты частично нашли свое отражение в брошюре [26], представленной участниками Второго марафона учебных предметов в апреле этого года и в сообщении [27]. По ходу дела “лектор” узнал для себя много нового и интересного. “Лектор” пользуется случаем выразить самую искреннюю благодарность всем тем, кто этому поспособствовал, включая читателей, присылавших по ход дела свои замечания, часть из которых уже учтена.
Тексты и иллюстрации можно найти на странице ссылка скрыта; в духе свободного ПО автор предоставляет их на условиях Свободной лицензии ГНУ на документацию (GNU FDL) и надеется на их активное использование, критику и развитие.
Все эти материалы --- не учебник или учебное пособие, не методическое пособие и не техническая документация. Это обзор, пригодный лишь для первого знакомства, и предполагающий дальнейшее знакомство, уже более глубокое и с опорой на более технические тексты. И в качестве обзора их нельзя считать полными. Ряд классов программ в них полностью отсутствует.
В частности, отсутствуют сведения о мультимедийных пакетах и программах, предназначенных для работы со звуком и динамическими изображениями, в том числе работы интерактивной. Эта тема важна (и не только в плане демонстраций возможности современной техники учащимся, но и в плане инструментального обеспечения разработки учебных программ), но, во-первых, “нельзя объять необъятного”, а во-вторых, “лектор” не чувствует себя вполне компетентным в этой области и надеется на то, что найдутся более сведущие и опытные авторы.
Что гораздо более важно, мы практически не касались темы инструментальных средств (за исключением второй “лекции”, посвященной работе с текстом, и, отчасти, шестой и тринадцатой, в той мере, в которой язык оболочки является языком программирования), не говорили ни об интегрированных средах разработки, ни об отдельных программах-трансляторах, отладчиках, профилировщиках и всем том, что непременно должно быть частью ПО школьной информатики, поскольку в предмет входят основы программирования. Существующие инструментальные средства также нуждаются в обзоре не меньшего объема, и мы надеемся, что он рано или поздно воспоследует.