Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты по ЯП.doc
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
86.02 Кб
Скачать
  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}

22.

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

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

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

void fun2 (void) ;

void fun3 (void) ;

void main (); {

int a, b, c ;

fun1-> fun2 -> fun3

}

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

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

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

3.Описать однозначную грамматику выражений такую, что

Т = {+ , - , *, / , (, ), A, B, C, …, X, Y, Z, 0, 1, …9 }.

V = { E, I }, где Е произвольное выражение, I идентификатор всегда начинающийся с буквы.

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

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

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

23.

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

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

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