| Автор | 
		Сообщение | 
	
	
Snake!
 
 
  Репутация: 0   
 
Сообщения: 1941 
Стаж: 3 года 4 месяца
 | 
		
			
				 01.11.2005 0:17 Преобразование грамматики к LL(1) | 
				         | 
			 
			
				
  | 
			 
			
		  
		  Есть задача:
 
1.Проверить, обладает ли заданная грамматика свойством LL(1), и при необходимости выполнить ее преобразование к этому виду.
 
2.Построить для полученной в п.1 грамматики LL(1)-таблицу разбора.
 
3.Разработать программную реализацию синтаксического анализатора на основе полученной LL(1)-грамматики и соответствующей таблицы разбора. Результат анализа представить в виде синтаксического дерева разбора.
 
 
С программой никаких проблем нет, а вот с преобразование возникли.
 
Исходный вариант выглядит так:
 
P::=bDfLe
 
D::=dcD|d
 
L::=scL|s
 
 
P - аксиома
 
 
Я преобразовал её следующим образом:
 
P::=bDfLe
 
D::=dE
 
E::=cD
 
E::=%
 
L::=sL
 
N::=cN
 
N::=%
 
(% - пустая строка)
 
Как показала практика - преобразование неправильное.
 
 
Может кто знает, как решается данная задача? 
          
          
  Последний раз редактировалось: Snake! (10.11.2005 3:05), всего редактировалось 1 раз | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
Norsk
 
  
  Репутация: +5/–2   
 Возраст: 23
 Гороскоп:    
 Пол:  
Сообщения: 1408 
Стаж: 2 года 3 месяца
 | 
		
			
				 03.11.2005 16:08  | 
				         | 
			 
			
				
  | 
			 
			
		  
		  Господи, а это что зха предмет? Мне тут только форма записи знакома 
           _________________ Всё выше написанное - считать моим личным мнением!
 
  
           | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
roman koff
 
 
  Репутация: +2   
 
 Пол:  
 Откуда: Санкт-Петербург
Сообщения: 369 
Стаж: 2 года 10 месяцев
 | 
		
			
				 03.11.2005 16:55  | 
				         | 
			 
			
				
  | 
			 
			
		  
		  Этот предмет называется СПО 
          
           | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
Snake!
 
 
  Репутация: 0   
 
Сообщения: 1941 
Стаж: 3 года 4 месяца
 | 
		
			
				 03.11.2005 17:01  | 
				         | 
			 
			
				
  | 
			 
			
		  
		  Нет, это теория языков программирования. 
          
           | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
roman koff
 
 
  Репутация: +2   
 
 Пол:  
 Откуда: Санкт-Петербург
Сообщения: 369 
Стаж: 2 года 10 месяцев
 | 
		
			
				 03.11.2005 19:15  | 
				         | 
			 
			
				
  | 
			 
			
		  
		  Или системное программное обеспечение 
          
           | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
Snake!
 
 
  Репутация: 0   
 
Сообщения: 1941 
Стаж: 3 года 4 месяца
 | 
		
			
				 03.11.2005 21:54  | 
				         | 
			 
			
				
  | 
			 
			
		  
		  roman koff
 
Дык может знаешь, как эта задачка решается? 
          
           | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
Snake!
 
 
  Репутация: 0   
 
Сообщения: 1941 
Стаж: 3 года 4 месяца
 | 
		
			
				 05.11.2005 0:32  | 
				         | 
			 
			
				
  | 
			 
			
		  
		  Короче, как оказалось, преобразование грамматики - правильное. Таблица переходов была криво составлена. 
          
           | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
Pauls
 
 
  Репутация: 0   
 
Сообщения: 2 
Стаж: 1 год
 | 
		
			
				 01.12.2006 22:56  | 
				         | 
			 
			
				
  | 
			 
			
		  
		  P::=bDfLe 
 
D::=dE 
 
E::=cD 
 
E::=% 
 
L::=sN ......вот тут у вас была очепятка (sL) 
 
N::=cN 
 
N::=% 
 
(% - пустая строка)
 
а с таблицей МП автомата могут быть проблемы из за правил вида 
 
E::=cD
 
E::=% переход по пустой цепочке в какую ячейку поместите правило ?   
          
           | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
	| 
	
	
	 | 
	
	
	
	
	
		 |