kletochky.ru -

купить или арендовать доменное имя онлайн
+7 (495) 545-21-33 support@site.su
  • Домены совпадающие с kletochky
  • Покупка
  • Аренда
  • kletochky.ru
  • 100 000
  • 1 000
  • Домены начинающиеся с kletochk
  • Покупка
  • Аренда
  • kletochka.ru
  • 100 000
  • 1 000
  • Домены с синонимами, содержащими kletoch
  • Покупка
  • Аренда
  • сотовое.рф
  • 70 000
  • 700
  • сотовой.рф
  • 70 000
  • 700
  • Домены с транслитом, содержащими kletoch
  • Покупка
  • Аренда
  • sotovyi.ru
  • 80 000
  • 800
  • сотовый.su
  • 18 334
  • 183
  • Рекомендуемые домены
  • Покупка
  • Аренда
  • август.su
  • 20 000
  • 200
  • автоматически.рф
  • 70 000
  • 700
  • автоматические.рф
  • 70 000
  • 700
  • автосалонам.рф
  • 70 000
  • 700
  • автошкол.рф
  • 70 000
  • 700
  • автошкола.su
  • 20 000
  • 200
  • автошколы.рф
  • 200 000
  • 2 000
  • агент.su
  • 26 668
  • 267
  • агентам.рф
  • 70 000
  • 700
  • агенту.рф
  • 70 000
  • 700
  • адам.рф
  • 150 000
  • 1 500
  • адвокатами.рф
  • 70 000
  • 700
  • адвокату.рф
  • 70 000
  • 700
  • активов.рф
  • 70 000
  • 700
  • алкоголем.рф
  • 70 000
  • 700
  • алкоголи.рф
  • 100 000
  • 1 000
  • алтайский.рф
  • 50 000
  • 500
  • алфавиты.рф
  • 50 000
  • 500
  • алые.рф
  • 70 000
  • 700
  • алюминиевые.рф
  • 50 000
  • 500
  • амуры.рф
  • 70 000
  • 700
  • антивирус.su
  • 35 000
  • 350
  • антивирусы.su
  • 26 668
  • 267
  • арбитражное.рф
  • 100 000
  • 1 000
  • арбитражный.рф
  • 50 000
  • 500
  • армянская.рф
  • 70 000
  • 700
  • армянские.рф
  • 70 000
  • 700
  • архив.su
  • 43 334
  • 433
  • бабочки.su
  • 20 000
  • 200
  • базовая.рф
  • 70 000
  • 700
  • базовые.рф
  • 70 000
  • 700
  • баку.su
  • 20 000
  • 200
  • банкомат.рф
  • 550 000
  • 5 500
  • беги.рф
  • 50 000
  • 500
  • безопасное.рф
  • 100 000
  • 1 000
  • безопасные.рф
  • 100 000
  • 1 000
  • берём.рф
  • 70 000
  • 700
  • бетону.рф
  • 70 000
  • 700
  • би.su
  • 26 668
  • 267
  • биологии.рф
  • 70 000
  • 700
  • близнец.рф
  • 100 000
  • 1 000
  • близнецы.su
  • 20 000
  • 200
  • блог.su
  • 68 334
  • 683
  • блоги.su
  • 68 334
  • 683

LL(1)

{{Нет ссылок|дата=12 мая 2011}} Нисходящий алгоритм синтаксического разбора. Прост в написании вручную без использования автоматических генераторов. Используется для разбора ряда языков программирования, таких, как [[Pascal]] (по некоторым сведениям, язык разработан с умыслом сделать его разбираемым по LL(1)). Очень быстр в исполнении, и имеет характерное сообщение об ошибке вида "ожидался такой-то символ". == Понятие "направляющие символы правила" == Для каждого нетерминала A в грамматике генерируется множество терминалов First(A), определенное следующим образом: * если в грамматике есть правило с A в левой части и правой частью, начинающейся с терминала, то данный терминал входит в First(A) * если в грамматике есть правило с A в левой части и правой частью, начинающейся с нетерминала (обозначим B), то First(B) строго входит в First(A) * никакие иные терминалы не входят в First(A) Для каждого правила генерируется множество направляющих символов, определенное следующим образом: * если правая часть правила начинается с терминала, то множество направляющих символов состоит из одного этого терминала * иначе правая часть начинается с нетерминала A, тогда множество направляющих символов есть First(A) (возможны обобщения этих определений для случая наличия правил вида A -> null) Понятно, что First(A) есть объединение множеств направляющих символов для всех правил с A в левой части. Грамматика разбираема по LL(1), если для любой пары правил с одинаковой левой частью множества направляющих символов не пересекаются. == Описание анализатора == Используется стек, где находятся номера терминалов и нетерминалов, входной (терминалы) и выходной (номера правил) потоки. Вначале в стек заносится E - начало грамматики. Далее для каждого нового символа из входного потока, пока он не закончился: * если на вершине стека терминал, и он совпадает с символом входного потока - то а) вытолкнуть терминал из стека и б) потребить символ входного потока. * если на вершине стека терминал, и он не совпадает с символом входного потока - то это синтаксическая ошибка "ожидался такой-то символ" (тот, что на стеке). * иначе на вершине стека нетерминал, обозначим его A. Ищутся все правила с ним в левой части, для каждого правила просматриваются множества направляющих символов на предмет нахождения символа входного потока, он не может найтись там более одного раза (иначе грамматика не разбираема по LL(1)). * если символ нашелся, то осуществляется применение этого правила - номер правила выводится в выходной поток, со стека выталкивается один символ (это A) и взамен вталкивается все правая часть правила, крайне левый символ правой части - последним. Символ входного потока не потребляется. * иначе символ не нашелся вовсе. Тогда, если есть правило вида "A -> null" - то A выталкивается с вершины стека. Символ входного потока не потребляется. * иначе это синтаксическая ошибка, сообщение может быть выведено в виде "ожидалось одно из" и далее списком множество First(A). [[Категория:Синтаксический анализ]]

19.09.2013 12:42:48