Название: Информатика (формальные языки и грамматики) - Методическая разработка(С.Е. Рояк)

Жанр: Информатика

Просмотров: 1363


Задачи и упражнения

 

1. Какие из перечисленных языков можно рассматривать как метаязыки:

а) ПАСКАЛЬ;

б) русский язык;

в) язык дорожных знаков;

г) нормальные формы Бэкуса;

д) язык исчисления высказывания.

2. В НФБ определите смысл обозначений:

а) < буква >-

б)::= -

в) | -

г) begin -

д) < буква >< цифра > -

ж) < буква >I< цифра > -

3. Какой язык определяет правило в НФБ:

<цифра>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

а) язык целых чисел; б) язык цифр; в) никакой язык.

4. Переведите правило из НФБ в РБНФ:

<идентификатор>::= <буква>|<идентификатор><буква>| <идентификатор><цифра>

5. Переведите правило из РБНФ в НФБ:

<целое число>::= [+|-] {<цифра>}

6. Какая из приведенных ниже синтаксических диаграмм описывает тот же язык, что и в упражнении 4:

a)

Ошибка! Закладка не определена.b)

c)

 

7. Для языка, заданного БНФ, постройте синтаксическую(ие) диаграмму(ы):

<программа>::=<идентификатор><оператор GO TO > |

<идентификатор><оператор GO TO ><программа>

<оператор GO TO >::= GO TO <идентификатор>

<идентификатор>::=<буква>|<буква><идентификатор>

<буква>::=A|B|C|...|Z

 

8. По данной синтаксической диаграмме постройте БНФ:

 

 

9. Опишите язык целых чисел в Паскале:

а) используя БНФ;

б) используя РБНФ;

в) используя синтаксические диаграммы.

10. Модифицируйте язык из упр. 9 таким образом, чтобы правильными считались целые числа без незначащих нулей.

а) БНФ; б) РБН Ф; в) синтаксические диаграммы.

11. Опишите язык арифметических выражений. Алфавит языка: числовые константы (вещественные и целые), идентификаторы, операции +,-,*,/, скобки (,).

12. Опишите язык линейных программ для языка Паскаль, используя простые переменные стандартного типа.

а) БНФ; б) синтаксические диаграммы.

13. Выделите, какие вспомогательные языки вам понадобились для выполнения упр. 12.

14. Постройте иерархическую структуру языков, используя ваше описание языка из упр.12

15. Для языка, заданного БНФ, постройте синтаксическую(ие) диаграмму(ы)

<текст>::=<предложение>|< предложение >< текст >

< предложение >::=<NP><VP>

<NP>::= <артикль><существительное>

<VP>::= <глагол> <наречие>|<глагол>

<глагол>::= studies           < артикль >::= The

<существительное>::=student

<наречие>::=hard            <наречие>::=slowly

16. По данной синтаксической диаграмме постройте БНФ:

 

 

17. Опишите язык разветвляющихся программ без описания типов, используя:

а) БНФ; б) синтаксические диаграммы. (За основу возьмите конструкцию if then; и if then else.)

18. Попробуйте выполнить задание из упражнения 17, взяв за основу условные операторы языка Фортран. Объясните, в чем отличие данного описания и описания языка из упр.17.

19. Опишите язык циклических программ без описания типов, используя БНФ:

а) на основе оператора while do; б) на основе оператора for языка СИ.