Upload
guestbd1ac4
View
2.070
Download
7
Embed Size (px)
Citation preview
Что такое HTTP?
HTTP (англ. Hyper Text Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных.
Основой HTTP является технология «клиент-сервер»
Что такое HTTP?
Основным объектом манипуляции в HTTP является ресурс, на который указывает URI (англ. Uniform Resource Identifier) в запросе клиента.
Пример HTTP-запросаGET /exam/ HTTP/1.1Host: www.ifmo.ruUser-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5Accept: text/htmlConnection: close
Что такое парсинг?
Парсинг — это процесс сопоставления линейной последовательности лексем формальной грамматикой. Результатом обычно является дерево разбора.
Синтаксический анализатор (парсер) — это программа или часть программы, занимающаяся сбором, анализом и преобразованием требуемой информации.
Область применения
• Языки программирования• Структурированные данные• SQL-запросы (DSL-язык)• математические выражения• регулярные выражения • формальные грамматики• Лингвистика
Краткий обзор грамматики HTTPНекоторые примеры конструкций протокола HTTP
name = definition − > название правила и его определениеrule1 | rule2 − > последовательность возможных вариантов[rule] − > опциональные элементы*rule − > повторение элемента (по умолчанию, от 0 до ∞)"literal" − > литеральный текст
Примеры правил
message-header = field-name ":" [ field-value ] CRLFfield-name = tokenfield-value = *( field-content | LWS )
Виды алгоритмов парсеров
Нисходящий парсер (англ. top-down parser)• LL-анализатор
Восходящий парсер (англ. bottom-up parser)• LR-анализатор• GLR-анализатор
Алгоритм LL-анализатора
Синтаксический анализатор состоит из: Входной буфер Таблица синтаксического анализа Стек
Пример грамматики
1. S → F
2. S → (S + F)
3. F → 1
Алгоритм LL-анализатора
Входной буфер
(1+1)
Таблица синтаксического анализа
( ) 1 + $S 2 — 1 - -
F — — 3 - -
Алгоритм LL-анализатора
Состояния Стека
[ S, $ ] [ (, S, +, F, ), $ ] [ S, +, F, ), $ ] [ F, +, F, ), $ ][ 1, +, F, ), $ ] [ F, ), $ ] [ ]