Как разобрать по составу слово построения: «Построения» корень слова и разбор по составу

Страница не найдена

wordmap

Данная страница не найдена или была удалена.

Только что искали:

отпуске 2 секунды назад

зайдите 5 секунд назад

колесо 6 секунд назад

поборегк 10 секунд назад

поозерье 10 секунд назад

суть фокуса 10 секунд назад

осушитель 11 секунд назад

чурикова 12 секунд назад

ритм сердечных сокращений 12 секунд назад

вражда 27 секунд назад

кооператив 31 секунда назад

здекино 33 секунды назад

соискателе 35 секунд назад

особенная находчивость 39 секунд назад

формула 40 секунд назад

Последние игры в словабалдучепуху

Имя Слово Угадано Время Откуда
Игрок 1 зенж 0 слов 7 часов назад 176.215.57.85
Игрок 2 кустарничество
300 слов
19 часов назад 95. 29.167.147
Игрок 3 знаменосец 31 слово 20 часов 8 секунд назад 95.29.167.147
Игрок 4 знаменоносец 8 слов 1 день назад 176.59.213.116
Игрок 5 распахивание 5 слов 1 день назад 176.59.213.116
Игрок 6 колонистка 119 слов 1 день назад 95.29.167.95
Игрок 7 портной 17 слов 1 день назад 95.29.167.95
Играть в Слова!
Имя Слово
Счет
Откуда
Игрок 1 ватка 54:55 27 минут назад 217. 107.125.15
Игрок 2 сучка 57:55 46 минут назад 89.113.141.246
Игрок 3 время 38:51 51 минута назад 89.113.141.246
Игрок 4 лакец 50:45 1 час 37 секунд назад 89.113.141.246
Игрок 5 анонс 50:49 1 час назад 89.113.141.246
Игрок 6 мадам 53:50 1 час назад 91.227.191.221
Игрок 7 тюканье 115:122 1 час назад 94.51.14.223
Играть в Балду!
Имя Игра Вопросы Откуда
Пидорас ебаный На двоих 5 вопросов 4 часа назад 81. 222.185.144
Я сру На одного 5 вопросов 4 часа назад 194.85.210.222
Мяу На одного 10 вопросов 7 часов назад 95.52.43.189
Сашечка На одного 20 вопросов 12 часов назад 181.46.117.132
Мася На одного 20 вопросов 19 часов назад 213.142.96.66
Мася На одного 20 вопросов 19 часов назад 213.142.96.66
Настя На одного 5 вопросов 21 час назад 91.205.170.170
Играть в Чепуху!

Построение слова: прослеживание оптимального пути по словарю

  • Акерман, Ф. , и Стамп, Г. (2004). Парадигмы и перифрастическое выражение: исследование лексикализма, основанного на реализации. В A. Spencer & L. Sadler (Eds.), Проекционная морфология (стр. 111–157). Стэнфорд: публикации CSLI.

    Google Scholar

  • Андерсон, С. Р. (1992). А-морфная морфология . Кембридж: Издательство Кембриджского университета.

    Книга Google Scholar

  • Андерсон, С. Р. (2001). О некоторых вопросах морфологической экспоненты. В G. Booij & J. van Marle (Eds.), Ежегодник морфологии 2000 (стр. 1–17). Дордрехт: Клувер.

    Глава Google Scholar

  • Эндрюс, А. (1990). Унификация и морфологическая блокировка. Естественный язык и лингвистическая теория , 8 (4), 507–557.

    Артикул Google Scholar

  • Анттила, А. (1997). Получение вариации из грамматики. В Ф. Хинскенс, Р. Ван Хаут и В. Л. Ветцельс (ред.),

    Вариация, изменение и фонологическая теория (стр. 35–68). Амстердам: Бенджаминс.

    Google Scholar

  • Анттила, А. (2002). Морфологически обусловленные фонологические чередования. Естественный язык и лингвистическая теория , 20 (1), 1–42.

    Артикул Google Scholar

  • Аронофф, М. (1976). Словообразование в порождающей грамматике . Кембридж: MIT Press.

    Google Scholar

  • Аронофф, М. (1994). Морфология сама по себе: основы и флективные классы . Кембридж: MIT Press.

    Google Scholar

  • Эштон, EO (1947). Грамматика суахили, включая интонацию . Лондон: Лонгманс. Второе издание вышло в 1966 году.

    Google Scholar

  • Бастин, Ю. (1986). Les suffixes causatifs dans les langues bantoues. Африканская лингвистика X . Серия ИН-8. Гуманитарные науки. Н. 121,55–145.

  • Берген, БК (2004). Психологическая реальность фонестем. Язык , 80 , 290–311.

    Артикул Google Scholar

  • Бермудес-Отеро, Р., и МакМахон, А. (2006). Английская фонология и морфология. В B. Aarts & A. McMahon (Eds.), . Справочник по английской лингвистике, (стр. 382–410). Оксфорд: Блэквелл.

    Глава Google Scholar

  • Блевинс, Дж. (2003). Стебли и парадигмы. Язык , 79 , 737–767.

    Артикул Google Scholar

  • Бобальджик, Дж. (2000). Плюсы и минусы контекстуальной алломорфии. В KK Grohmann & C. Struijke (Eds.),

    , рабочие документы Мэрилендского университета по лингвистике, (том 10, стр. 35–71).

    Google Scholar

  • Бобальджик, Дж. (2005). Уменьшительно-ласкательные формы ительменского множественного числа: запоздалый ответ Перлмуттеру 1988. В G. Booij & J. van Marle (Eds.), Yearbook of morphology 2004 (стр. 317–319). Берлин: Спрингер.

    Глава Google Scholar

  • Буидж, Г. (2007). Строительная морфология и лексика. В F. Montermini, G. Boyé и N. Hathout (Eds.), Избранные труды 5-го декабря: морфология в Tolouse (стр. 34–44). Сомервилль: проект Cascadilla Proceedings.

    Google Scholar

  • Буидж, Г. (2010). Строительная морфология . Оксфорд: Издательство Оксфордского университета.

    Google Scholar

  • Бурани, К., и Торнтон, А.М. (2003). Взаимодействие частоты корня, суффикса и всего слова при обработке производных слов. В RH Baayen & R. Schreuder (Eds.), Морфологическая структура в языковой обработке (стр. 157–208). Берлин: де Грюйтер.

    Google Scholar

  • Кабальеро, Г. (2008). Фонология и морфология тараумара Чогита Рарамури . Калифорнийский университет, Беркли диссертация.

  • Кабальеро, Г., и Харрис, AC (2010). A Рабочая типология множественной экспоненты: межъязыковые вариации и теоретические выводы . Доклад представлен на XIV международной конференции по морфологии в Будапеште.

  • Крофт, В. (2001). Грамматика радикальной конструкции: синтаксическая теория в типологической перспективе . Оксфорд: Издательство Оксфордского университета.

    Книга Google Scholar

  • Диммендал, Г.Дж. (1983). Язык туркана . Дордрехт: Форис.

    Google Scholar

  • Донохью, М. (2003). Соглашение на языке скоу: историческая справка. Океаническая лингвистика , 42 , 479–498.

    Артикул Google Scholar

  • Даунинг, Л. (2001). Необобщаемая минимальность в ндебеле. Исследования по африканской лингвистике , 30 , 33–58.

    Google Scholar

  • Даунинг, Л. (2005). Причинное удвоение джиты обеспечивает оптимальные парадигмы. В Л. Даунинг, Т. Холл и Р. Раффельзифен (ред.),

    Парадигмы в фонологической теории (стр. 122–144). Оксфорд: Издательство Оксфордского университета.

    Google Scholar

  • Дресслер, В. (2004). Гиперхарактеризация и продуктивность флективной морфологии. В UMT Krisch & T. Lindner (Eds.), Analecta Homimi Universali Dicata: Festschrift für Oswald Panagl zum 65. Geburtstag (стр. 515–524). Штутгарт: Хайнц.

    Google Scholar

  • Эмбик, Д. , и Халле, М. (2005). О статусе стеблей в морфологической теории. В Т. Гертс и Х. Джейкобс (ред.), Proceedings of Going Romance 2003 , Амстердам: Джон Бенджаминс.

    Google Scholar

  • Фабб, Н. (1988). Английские суффиксы ограничиваются только ограничениями выбора. Естественный язык и лингвистическая теория , 64 , 527–539.

    Артикул Google Scholar

  • Гнанадесикан, А. (1997). Фонология с тройными шкалами . Кандидатская диссертация, Массачусетский университет, Амхерст, лингвистика.

  • Гуд, Дж. (2005). Реконструкция порядка морфем в банту: случай каузативизации и аппликативизации. Диахроника , 22 , 55–109.

    Артикул Google Scholar

  • Гуревич, О. (2006). Конструктивная морфология: грузинская версия . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Халле, М., и Маранц, А. (1993). Распределенная морфология и части перегиба. В К. Хейл и С. Дж. Кейзер (редакторы), Вид из здания 20 (стр. 111–176). Кембридж: MIT Press.

    Google Scholar

  • Ханкамер, Дж., и Миккельсен, Л. (2005). Когда движение должно быть заблокировано: ответ Эмбику и Нойеру. Лингвистическая справка , 361 , 85–125.

    Артикул Google Scholar

  • Харгус, С. (1988). Выдающиеся диссертации по языкознанию серия . Лексическая фонология секани . Нью-Йорк: Издательство Гарленд. 1988 год.

    Google Scholar

  • Харрис, А. (2008). Объяснение буйного согласия. В Т. Эйторссон (ред.), Грамматические изменения и лингвистическая теория: документы Розендаля (стр. 265–283). Амстердам: Бенджаминс.

    Google Scholar

  • Хэй, Дж. (2002). От восприятия речи к морфологии: пересмотр порядка аффиксов. Язык , 78 (3), 527–555.

    Артикул Google Scholar

  • Хэй, Дж., и Баайен, Х. (2002). Разбор и производительность. В G. Booij & J. van Marle (Eds.), Ежегодник морфологии 2001 (стр. 203–235). Дордрехт: Клувер.

    Глава Google Scholar

  • Хэй, Дж., и Баайен, Х. (2005). Тенденции в когнитивных науках: Vol.   9 . Смена парадигм: градиентная структура в морфологии (стр. 342–348).

    Google Scholar

  • Хэй, Дж., и Плаг, И. (2004). Что ограничивает возможные комбинации суффиксов? О взаимодействии грамматических и процессинговых ограничений в словообразовательной морфологии. Естественный язык и лингвистическая теория , 22 , 565–596.

    Артикул Google Scholar

  • Хипписли, А. (1997). Декларативная деривация: сетевой морфологический учет русского словообразования применительно к существительным, обозначающим «лицо» . Кандидатская диссертация, Университет Суррея.

  • Хипписли, А. (2001). Правила словообразования в системе наследования по умолчанию: сетевой учет русских личных существительных. В G. Booij & J. van Marle (Eds.), Ежегодник морфологии 1999 (стр. 221–261). Дордрехт: Клувер.

    Глава Google Scholar

  • Хайман, Л. М. (2003a). Изменение звука, неправильный анализ и аналогия в каузативе банту. Журнал африканских языков и лингвистики , 24 , 55–90.

    Артикул Google Scholar

  • Хайман, Л. М. (2003b). Порядок суффиксов в языке банту: морфоцентрический подход. В G. Booij & J. van Marle (Eds.), Ежегодник морфологии 2002 (стр. 245–281). Дордрехт: Клувер.

    Глава Google Scholar

  • Хайман, Л. М., Инкелас, С., и Гален, С. (2009). Теория соответствия поддеревьев редупликации в ндебеле. В К. Хэнсон и С. Инкелас (ред.), Природа слова: эссе в честь Пола Кипарски (стр. 273–310). Кембридж: MIT Press.

    Google Scholar

  • Хайман, Л., и Мчомбо, С. (1992). Морфотактические ограничения в основе глагола чичева. В Proceedings of the Berkeley Linguistic Society (том 18, стр. 350–364).

    Google Scholar

  • Инкелас, С. (1989). Просодический округ в лексиконе . Кандидатская диссертация, Стэнфордский университет.

  • Инкелас, С. (1993). Морфология класса положения Нимбора. Естественный язык и лингвистическая теория , 11 , 559–624.

    Артикул Google Scholar

  • Инкелас, С. (1998). Теоретический статус морфологически обусловленной фонологии: пример доминирования. В G. Booij & J. van Marle (Eds.), Ежегодник морфологии, 1997, (стр. 121–155). Дордрехт: Клувер.

    Глава Google Scholar

  • Инкелас С. и Оргун О.К. (1995). Порядок уровней и экономия в лексической фонологии турецкого языка. Язык , 71 , 763–793.

    Артикул Google Scholar

  • Инкелас С. и Оргун О.К. (1998). Неупорядоченность уровней в рекурсивной морфологии: данные из турецкого языка. В S. Lapointe, D. Brentari и P. Farrell (Eds.), Морфология и ее связь с фонологией и синтаксисом (стр. 360–405). Стэнфорд: публикации CSLI.

    Google Scholar

  • Инкелас, С., и Золл, К. (2005). Редупликация: удвоение морфологии . Кембридж: Издательство Кембриджского университета.

    Книга Google Scholar

  • Инкелас, С. , и Золл, К. (2007). Реальна ли зависимость от грамматики? Сравнение подходов кофонологического и индексированного ограничения к морфологически обусловленной фонологии. Языкознание , 45 , 133–171.

    Артикул Google Scholar

  • Кибрик, А. (1991). Принципы организации именных парадигм в дагестанских языках: сравнительно-типологические наблюдения. В книге Ф. Планка (ред.), Paradigms (стр. 255–274). Берлин: де Грюйтер.

    Google Scholar

  • Кипарский, П. (1982а). Словообразование и лексика. В Ф. Ингеманн (ред.), Материалы Среднеамериканской лингвистической конференции 1982 г. (стр. 3–29). Лоуренс: Факультет лингвистики, Канзасский университет.

    Google Scholar

  • Кипарский, П. (1982b). Лексическая морфология и фонология. В И.-С. Ян (ред.), Лингвистика в утреннем затишье (стр. 3–91). Сеул: Хансин.

    Google Scholar

  • Кипарский, П. (1984). К лексической фонологии исландского языка. В С.-С. Элерт, И. Джонсон и Э. Стангерт (ред.), Гуманитарные исследования Умео: Vol.   59 . Скандинавская просодия III (стр. 135–164). Стокгольм: Almqvist och Wiksell.

    Google Scholar

  • Кипарский, П. (1985). Некоторые следствия лексической фонологии. Фонологический ежегодник , 2 , 85–138.

    Артикул Google Scholar

  • Кипарский, П. (2000). Непрозрачность и цикличность. The Linguistic Review , 17 , 351–367.

    Артикул Google Scholar

  • Кипарский, П. (2005). Блокировка и перифраз во флективных парадигмах. В G. Booij & J. van Marle (Eds.), Yearbook of morphology 2004 (стр.  113–135). Берлин: Спрингер.

    Глава Google Scholar

  • Кипарский, П. (2008). Фенно-шведская величина: контраст в пластовом ОТ. В Б. Во и А. Невинс (ред.), Правила, ограничения и фонологические явления (стр. 185–219). Оксфорд: Издательство Оксфордского университета.

    Глава Google Scholar

  • Киршнер, Р. (1996). Синхронные цепные сдвиги в теории оптимальности. Лингвистическое исследование , 27 , 341–351.

    Google Scholar

  • Лауданна, А., и Бурани, К. (1995). Распределительные свойства деривационных аффиксов: последствия для обработки. В LF Feldman (Ed.), Морфологические аспекты языковой обработки (стр. 345–364). Хиллсдейл: Эрлбаум.

    Google Scholar

  • Леманн, К. (2005). Плеоназм и гиперхарактеризация. В G. Booij & J. van Marle (Eds.), Ежегодник морфологии 2005 г. (стр. 119–154). Берлин: Спрингер.

    Глава Google Scholar

  • Либер, Р. (1980). Об организации словарного запаса . Кандидатская диссертация, Массачусетский технологический институт, Кембридж, Массачусетс.

  • Мэтьюз, PH (1974). Морфология . Кембридж: Издательство Кембриджского университета. Второе издание вышло в 1991 году.

    Google Scholar

  • Маккарти, Дж. (2002). Тематическое руководство по теории оптимальности . Кембридж: Издательство Кембриджского университета.

    Google Scholar

  • Маккарти, Дж. (2005). Оптимальные парадигмы. В Л. Даунинг, Т.А. Холл и Р. Раффельзифен (ред.), Парадигмы в фонологической теории (стр. 170–210). Оксфорд: Издательство Оксфордского университета.

    Google Scholar

  • Маккарти, Дж. (2008). Постепенный путь к упрощению кластера. Фонология.

  • Макфарланд, Т. (2009). Фонология и морфология Филомено Мата Тотонак . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Майкл, Л. (2008). Доказательственная практика Нанти: язык, знания и социальные действия в амазонском обществе . Кандидатская диссертация, Техасский университет, Остин.

  • Моханан, КП (1986). Лексическая фонология . Дордрехт: Клувер.

    Google Scholar

  • Мортенсен, Д. (2006). Формальные и субстантивные гаммы в фонологии . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Мюллер, Г. (2006). Расширенная экспонента путем обогащения: кодировка аргументов в немецком языке, Archi и Timucua . Неопубликованная рукопись, Лейпцигский университет.

  • Нэш, Д. (1986). Выдающиеся диссертации по лингвистике . Нью-Йорк: Гарленд.

    Google Scholar

  • Нгунга, А. (1997). Лексическая фонология и морфология основы глагола Ciyao . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Нойер, Р. (1992). Признаки, позиции и аффиксы в автономной морфологической структуре . Кандидатская диссертация, Массачусетский технологический институт.

  • Нойер, Р. (1993). Оптимальные слова: к декларативной теории словообразования. Документ представлен на Rutgers Optimality Workshop-1, Rutgers University. Можно загрузить с ftp://babel.ling.upenn.edu/facpapers/rolf_noyer/optimal_words.ps.

  • Оргун, CO (1996). Знаковая морфология и фонология: с особым вниманием к теории оптимальности . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Оргун, К.О., и Инкелас, С. (2002). Пересмотр стирания скобок. В G. Booij & J. van Marle (Eds.), Ежегодник морфологии 2001 (стр. 115–146). Дордрехт: Клувер.

    Глава Google Scholar

  • Пастер, М. (2006). Фонологические условия на аффиксацию . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Пастер, М. (2007). Аспекты фонологии и морфологии маай. Исследования по африканской лингвистике , 35 , 73–120.

    Google Scholar

  • Петерсон, Д. (1993). Множественная экспонента и морфосинтаксическая избыточность. В E. Duncan & P. S. Donka Farkas (Eds.), 90 004 Труды 12-й конференции Западного побережья по формальной лингвистике (стр. 83–100). Стэнфорд: публикации CSLI.

    Google Scholar

  • Позер, WJ (1992). Блокировка фразовых конструкций лексическими единицами. В IA Sag & A. Szabolcsi (Eds.), Лексические вопросы (стр. 111–130). Стэнфорд: публикации CSLI.

    Google Scholar

  • Принс, А. , и Смоленский, П. (2004). Теория оптимальности: взаимодействие ограничений в порождающей грамматике . Нью-Йорк: Уайли-Блэквелл.

    Google Scholar

  • Пуллибланк, Д. (1986). Тон в лексической фонологии . Дордрехт: Рейдель.

    Книга Google Scholar

  • Пыча, А. (2008). Морфологические источники фонологической длины . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Рид, А.А., и Марслен-Уилсон, В.Д. (2003). Лексическая репрезентация морфологически сложных слов: данные из польского языка. В RH Baayen & R. Schreuder (Eds.), Морфологическая структура в языковой обработке (стр. 287–336). Берлин: де Грюйтер.

    Google Scholar

  • Рид, А.А., и Марслен-Уилсон, В.Д. (2001). Конструктивный подход к идиомам и словообразованию . Кандидатская диссертация, Стэнфордский университет.

  • Риеманн, С. (2001). Конструктивный подход к идиомам и словообразованию . Кандидатская диссертация, Стэнфордский университет.

  • Райан, К. (2010). Переменный порядок аффиксов: грамматика и обучение. Язык , 86 , 758–791.

    Google Scholar

  • Зайденберг, М. (1987). Подлексические структуры в визуальном распознавании слов: единицы доступа или орфографическая избыточность. В М. Колтхарт (ред.), Внимание и производительность XII (стр. 245–264). Хиллсдейл: Эрлбаум.

    Google Scholar

  • Селкирк, Э. (1982). Синтаксис слов . Кембридж: MIT Press.

    Google Scholar

  • Сибанда, Г. (2004). Вербальная фонология и морфология ндебеле . Кандидатская диссертация, Калифорнийский университет, Беркли.

  • Пень, Г. (1991). Парадигмальная теория морфосемантических несоответствий. Язык , 67 , 675–725.

    Артикул Google Scholar

  • Стамп, Г. (2001). Инфлективная морфология: теория структуры парадигм . Кембридж: Издательство Кембриджского университета.

    Книга Google Scholar

  • Тафт, М. (1981). Пересмотрено удаление префиксов. Журнал вербального обучения и вербального поведения , 20 , 289–297.

    Артикул Google Scholar

  • Вольф, М. (2008). Оптимальное чередование: последовательное взаимодействие фонологии и морфологии в модели, основанной на ограничениях . Кандидатская диссертация, Массачусетский университет, Амхерст.

  • Вурм, LH (1997). Слуховая обработка английских слов с префиксами является непрерывной и декомпозиционной. Журнал памяти и языка , 37 , 438–446.

    Артикул Google Scholar

  • Сюй З. и Аронофф М. (2011). Подход теории оптимальности реализации к блокировке и расширенной морфологической экспоненте. Журнал лингвистики , 47 , 673–707.

    Артикул Google Scholar

  • Ю, ACL (2007). Естественная история инфиксации . Оксфорд: Издательство Оксфордского университета.

    Книга Google Scholar

  • Ю, ACL (2000). Распределение стресса в Тохоно О’одхам. Фонология , 17 , 117–135.

    Артикул Google Scholar

  • Конструкция компилятора

    Конструкция компилятора
      

    Часть примечания к CS:4980:1
    по Дуглас В. Джонс
    T HE U НИВЕРСИТИ ИЗ I OWA Департамент компьютерных наук

    Языковые категории

    Ноам Хомский разделил языки на то, что сейчас называется Хомская иерархия. В этой иерархии есть 4 уровня:

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

      Многие программисты знакомы с так называемыми регулярными выражениями. в текстовых редакторах, таких как vi. Термин ускользнул от своего первоначального теоретический контекст в широкое употребление. К сожалению, реализации регулярных выражений в системах обработки текста сильно различается. В некоторых, выразительная сила выражений весьма ограничена, будучи гораздо менее мощный, чем предполагает уровень 3 Хомского, в то время как в других, выразительный мощность приближается к уровню 2.

    2. Контекстно-свободные языки. Формальная грамматика контекстно-свободного языка это контекст свободная грамматика. БНФ и его распространенные расширения — это все нотации. для выражения контекстно-свободных грамматик. А вдавливание автомат, то есть автомат с конечным числом состояний, дополненный выталкивающим стеком, достаточно, чтобы отличить между допустимыми и недопустимыми строками в контекстно-свободном языке. Большинство программ используемые сегодня языки описываются контекстно-свободными грамматиками, а Парсер, который мы создадим для Kestrel, использует такую ​​грамматику.

      На самом деле, большинство компьютерных языков более сложны, чем контекстно-свободные. грамматика для языка предлагает. Языки, которые мы используем, имеют контекст чувствительность. Обычно мы игнорируем их, когда создаем парсер для язык, а затем обработать контекстно-зависимые сведения в семантический код, построенный поверх парсера.

    3. Контекстно-зависимые языки описываются контекстно-зависимыми грамматиками. Языки этого класса можно распознать по так называемому линейному ограниченный автомат, т. е. конечный автомат, снабженный вспомогательным область хранения, размер которой пропорционален размеру входной строки. По сути, синтаксический анализатор должен сохранить всю входную строку, и ее необходимо добавить. структуры данных, размер которых пропорционален входной строке. В отличие от контекстно-свободные языки, нет ограничений по принципу push-pop на использование вспомогательная память.
    4. Рекурсивно перечисляемые языки — самый большой класс. Эти языки может быть распознан по машина Тьюринга, конечный автомат, дополненный с бесконечной памятью, обычно описываемой как бесконечная лента, которую машина может сканировать в любом направлении, читая и записывая по ходу дела. Любой язык программирования, который позволяет создавать открытые структуры данных. такие как связанные списки, формально эквивалентны машине Тьюринга, за исключением конечно, что реальные реализации таких языков обязательно ограничены тем фактом, что мы не можем построить бесконечную память для наших компьютеров.

    Правила производства

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

    Есть два способа думать о грамматиках: начинается с одного нетерминала, например, и применяет к этому последовательность правил перезаписи, чтобы сгенерировать высказывание на языке. Противоположная точка зрения, разбор, начинается с предложением и применяет к нему ряд правил перезаписи, чтобы свести его к фразе.

    Здесь мы следуем соглашениям BNF и заключаем имена нетерминальных символы в угловых скобках, например, <предложение>, а мы оставляем терминальные символы в покое. Кроме того, мы пишем наши правила перезаписи используя символ BNF ::=. Рассмотрим это правило перезаписи из Грамматика пустельги:

    <до цикла> ::= "делать" <блок> "до" <выражение>
     

    Применительно к порождающей грамматике, мы можем прочитать это правило перезаписи слева направо. направо. В этом прочтении он допускает нетерминальный символ <до цикла> заменяется строкой терминала а нетерминальные символы делают <блок> до <выражения> Порождающий взгляд на грамматики заставляет нас обратиться к каждому из этих переписать правила как производственное правило или, короче, производственное правило .

    (Обратите внимание, что в грамматике Kestrel терминальные символы заключаются в кавычки, чтобы отличать их от метасимволов. Таким образом, { является метасимволом, открывающая фигурная скобка, указывающая, что следующий материал должен повторяться ноль или более раз, в то время как «{» является конечным символом, открывающей фигурной скобкой, может появиться в тексте программы Kestrel. Многие пользователи EBNF полагаются на интуиции читателя, чтобы отличить метасимволы от терминальных символов, в то время как некоторые используют шрифт другого типа.)

    В качестве альтернативы, мы можем применить это производственное правило при синтаксическом анализе, прочитав его. справа налево. В этом случае, где бы мы ни встречались do до , мы можем заменить его на <до цикла>. В этом случае мы читаем правило как правило редукции, так как оно уменьшает строку смешанных терминальных и нетерминальных символов в нетерминальный символ.

    Грамматики для языков нулевого типа Хомского состоят из неограниченных правил. И левая, и правая части продукционных правил могут состоять из любых количество терминальных и нетерминальных символов. Таким образом, если вы видите грамматику, которая имеет правила, выглядящие следующим образом, он может описывать язык нулевого типа:

    a  c ::= d  f 
     

    Чтобы язык был контекстно-свободным языком, должна быть возможность дать грамматика для того языка, где каждое продукционное правило имеет только одно нетерминальный символ слева. Дается грамматика пустельги в этой форме и фактически все правильно построенные БНФ-грамматики могут быть сведены к этой форме.

    Важно отметить, что существует бесконечное количество грамматик для любой язык. Рассмотрим это производственное правило:

    <левая сторона> ::= <правая> <рука> <сторона>
     

    Если мы введем новый нетерминал , мы можем заменить это одно правило с этим:

    <слева> ::= <посередине>
    <посередине> ::= <справа> <рука> <сбоку>
     

    Или мы могли бы вместо этого заменить его на это:

    <слева> ::= <справа> <посередине>
    <середина> ::= <рука> <сторона>
     

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

    Нотация BNF и ее расширения

    Рассмотрим следующий набор контекстно-свободных производственных правил для Язык пустельги:

    <цикл> ::= <цикл while>
    <цикл> ::= <до цикла>
    <цикл> ::= <для цикла>
     

    В правильной БНФ мы объединяем эти 3 различных производственных правила в одно. правило:

    <цикл> ::= <цикл while> | <до цикла> | <для цикла>
     

    Это просто вопрос сокращения. В теории формального языка это три производственных правила. БНФ просто допускает более компактное представление.

    Большинство расширений добавлено в BNF для создания различных нотаций EBNF. происходят из регулярных выражений. Формально регулярное выражение определяется как:

    • символ терминала, а
    • объединение двух регулярных выражений, ab
    • выбор между двумя регулярными выражениями, a|b
    • ноль или более повторений регулярного выражения, a*

    Используя круглые скобки для группировки, мы могли бы написать это регулярное выражение для описания строки точек, разделенные десятичными цифрами:

    .((0|1|2|3|4|5|6|7|8|9).)*
     

    Это регулярное выражение соответствует . и это соответствует .4. и .1.4.3.7. а также бесконечное количество другие струны. Обозначение звездочкой для нуля или более повторений имеет название, заглушка Kleene .

    В BNF с самого начала вертикальная черта использовалась для обозначения альтернатив, а последовательности терминалов и нетерминалов использовались для обозначения соответствия последовательности. Чего не хватает, так это итератора. Самый распространенный способ указать итерация в расширенном BNF с фигурными скобками, поэтому вместо записи а* пишем {а}.

    Это расширение до BNF не меняет выразительности записи, он допускает только компактное выражение. Рассмотрим, например, это правило из грамматики Kestrel:

    <формальные параметры> ::= <параметр> { [ "," ] <параметр> }
     

    Мы можем переписать это, добавив новые нетерминалы, чтобы полностью исключить расширения BNF:

    <формальные параметры> ::= <формальный список>
    <формальный список> ::= <параметр>
    <формальный список> ::= <параметр> [ "," ] <формальный список>
     

    Здесь мы использовали рекурсию там, где оригинал использовал итерацию. У нас есть еще одно расширение BNF в приведенном выше правиле, квадратные скобки указывают необязательные элементы. Мы можем устранить это расширение, переписав последнего правила выше:

    <формальный список> ::= <параметр> <формальный список>
    <формальный список> ::= <параметр> "," <формальный список>
     

    Если бы мы хотели определить <формальные параметры> в исходной нерасширенной БНФ мы можем комбинировать вышеуказанные идеи, чтобы дать следующее:

    <формальные параметры> ::= "(" <формальный список> ")"
    <формальный список> ::= <параметр>
                   | <параметр> <формальный список>
                   | <параметр> "," <формальный список>
     

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

    Худшие инструменты переписывания грамматики, как правило, изобретают такие имена, как <а>, <б> и <с>, без ссылки на имена, используемые в исходной грамматике. Лучшие инструменты перезаписи обычно называют новые нетерминалы в честь нетерминала. в левой части правила, где вводится новый нетерминал, так что они могли бы изобрести, например, <список формальных параметров a> в приведенном выше контексте. Занимает человеческое вмешательство, чтобы выбрать лучшие имена.

    Наша следующая задача — обсудить синтаксический анализ. Когда мы обсудим это, мы увидим, что каждый алгоритм синтаксического анализа имеет тенденцию отдавать предпочтение той или иной грамматике языка. Компактные презентации с меньшим количеством нетерминалов могут быть лучше для людей в некоторых контекстах, но в других контекстах некоторые нетерминалы могут иметь очевидные семантического содержания, и читатель-человек может предпочесть сохранить их в грамматики, даже если они не имеют особой ценности для объяснения синтаксис. По этой причине удобно искать инструменты для грамматики переписывая оба инструмента для расширения грамматик EBNF до их примитивного BNF форму и инструменты, чтобы попытаться подтянуть разросшуюся грамматику, устранив посторонние нетерминалы и избыточные продукционные правила.

    Пример грамматики

    Рассмотрим следующую упрощенную версию грамматики для пустельги. выражения:

    <выражение> ::= <термин> { ( '+' | '-' ) <термин> }
     ::=  { ( '*' | '/' )  }
    <коэффициент> ::= [ '-' ] ( <число> | '(' <выражение> ')' }
     

    (Упрощения, которые мы сделали, устранили сравнение и логические операторы, переменные и нечисловые константы.)

    Вопрос, с которым мы сталкиваемся, заключается в том, как создать синтаксический анализатор, который может введите строку и сопоставьте ее с этой грамматикой. Человек, работающий над разбором строки может действовать следующим образом, переписывая строку после каждого шага:

    - 4*5+6-(7+8)/9
      фактор * фактор + фактор - (фактор + фактор) / фактор
            срок + срок - ( срок + срок ) / фактор
            термин + термин - ( выражение ) / фактор
            срок + срок - фактор / фактор
            срок + срок - срок
                              выражение
     

    К сожалению, такой взгляд на проблему не дает нам алгоритма. Люди могут применять широкий подход к таким проблемам, делая большое количество замен по всей строке, а затем работа на замененной строке. Обратите внимание, однако, что то, что мы показали выше также может быть описано деревом:

    - 4*5+6-(7+8)/9
     \ | | | | | | | | | | | | |
      фактор | фактор | фактор | |фактор | фактор| | фактор
           \ | / | | | | | | | | | /
            срок | срок | | срок | срок | //
              | \ | | | \ | // / /
               \ \ \ | \ выражение /  /  /
                \_______ \ \ \ \_ | _/ / /
                        \ \ \ \ \ | / _/ /
                         \ \ \ | фактор /_/
                          \ \ | | \ / /
                           \ | | | срок
                            \ | | | ________/
                             \ | | | /
                              выражение
     

    Такое дерево называется деревом синтаксического анализа . Это дерево синтаксического анализа точно отражает синтаксические отношения, подразумеваемые приведенной выше грамматикой, но он говорит немного об одном важном вопросе. Наше выражение верхнего уровня содержит два операторы «+» и «-». Каков порядок вычисления операторов, которые встречаются на одном уровне выражения?

    Уточнение грамматики

    Приведенная выше грамматика загружена расширенными конструкциями BNF, и эти затушевывают несколько вопросов. Давайте удалим их! Есть, к сожалению, два различных способа сделать это (не считая смешанных подходов). Мы могли бы расширить нашу грамматику до следующей, которая упоминается как леворекурсивный грамматики, потому что рекурсия происходит в левой части каждого правила:

    <выражение> ::= <термин>
                  | <выражение> '+' <термин>
                  | <выражение> '-' <термин>
    <термин> ::= <фактор>
            | <термин> '*' <фактор>
            | <термин> '/' <фактор>
    <коэффициент> ::= <число>
              | '-' <число>
              | '(' <выражение> ')'
              | '-' '(' <выражение> ')'
     

    В качестве альтернативы мы могли бы создать эту грамматику, которая является праворекурсивной :

    <выражение> ::= <термин>
                  | <термин> '+' <выражение>
                  | <термин> '-' <выражение>
    <термин> ::= <фактор>
            | <фактор> '*' <термин>
            | <фактор> '/' <термин>
    <коэффициент> ::= <число>
              | '-' <число>
              | '(' <выражение> ')'
              | '-' '(' <выражение> ')'
     

    Что правильно? Прежде всего, эти две грамматики описывают точно такой же набор строк и, следовательно, они описывают тот же язык , если вы определяете язык только как набор строк, не приписывая им никакого значения.

    Проблема, с которой мы сталкиваемся, заключается в следующем: эти две грамматики дают совершенно разные интерпретации таких выражений, как «5*6/7». леворекурсивный грамматика выше дает левое дерево ниже, в то время как праворекурсивная грамматика дает дерево справа:

        5*6/7 5*6/7
        | | | | | | | | | |
     фактор | фактор | фактор фактор | фактор | фактор
        | | | | / \ | | | |
      срок | // / \ \ \ | срок
         \_ | // / \ \ \ | _/
           \ | // / \ \ \ | /
            срок / / \ \ срок
              \ / __/ \__ \ /
               \ | / \ | /
               срок срок
                 | |
            выражение выражение
     

    Если мы не применим некоторые очень сложные семантические правила, первая грамматика выше и левое дерево синтаксического анализа подразумевают оценку операторов слева направо, давая значение 4, в то время как вторая грамматика и левое дерево синтаксического анализа выше подразумевают оценку справа налево, давая значение 0.

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

    Shift-reduce Разбор

    Базовый синтаксический анализатор сдвига-уменьшения работает путем сканирования входного текста с конца. до конца (слева направо в европейских языках и справа налево в арабском или иврит). Кроме того к входному тексту, синтаксический анализатор имеет стек push-down и возможность изучить верхние элементы стека. На следующих рисунках будем показать верхнюю часть стека справа, отделенную от входного текста символом знак двойного кинжала ( ). Рассмотрим этот входной текст, показанный с пустым стеком:

      - 4 * 5 + 6 - ( 7 + 8 ) / 9
     
     

    Мы проанализируем это на следующей грамматике, леворекурсивной грамматике представлены ранее. Для упрощения изложения пронумеруем Правила производства:

     1 <выражение> ::= <термин>
     2 | <выражение> '+' <термин>
     3 | <выражение> '-' <термин>
     4 <термин> ::= <фактор>
     5 | <термин> '*' <фактор>
     6 | <термин> '/' <фактор>
     7 <коэффициент> ::= <число>
     8 | '-' <число>
     9| '(' <выражение> ')'
    10 | '-' '(' <выражение> ')'
     

    Наш синтаксический анализатор начинает с чтения одного символа из ввода и помещения его в стек:

    -  4 * 5 + 6 - ( 7 + 8 ) / 9
     

    В нашей грамматике нет продукционных правил, соответствующих одному минус, поэтому повторяем, просматривая вперед другую лексему:

    - <число>  * 5 + 6 - ( 7 + 8 ) / 9
     

    В этот момент мы можем применить правило 8, уменьшив стек до этого:

    <множитель>  * 5 + 6 - ( 7 + 8 ) / 9
     

    Отдельно стоящим фактором является термин, согласно правилу 4, поэтому мы также можем сделать это сокращение:

      * 5 + 6 - ( 7 + 8 ) / 9
     

    Как мы узнали, что нельзя применять правило 1 к вышеизложенному? Ответ в том, что мы заглянули вперед на следующую лексему, ‘*’, и заметил, что ‘*’ появляется в начале другого правила, но <выражение> ‘*’ — нет.

    Теперь добавим еще один символ:

     *  5 + 6 - ( 7 + 8 ) / 9
     

    На данный момент нет подходящих правил, поэтому мы вводим еще один символ:

    <термин> * <число>  + 6 - ( 7 + 8 ) / 9
     

    На этом этапе мы можем применить правило 7, чтобы уменьшить число до множителя:

     *   + 6 - ( 7 + 8 ) / 9
     

    Теперь мы можем применить правило 5:

      + 6 - ( 7 + 8 ) / 9
     

    На этот раз мы можем применить правило 1, потому что следующая лексема «+» и <выражение> ‘+’ появляется в начале правила. Это дает нам:

    <выражение>  + 6 - ( 7 + 8 ) / 9
     

    И затем сдвиньте дважды:

    <выражение> +  6 - ( 7 + 8 ) / 9
    <выражение> + <число>  - ( 7 + 8 ) / 9
     

    А затем применить правила 7 и 4, а затем 2:

    <выражение> + <коэффициент>  - ( 7 + 8 ) / 9
    <выражение> + <термин>  - ( 7 + 8 ) / 9
    <выражение>  - ( 7 + 8 ) / 9
     

    Теперь мы сдвигаем 3 раза, прежде чем найдем какие-либо правила, которые мы можем применить:

    <выражение> -  ( 7 + 8 ) / 9
    <выражение> - (  7 + 8 ) / 9
    <выражение> - ( <число>  + 8 ) / 9
     

    На этом этапе мы можем применить правила 7 и 4, а затем 1:

    <выражение> - ( <коэффициент>  + 8 ) / 9
    <выражение> - ( <термин>  + 8 ) / 9
    <выражение> - ( <выражение>  + 8 ) / 9
     

    Здесь не действуют никакие правила, поэтому мы сдвигаем и снова сдвигаем:

    <выражение> - ( <выражение> +  8 ) / 9
    <выражение> - ( <выражение> + <число>  ) / 9
     

    На этом этапе мы можем применить правила 7, 4 и 2:

    <выражение> - ( <выражение> + <фактор>  ) / 9
    <выражение> - ( <выражение> + <термин>  ) / 9
    <выражение> - ( <выражение>  ) / 9
     
    Здесь не применяются никакие правила, поэтому мы смещаемся, позволяя нам применить правила 9 и 4:
    <выражение> - ( <выражение> )  / 9
    <выражение> - <коэффициент>  / 9
    <выражение> - <термин>  / 9
     

    Опять же, мы не применяли правило 1, потому что смотрели вперед и заметили что ‘/’ является началом правила, а <выражение> ‘/’ не является.

    В этот момент мы дважды сдвигаем, а затем применяем правила 7, 6 и 3:

    <выражение> - <термин> /  9
    <выражение> - <термин> / <число> 
    <выражение> - <термин> / <фактор> 
    <выражение> - <термин> 
    <выражение> 
     

    И мы закончили! Дальнейшие сокращения невозможны и не дальнейший ввод для перехода в стек. Если мы достигнем этого состояния с стек, содержащий символ предложения нашей грамматики, ввод был синтаксически правильно. Если мы достигнем этого состояния с чем-либо еще на стек, ввод содержал синтаксическую ошибку. К сожалению, этот разбор Метод не дает прямого намека на природу ошибки.

    Таблицы

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

    admin

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *