QUEUE class type Element Queue value empty Queue
- Slides: 19
Очередь. Алгебраическая спецификация QUEUE = class type Element, Queue value empty: Queue, append : Element >< Queue -> Queue, first : Queue -~-> Element, rest : Queue -~-> Queue axiom forall e : Element, q : Queue : empty ~= append (e, q), first(append(e, empty)) is e, rest(append(e, empty)) is empty, first(append(e, q)) is if q=empty then e else first(q) end, rest(append(e, q)) is if q=empty then empty else append(rest(q)) end ВМи. К МГУ. Сентябрь-декабрь 2001 А. К. Петренко. Формальные спецификации программ - I. Лекция 2 10
Пример трансформаций типа re-writing … axiom forall e : Element, q : Queue : empty ~= append (e, q), first(append(e, empty)) is e, rest(append(e, empty)) is empty, first(append(e, q)) is if q=empty then e else first(q) end, rest(append(e, q)) is if q=empty then empty else append(e, rest(q)) end rest(append(a, append (b, empty))) append(a, rest(append (b, empty))) append(a, empty) ВМи. К МГУ. Сентябрь-декабрь 2001 А. К. Петренко. Формальные спецификации программ - I. Лекция 2 11
Очередь. Явная спецификация QUEUE = class type Element, Queue = Element-list value empty: Queue, append : Element >< Queue -> Queue, first : Queue -~-> Element, rest : Queue -~-> Queue axiom forall e : Element, q : Queue : empty is <. . >, append(e, q) is q ^ <. e. >, first(q) is hd q pre q~=<. . >, rest(q) is tl q pre q~=<. . > end ВМи. К МГУ. Сентябрь-декабрь 2001 А. К. Петренко. Формальные спецификации программ - I. Лекция 2 12
Очередь. Неявная спецификация QUEUE = class type Element, Queue = Element-list value empty: Queue, append : Element >< Queue -> Queue, first : Queue -~-> Element, rest : Queue -~-> Queue axiom forall e : Element, q : Queue : empty is <. . >, append(e, q 1) as post q 1 ^ <. e. > = q 2, first(q) as e post hd q= e pre q~=<. . >, rest(q 1) as q 2 post exists e : Element : - <. e. > ^ q 1 = q 2 pre q~=<. . >, end ВМи. К МГУ. Сентябрь-декабрь 2001 А. К. Петренко. Формальные спецификации программ - I. Лекция 2 14
Очередь. Неявная спецификация (зеркало) QUEUE = class type Element, Queue = Element-list value empty: Queue, append : Element >< Queue -> Queue, first : Queue -~-> Element, rest : Queue -~-> Queue axiom forall e : Element, q : Queue : empty is <. . >, append(e, q 1) as q 2 post <. e. > ^ q 1 = q 2, first(q 1) as e post exists q 2 : Queue : - q 2 ^ <. e. > = q 1 rest(q 1) as q 2 post tl q 1= q 2 pre q 1~=<. . >, end ВМи. К МГУ. Сентябрь-декабрь 2001 А. К. Петренко. Формальные спецификации программ - I. Лекция 2 15
- Is it possible to create an object of an empty class type
- Contoh value creation
- Priority queue vs queue java
- Reference type and value type
- Bottom up heap construction example
- Distinguish between a signal element and a data element.
- Signal element vs data element
- Queue abstract data type
- Priority queue abstract data type
- Queue abstract data type
- Value element of art photography
- Value art element
- Short story definition
- Pure element -only one type of atom present
- Elements of shakespearean tragedy
- Slidetodoc
- Which fits best in the empty box above?
- Cask of amontillado answers
- Spits like a tame cat turned savage
- Structure of skin diagram