Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты по ЯП.doc
Скачиваний:
11
Добавлен:
23.09.2019
Размер:
86.02 Кб
Скачать
  1. Проверить, является ли верным заданное предусловие

{3 <= |x| <= 4} if x<0 then y := -x else y := x {2 <= y <=4}

15.

1. Статическое и динамическое связывания . Типы связывания

2 рассотреть программу

void fun (void) {

i

Для каждой из четырех отмеченных точек функции перечислить все видимые переменные

nt a,b,c;

while (…) {

int b,c,d;

…………(1)

while (…) {

int c,d,e;

…………(2)

}

…………(3)

}

………..(4)

}

3. Дана грамматика

S  ABC|Sa|Sb|Sc

A aA|a|ε

B bB|b|1B

C cC|c|1c

Сделать 5 различных порождений и синтаксических деревьвев к ним.

  1. Проверить, является ли верным заданное предусловие

{ia<=na or ia<=na+1 and ib <=nb}

if ib > nb or ia<= na then ia:= ia+1 else ib:= ib+1 {ia <= na+1}

16.

1. Переменная. Типы переменных с точки зрения связывания

  1. рассмотреть программу

void fun (void) {

i

Для каждой из четырех отмеченных точек функции перечислить все видимые переменные

nt a,b,c;

while (…) {

int b,c,d;

…………(1)

while (…) {

int c,d,e;

…………(2)

}

…………(3)

}

………..(4)

}

3.Описать грамматику оператора присваивания такую, что

Т = {+ , - , *, / , (, ), A, B, C, …, X}.

Сделать порождениe и синтаксическое дерево оператора С = ((A+B)*(С-D))/S

4. Определить предусловие

{?} x := 5 (z – y) + 7

x := 4*x – y + 10 {x – y > 0}

17.

1. Определение типа данных. Контроль типов. Строгая типизация

2. Предполагая использование динамического обзора, указать, какие переменные видимы во время вызова каждой функции при указанной последовательности вызовов

void fun1 (void) ; /* прототипы */

void fun2 (void) ;

void fun3 (void) ;

void main (); {

int a, b, c ;

fun1-> fun3

fun2 -> fun3 -> fun1->

}

void fun1 (void) { int b, c, d ; …}

void fun2 (void) { int c, d, e ; …}

void fun3 (void) { int d, e, f; …}

3. Написать однозначную грамматику для оператора A = (D-C)+C*B, сделать его порождение и дерево

4. Определить предусловие

{?} if x < 0 then y := -x else y := x {y > 0}

18.

1. Определение типа данных. Эквивалентность типов

2. Предполагая использование динамического обзора, указать, какие переменные видимы во время вызова каждой функции при указанной последовательности вызовов

void fun1 (void) ; /* прототипы */

void fun2 (void) ;

void fun3 (void) ;

void main (); {

int a, b, c ;

fun2 -> fun3 -> fun1->

}

void fun1 (void) { int b, c, d ; …}

void fun2 (void) { int c, d, e ; …}

void fun3 (void) { int d, e, f; …}

3. Дана грамматика

S  аS|cВ|A|b

A cA|c

B d|A

Определить, принадлежат ли цепочки abcd, acccbd, acccbcc, acd, acc к языку, порождаемому данной грамматикой.

  1. Проверить правильность утверждений

{ 10 < y < x + 100 and 0 <= x < 13 } x:= x – 5 { 10 < y and x < 8 }

19.

1. Время жизни переменной, область видимости статический и динамический обзоры данных

2. Предполагая использование динамического обзора, указать, какие переменные видимы во время вызова каждой функции при указанной последовательности вызовов

void fun1 (void) ; /* прототипы */

void fun2 (void) ;

void fun3 (void) ;

void main (); {

int a, b, c ;

fun2 -> fun3 -> fun1->

fun3 -> fun1

}

void fun1 (void) { int b, c, d ; …}

void fun2 (void) { int c, d, e ; …}

void fun3 (void) { int d, e, f; …}

3. Дана грамматика

S  аScВ|A|b

A cA|c

B d|A

Определить, принадлежат ли цепочки abcd, acccbd, acccbcc, acd, acc к языку, порождаемому данной грамматикой.

  1. Проверить правильность утверждений

{ 10 < y < x + 100 and 0 <= x < 13 } x:= x – 5 { 10 < y and x < 8 }

20

1. Среда ссылок. Объяснить, есть ли разница между временем жизни и областью видимости переменной

2. Предполагая использование динамического обзора, указать, какие переменные видимы во время вызова каждой функции при указанной последовательности вызовов

void fun1 (void) ; /* прототипы */

void fun2 (void) ;

void fun3 (void) ;

void main (); {

int a, b, c ;

fun1-> fun3 -> fun2

}

void fun1 (void) { int b, c, d ; …}

void fun2 (void) { int c, d, e ; …}

void fun3 (void) { int d, e, f; …}

  1. Дана грамматика

S AaBb

A Ab|b

B aB|a

Определить, принадлежат ли цепочки baab, bbbab, bbaaaa, bbaab к языку, порождаемому данной грамматикой.

  1. Проверить правильность утверждений

{ 10 < y < x + 100 and 0 <= x < 13 } x:= x – 5 { 10 < y and x < 8 }

21.

1. Переменная. Типы переменных с точки зрения связывания

2. Предполагая использование динамического обзора, указать, какие переменные видимы во время вызова каждой функции при указанной последовательности вызовов

void fun1 (void) ; /* прототипы */

void fun2 (void) ;

void fun3 (void) ;

void main (); {

int a, b, c ;

fun3-> fun2 -> fun1

}

void fun1 (void) { int b, c, d ; …}

void fun2 (void) { int c, d, e ; …}

void fun3 (void) { int d, e, f; …}

  1. Дана грамматика

S AaBb

A Ab|b

B aB|a

Определить, принадлежат ли цепочки baab, bbbab, bbaaaa, bbaab к языку, порождаемому данной грамматикой.