+ All Categories
Home > Documents > eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction:...

eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction:...

Date post: 25-Mar-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
56
eXtended Reactive Modules Motivation eXtended Reactive Modules’ features Summary eXtended Reactive Modules Benoît Sigoure <[email protected]> EPITA Research and Development Laboratory September 5, 2006 Benoît Sigoure eXtended Reactive Modules 1 / 34
Transcript
Page 1: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

eXtended Reactive Modules

Benoît Sigoure<[email protected]>

EPITA Research and Development Laboratory

September 5, 2006

Benoît Sigoure eXtended Reactive Modules 1 / 34

Page 2: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Outline

1 MotivationIntroduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

2 eXtended Reactive Modules’ featuresThe packagexrm-front’s features

3 Summary

Benoît Sigoure eXtended Reactive Modules 2 / 34

Page 3: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Outline

1 MotivationIntroduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

2 eXtended Reactive Modules’ featuresThe packagexrm-front’s features

3 Summary

Benoît Sigoure eXtended Reactive Modules 3 / 34

Page 4: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Model-checking, (Reactive) Modules and PRISM

Reactive Modules is a formalism.

Used to concurrent systems.Ideal for .

PRISM is a probabilistic model checker.

Introduces the ...... which is based on Reactive Modules’ syntax.Widely used.

APMC is an Approximate Probabilistic Model Checker.

Uses PRISM’s parser.Can handle very large systems.

Benoît Sigoure eXtended Reactive Modules 4 / 34

Page 5: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Model-checking, (Reactive) Modules and PRISM

Reactive Modules is a formalism.Used to describe concurrent systems.

Ideal for .

PRISM is a probabilistic model checker.

Introduces the ...... which is based on Reactive Modules’ syntax.Widely used.

APMC is an Approximate Probabilistic Model Checker.

Uses PRISM’s parser.Can handle very large systems.

Benoît Sigoure eXtended Reactive Modules 4 / 34

Page 6: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Model-checking, (Reactive) Modules and PRISM

Reactive Modules is a formalism.Used to describe concurrent systems.Ideal for model-checking.

PRISM is a probabilistic model checker.

Introduces the ...... which is based on Reactive Modules’ syntax.Widely used.

APMC is an Approximate Probabilistic Model Checker.

Uses PRISM’s parser.Can handle very large systems.

Benoît Sigoure eXtended Reactive Modules 4 / 34

Page 7: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Model-checking, (Reactive) Modules and PRISM

Reactive Modules is a formalism.Used to describe concurrent systems.Ideal for model-checking.

PRISM is a probabilistic model checker.Introduces the PRISM language...... which is based on Reactive Modules’ syntax.Widely used.

APMC is an Approximate Probabilistic Model Checker.

Uses PRISM’s parser.Can handle very large systems.

Benoît Sigoure eXtended Reactive Modules 4 / 34

Page 8: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Model-checking, (Reactive) Modules and PRISM

Reactive Modules is a formalism.Used to describe concurrent systems.Ideal for model-checking.

PRISM is a probabilistic model checker.Introduces the PRISM language...... which is based on Reactive Modules’ syntax.Widely used.

APMC is an Approximate Probabilistic Model Checker.Uses PRISM’s parser.Can handle very large systems.

Benoît Sigoure eXtended Reactive Modules 4 / 34

Page 9: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

The PRISM language

Main problem: describing large modules is almost impossibleusing the PRISM language.

Module renaming

module process1x1 : [ 0 . . 1 ] ;[ ] ( x1=x5 ) −> 0.5 : ( x1 ’ = 0 ) + 0.5 : ( x1 ’ = 1 ) ;[ ] ! x1=x5 −> ( x1 ’= x5 ) ;

endmodule

/ / Add f u r t h e r processes through renaming .module process2 = process1 [ x1=x2 , x5=x1 ] endmodulemodule process3 = process1 [ x1=x3 , x5=x2 ] endmodulemodule process4 = process1 [ x1=x4 , x5=x3 ] endmodulemodule process5 = process1 [ x1=x5 , x5=x4 ] endmodule

Benoît Sigoure eXtended Reactive Modules 6 / 34

Page 10: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Several limitations

Imagine the previous example with 100 (or more) modules.Would you write them by hand? Copy/paste/edit?

And if you want to run several tests with N modules,N = {1, 2, 3, 5, 10, 15, 100, 1000} ?And if some of the modules are different from the others?⇒ You can’t use variable renaming.⇒ Lots of code duplication. Error prone. Not flexible.

Benoît Sigoure eXtended Reactive Modules 7 / 34

Page 11: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Several limitations

Imagine the previous example with 100 (or more) modules.Would you write them by hand? Copy/paste/edit?And if you want to run several tests with N modules,N = {1, 2, 3, 5, 10, 15, 100, 1000} ?And if some of the modules are different from the others?⇒ You can’t use variable renaming.⇒ Lots of code duplication. Error prone. Not flexible.

Benoît Sigoure eXtended Reactive Modules 7 / 34

Page 12: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Outline

1 MotivationIntroduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

2 eXtended Reactive Modules’ featuresThe packagexrm-front’s features

3 Summary

Benoît Sigoure eXtended Reactive Modules 8 / 34

Page 13: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Sensor networks

The sensor in the middlebroadcasts the alert.Its code must bedifferent.

Benoît Sigoure eXtended Reactive Modules 9 / 34

Page 14: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Sensor networks

The sensors on theedges are not completelysurrounded.Their code for sensingalerts is different.

Benoît Sigoure eXtended Reactive Modules 9 / 34

Page 15: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Possible solutions

We want to model-check sensor networks with manydifferent parameters.Generate PRISM code with scripts.

Use shell/M4/Ruby/Perl/Python/<You name it> scripts.

No real standard.

Benoît Sigoure eXtended Reactive Modules 10 / 34

Page 16: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Possible solutions

We want to model-check sensor networks with manydifferent parameters.Generate PRISM code with scripts:

Use shell/M4/Ruby/Perl/Python/<You name it> scripts.

No real standard.

Benoît Sigoure eXtended Reactive Modules 10 / 34

Page 17: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Possible solutions

We want to model-check sensor networks with manydifferent parameters.Generate PRISM code with scripts:

Use shell/M4/Ruby/Perl/Python/<You name it> scripts.⇒ You need to know a scripting language.

No real standard.

Benoît Sigoure eXtended Reactive Modules 10 / 34

Page 18: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Possible solutions

We want to model-check sensor networks with manydifferent parameters.Generate PRISM code with scripts:

Use shell/M4/Ruby/Perl/Python/<You name it> scripts.⇒ You need to know a scripting language.⇒ Bugs in your script will be hard to debug.

No real standard.

Benoît Sigoure eXtended Reactive Modules 10 / 34

Page 19: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Possible solutions

We want to model-check sensor networks with manydifferent parameters.Generate PRISM code with scripts:

Use shell/M4/Ruby/Perl/Python/<You name it> scripts.⇒ You need to know a scripting language.⇒ Bugs in your script will be hard to debug.⇒ Your attention is distracted from your first objective.No real standard.

Benoît Sigoure eXtended Reactive Modules 10 / 34

Page 20: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

Outline

1 MotivationIntroduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

2 eXtended Reactive Modules’ featuresThe packagexrm-front’s features

3 Summary

Benoît Sigoure eXtended Reactive Modules 11 / 34

Page 21: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

eXtended Reactive Modules

We feel that we need an extended version of the PRISMlanguage.

For loops.If statements.Functions to factor code in common.

We want some kind of compiler that generates PRISMcode.

Benoît Sigoure eXtended Reactive Modules 12 / 34

Page 22: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

eXtended Reactive Modules

We feel that we need an extended version of the PRISMlanguage featuring:

For loops.If statements.Functions to factor code in common.

We want some kind of compiler that generates PRISMcode.

Benoît Sigoure eXtended Reactive Modules 12 / 34

Page 23: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

eXtended Reactive Modules

We feel that we need an extended version of the PRISMlanguage featuring:

For loops.If statements.Functions to factor code in common.

We want some kind of compiler that generates PRISMcode.

Benoît Sigoure eXtended Reactive Modules 12 / 34

Page 24: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

Introduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

eXtended Reactive Modules

We feel that we need an extended version of the PRISMlanguage featuring:

For loops at the meta-level.If statements at the meta-level.Functions to factor code in common at the meta-level.

We want some kind of compiler that generates PRISMcode.⇒ Meta-programming: code partially generated andevaluated at compile time.⇒ Consistency of the generated code is ensured by thecompiler.⇒ Type-checking is possible.

Benoît Sigoure eXtended Reactive Modules 12 / 34

Page 25: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Outline

1 MotivationIntroduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

2 eXtended Reactive Modules’ featuresThe packagexrm-front’s features

3 Summary

Benoît Sigoure eXtended Reactive Modules 13 / 34

Page 26: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Using eXtended Reactive Modules

XRM’s tools are built with the Stratego/XT bundle.

Stratego: a language designed for programtransformations.SDF: Syntax Definition Formalism.Modular definitions make it easy to:

Extend grammars.Embed a grammar into another.

SGLR: Scannerless Generalized LR parser.

Enables ambiguities.Provides several disambiguation filters.

Benoît Sigoure eXtended Reactive Modules 14 / 34

Page 27: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Using eXtended Reactive Modules

XRM’s tools are built with the Stratego/XT bundle.Stratego: a language designed for programtransformations.

SDF: Syntax Definition Formalism.Modular definitions make it easy to:

Extend grammars.Embed a grammar into another.

SGLR: Scannerless Generalized LR parser.

Enables ambiguities.Provides several disambiguation filters.

Benoît Sigoure eXtended Reactive Modules 14 / 34

Page 28: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Using eXtended Reactive Modules

XRM’s tools are built with the Stratego/XT bundle.Stratego: a language designed for programtransformations.SDF: Syntax Definition Formalism.Modular definitions make it easy to:

Extend grammars.Embed a grammar into another.

SGLR: Scannerless Generalized LR parser.

Enables ambiguities.Provides several disambiguation filters.

Benoît Sigoure eXtended Reactive Modules 14 / 34

Page 29: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Using eXtended Reactive Modules

XRM’s tools are built with the Stratego/XT bundle.Stratego: a language designed for programtransformations.SDF: Syntax Definition Formalism.Modular definitions make it easy to:

Extend grammars.Embed a grammar into another.

SGLR: Scannerless Generalized LR parser.Enables ambiguities.Provides several disambiguation filters.

Benoît Sigoure eXtended Reactive Modules 14 / 34

Page 30: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Tools for working with eXtended Reactive Modules

XRM comes with several tools:4 parsers.

PRISM language.XRM language (extended PRISM).PCTL language (for specifying properties to model-check).XPCTL language (PCTL extended with XRM embeddings).

4 pretty-printers.

xrm-front: Front-end that compiles XRM (resp. XPCTL)files into standard PRISM (resp. PCTL) files.

Benoît Sigoure eXtended Reactive Modules 15 / 34

Page 31: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Tools for working with eXtended Reactive Modules

XRM comes with several tools:4 parsers.

PRISM language.XRM language (extended PRISM).

PCTL language (for specifying properties to model-check).XPCTL language (PCTL extended with XRM embeddings).

4 pretty-printers.

xrm-front: Front-end that compiles XRM (resp. XPCTL)files into standard PRISM (resp. PCTL) files.

Benoît Sigoure eXtended Reactive Modules 15 / 34

Page 32: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Tools for working with eXtended Reactive Modules

XRM comes with several tools:4 parsers.

PRISM language.XRM language (extended PRISM).PCTL language (for specifying properties to model-check).XPCTL language (PCTL extended with XRM embeddings).

4 pretty-printers.

xrm-front: Front-end that compiles XRM (resp. XPCTL)files into standard PRISM (resp. PCTL) files.

Benoît Sigoure eXtended Reactive Modules 15 / 34

Page 33: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Tools for working with eXtended Reactive Modules

XRM comes with several tools:4 parsers.

PRISM language.XRM language (extended PRISM).PCTL language (for specifying properties to model-check).XPCTL language (PCTL extended with XRM embeddings).

4 pretty-printers.xrm-front: Front-end that compiles XRM (resp. XPCTL)files into standard PRISM (resp. PCTL) files.

Benoît Sigoure eXtended Reactive Modules 15 / 34

Page 34: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Outline

1 MotivationIntroduction: PRISM and Reactive ModulesTypical example: A sensor networkeXtended Reactive Modules’ solution

2 eXtended Reactive Modules’ featuresThe packagexrm-front’s features

3 Summary

Benoît Sigoure eXtended Reactive Modules 16 / 34

Page 35: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Meta-programming: Meta-For loops (1/2)

Many of the real-world examples must be modelised with manymodules. Meta-For loops are one of the most useful features ofXRM when it comes to large systems.

Writing sensor networks with XRM

const i n t width = 100;const i n t he igh t = 100;

for x from 0 to width − 1 dofor y from 0 to he igh t − 1 do

module sensor [ x ] [ y ]s ta tus [ x ] [ y ] : [ 0 . . MAX_STATE] i n i t SENSE;/ / Commands of the module go here .

endmoduleend

end

Benoît Sigoure eXtended Reactive Modules 18 / 34

Page 36: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Meta-programming: Meta-For loops (1/2)

Here, x and y are declared as meta-vars (variables at themeta-level, that won’t exist in the resulting source code).The for loop will be unrolled by xrm-front.

Writing sensor networks with XRM

const i n t width = 100;const i n t he igh t = 100;

for x from 0 to width − 1 dofor y from 0 to he igh t − 1 do

module sensor [ x ] [ y ]s ta tus [ x ] [ y ] : [ 0 . . MAX_STATE] i n i t SENSE;/ / Commands of the module go here .

endmoduleend

end

Benoît Sigoure eXtended Reactive Modules 18 / 34

Page 37: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Meta-programming: Meta-For loops (2/2)

XRM also has shell-like meta for loops.

Shell-like meta-for loop

module xrmx : [ 0 . . 1 ] i n i t 0;y : [ 0 . . 1 0 ] i n i t 0;z : [ 0 . . 1 ] i n i t 0;for i in x, 1+2, y do

[ ] y= i −> y ’ = y +1;end

endmodule

Benoît Sigoure eXtended Reactive Modules 20 / 34

Page 38: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

Meta-programming: Meta-If statements

Conditional definition of a module

/ / Coordinates o f the sensor broadcast ing the a l e r t .const i n t event_x = 5;const i n t event_y = 5;

for x from 0 to width − 1 dofor y from 0 to he igh t − 1 do

module sensor [ x ] [ y ]i f x = event_x & y = event_y then

/ / This node i s the node broadcast ing the a l e r t .else

/ / Other nodes are def ined here .end

endmoduleend

end

Benoît Sigoure eXtended Reactive Modules 22 / 34

Page 39: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

XRM Arrays

Large modules require many variables.

XRM enables multi-dimensional array declarations.Array subscripts must be evaluable down to positiveintegers at compile time.

XRM Arrays

const i n t N = 4;const i n t M = 2;module

/ / mu l t i−dimensional " sparse " ar rayx [ 0 . . 1 0 ] [ 0 , 2 , 5 . . 7 ] : [ 0 . . 1 ] i n i t 0;[ ] x [N ] [M]=0 −> ( x [N ] [M] ’ = 1 ) ;

endmodule

Benoît Sigoure eXtended Reactive Modules 24 / 34

Page 40: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

XRM Arrays

Large modules require many variables.XRM enables multi-dimensional array declarations.Array subscripts must be evaluable down to positiveintegers at compile time.

XRM Arrays

const i n t N = 4;const i n t M = 2;module

/ / mu l t i−dimensional " sparse " ar rayx [ 0 . . 1 0 ] [ 0 , 2 , 5 . . 7 ] : [ 0 . . 1 ] i n i t 0;[ ] x [N ] [M]=0 −> ( x [N ] [M] ’ = 1 ) ;

endmodule

Benoît Sigoure eXtended Reactive Modules 24 / 34

Page 41: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

XRM Arrays

Large modules require many variables.XRM enables multi-dimensional array declarations.Array subscripts must be evaluable down to positiveintegers at compile time.

XRM Arrays

const i n t N = 4;const i n t M = 2;module

/ / mu l t i−dimensional " sparse " ar rayx [ 0 . . 1 0 ] [ 0 , 2 , 5 . . 7 ] : [ 0 . . 1 ] i n i t 0;[ ] x [N ] [M]=0 −> ( x [N ] [M] ’ = 1 ) ;

endmodule

Benoît Sigoure eXtended Reactive Modules 24 / 34

Page 42: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

XRM Builtins

For the time being, XRM features two new builtins forgenerating random variables:

XRM’s builtins

module samplex : [ 0 . . 5 1 ] i n i t 0;[ ] true −> x ’= stat ic_rand ( 4 2 ) ;[ ] true −> x ’= rand ( 4 2 ) ;

endmodule

Benoît Sigoure eXtended Reactive Modules 26 / 34

Page 43: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

XRM Builtins

For the time being, XRM features two new builtins forgenerating random variables:

Generated code

module samplex : [ 0 . . 5 1 ] i n i t 0;[ ] true −> x ’= <random value >;[ ] true −> x ’= __rand_0 ;

endmodulemodule __rand_0

__rand_0 : [ 0 . . 4 2 ] ;[ ] true −> 1 / 4 3 : ( __rand_0 ’ = 0 ) + 1 / 4 3 : ( __rand_0 ’ = 1 ) +

1 / 4 3 : ( __rand_0 ’ = 2 ) + . . .. . . + 1 / 4 3 : ( __rand_0 ’ = 4 2 ) ;

endmodule

Benoît Sigoure eXtended Reactive Modules 26 / 34

Page 44: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

XRM Parameterized formulas

Parameterized formulas are inlined at their call site.

Code factorized with eXtended formulas

const i n t POWER = 42;

formula consume ( i n t value ) =ba t te ry ’ = b a t t e r y < value ? 0 : b a t t e r y − value ;

formula must_wake_up = / / Some c o nd i t i on ;

module sensorb a t t e r y : [ 0 . .POWER] i n i t POWER;/ / . . .[ ] must_wake_up −> 1: consume (WAKE_UP_COST) ;

endmodule

Benoît Sigoure eXtended Reactive Modules 28 / 34

Page 45: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

eXtended PCTL and other features

PCTL stands for Probabilistic Computational Tree Logic.It’s the language used for specifying properties tomodel-check.XPCTL = PCTL + XRM extensions.

Meta-code.Arrays.Parameterized formulas.

xrm-front can perform as much partial evaluation aspossible (constant propagation and constant expressionevaluation).

Benoît Sigoure eXtended Reactive Modules 29 / 34

Page 46: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

eXtended PCTL and other features

PCTL stands for Probabilistic Computational Tree Logic.It’s the language used for specifying properties tomodel-check.XPCTL = PCTL + XRM extensions.

Meta-code.Arrays.Parameterized formulas.

xrm-front can perform as much partial evaluation aspossible (constant propagation and constant expressionevaluation).

Benoît Sigoure eXtended Reactive Modules 29 / 34

Page 47: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

eXtended Reactive Modules in action

[Demaille et al., 2006]Implementation in Shell + M4/m4sugar:

264 lines of M4 + 247 lines of Shell script.Generates 1316 lines of PRISM + 25 lines of PCTL.

Implementation with eXtended Reactive Modules:

87 lines of XRM + 12 lines of XPCTL.Generates 941 lines of PRISM + 25 lines of PCTL.

Benoît Sigoure eXtended Reactive Modules 30 / 34

Page 48: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

eXtended Reactive Modules in action

[Demaille et al., 2006]Implementation in Shell + M4/m4sugar:

264 lines of M4 + 247 lines of Shell script.Generates 1316 lines of PRISM + 25 lines of PCTL.

Implementation with eXtended Reactive Modules:

87 lines of XRM + 12 lines of XPCTL.Generates 941 lines of PRISM + 25 lines of PCTL.

Benoît Sigoure eXtended Reactive Modules 30 / 34

Page 49: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

eXtended Reactive Modules in action

[Demaille et al., 2006]Implementation in Shell + M4/m4sugar:

264 lines of M4 + 247 lines of Shell script.

Generates 1316 lines of PRISM + 25 lines of PCTL.

Implementation with eXtended Reactive Modules:87 lines of XRM + 12 lines of XPCTL.

Generates 941 lines of PRISM + 25 lines of PCTL.

Benoît Sigoure eXtended Reactive Modules 30 / 34

Page 50: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

The packagexrm-front’s features

eXtended Reactive Modules in action

[Demaille et al., 2006]Implementation in Shell + M4/m4sugar:

264 lines of M4 + 247 lines of Shell script.Generates 1316 lines of PRISM + 25 lines of PCTL.

Implementation with eXtended Reactive Modules:87 lines of XRM + 12 lines of XPCTL.Generates 941 lines of PRISM + 25 lines of PCTL.

Benoît Sigoure eXtended Reactive Modules 30 / 34

Page 51: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

In conclusion...

eXtended Reactive Modules provides a quite complete andreliable way of performing model-checking on largemodels.Benefit from APMC’s ability to handle large systems.XRM is quite reliable and passes 93% of the 616 tests ofits test suite.

Future work:Type checking. Bound checking.Non-static array accesses.Modularity through imports.Optimizations.C Back-end to replace PRISM’s compiler.

Benoît Sigoure eXtended Reactive Modules 31 / 34

Page 52: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

In conclusion...

eXtended Reactive Modules provides a quite complete andreliable way of performing model-checking on largemodels.Benefit from APMC’s ability to handle large systems.XRM is quite reliable and passes 93% of the 616 tests ofits test suite.

Future work:Type checking. Bound checking.Non-static array accesses.Modularity through imports.Optimizations.

C Back-end to replace PRISM’s compiler.

Benoît Sigoure eXtended Reactive Modules 31 / 34

Page 53: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

eXtended Reactive ModulesMotivation

eXtended Reactive Modules’ featuresSummary

In conclusion...

eXtended Reactive Modules provides a quite complete andreliable way of performing model-checking on largemodels.Benefit from APMC’s ability to handle large systems.XRM is quite reliable and passes 93% of the 616 tests ofits test suite.

Future work:Type checking. Bound checking.Non-static array accesses.Modularity through imports.Optimizations.C Back-end to replace PRISM’s compiler.

Benoît Sigoure eXtended Reactive Modules 31 / 34

Page 54: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

Appendix Bibliography

Bibliography I

Alur, R. and Henzinger, T. A. (1999).Reactive modules.Formal Methods in System Design.

Bravenboer, M., van Dam, A., Olmos, K., and Visser, E.(2005).Program transformation with scoped dynamic rewrite rules.Technical Report UU-CS-2005-005, Institute of Informationand Computing Sciences, Utrecht University.

Benoît Sigoure eXtended Reactive Modules 32 / 34

Page 55: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

Appendix Bibliography

Bibliography II

Demaille, A., Peyronnet, S., and Hérault, T. (2006).Probabilistic verification of sensor networks.In Proceedings of the Fourth IEEE International Conferenceon Computer Sciences, Research, Innovation and Visionfor the Future (RIVF), Ho Chi Minh City, Vietnam.

LRDE — EPITA Research and Developpement Laboratory(2005).Transformers home page.http://transformers.lrde.epita.fr.

Stratego.http://www.stratego-language.org.

Benoît Sigoure eXtended Reactive Modules 33 / 34

Page 56: eXtended Reactive Modules - EPITAsigoure/seminars/extended... · 2006. 9. 5. · Introduction: PRISM and Reactive Modules Typical example: A sensor network eXtended Reactive Modules’

Appendix Bibliography

Bibliography III

xrm-svn.https://svn.lrde.epita.fr/svn/xrm/.

Benoît Sigoure eXtended Reactive Modules 34 / 34


Recommended