JCircus 2.0: an extension of an automatic translator from Circus to - - PowerPoint PPT Presentation

jcircus 2 0 an extension of an automatic translator from
SMART_READER_LITE
LIVE PREVIEW

JCircus 2.0: an extension of an automatic translator from Circus to - - PowerPoint PPT Presentation

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work JCircus 2.0: an extension of an automatic translator from Circus to Java Samuel Lincoln Magalhes Barrocas 1 Marcel Vincius Medeiros


slide-1
SLIDE 1

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work

JCircus 2.0: an extension of an automatic translator from Circus to Java

Samuel Lincoln Magalhães Barrocas1 Marcel Vinícius Medeiros Oliveira1

1Universidade Federal do Rio Grande do Norte, Brazil

Communicating Process Architectures 2012

slide-2
SLIDE 2

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work

Outline

1

Introduction Motivation

2

Circus The Circus language

3

JCSP JCSP concepts JCSP limitations

4

JCircus JCircus

5

Extensions to JCircus Extensions to JCircus

6

Performance Analysis Performance Analysis

7

Conclusions and Future Work Conclusions and Future Work

slide-3
SLIDE 3

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Motivation

Why translating formal specifications into code? It is possible to reduce the occurrence of errors in the implementation of software systems from formal specifications...

Figure : Formal specification to code

slide-4
SLIDE 4

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Motivation

Goal To extend JCircus by providing an optimized strategy to translate the Multi-synchronisation primitive; a strategy to translate communications with arbitrary field decorations (e.g. c?x!y.10); a strategy to translate alphabetized parallelism; the translation of deadlock-free GUI processes to interact with the generated processes; the integration of JCircus with a refinement tool, called CRefine;

slide-5
SLIDE 5

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work The Circus language

Circus Syntax Z + CSP + Refinement Calculus + G.C. language; Circus Specification - formed by paragraphs: Z paragraph, Channel declaration paragraph, Channel set declaration paragraph and Process paragraph;

slide-6
SLIDE 6

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work The Circus language

Roulette

Figure : The Roulette process

slide-7
SLIDE 7

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work The Circus language

Croupier

Figure : The Croupier process

slide-8
SLIDE 8

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work JCSP concepts

JCSP concepts Java API for implementing CSP constructs; Processes are classes with the CSProcess interface; The behavior of each process is implemented in its run method; Parallelism: Parallel class; External choice: Alternative; Multi-Synchronisation: AltingBarrier;

slide-9
SLIDE 9

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work JCSP limitations

JCSP limitations Concurrency model different from CSP’s concurrency model; Partial implementation of the Communication primitive: JCSP channels only communicate one value at most; Multi-synchronisation without communication; External choice without alting processes;

slide-10
SLIDE 10

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work JCircus

JCircus’ definition Java application that translates Circus specifications into Java code;

slide-11
SLIDE 11

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work JCircus

JCircus’ modules Parser Typechecker Pre-processor Translator

slide-12
SLIDE 12

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work JCircus

JCircus’ initial screen

Figure : JCircus’ initial screen

slide-13
SLIDE 13

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Extensions provided to JCircus Optimized Multi-synchronisation; Complex communications; Alphabetized parallelism; Deadlock-free GUI; Integration with CRefine;

slide-14
SLIDE 14

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Optimized Multi-synchronisation Protocol x Alting Barriers; Use of alting barriers;

slide-15
SLIDE 15

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Complex communications :: Definition Simple communication x Complex communication; ch?x?y is a complex communication; ch.5?x and ch!4!7 are not complex communications; JCSP does not implement communications with more than

  • ne field
slide-16
SLIDE 16

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Complex communications :: Strategy Expansion of the possibilities of communication; Assignment of the values to the input variables; Inference of the next action based on the chosen communication (in the case of an external choice);

slide-17
SLIDE 17

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Complex communications :: Strategy

Figure : Example

slide-18
SLIDE 18

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Alphabetized Parallelism Hoare’s parallelism x Alphabetized parallelism JCSP: implements Hoare’s parallelism; Circus: Parallelism is alphabetized; Challenge: To force interleaving between occurrences of common events;

slide-19
SLIDE 19

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Alphabetized Parallelism :: Translation The strategy uses channel renaming, and consists of the following steps: Identification of the parallel branches; Construction of the synchronisation sets; Defining the renaming of each parallel branch; Renaming processing; Hiding the renaming from the interface;

slide-20
SLIDE 20

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Alphabetized Parallelism

Figure : Example

slide-21
SLIDE 21

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Deadlock-free GUI For each process generated in JCSP , it is generated, also in JCSP , a GUI that interacts with it; There was a strategy for generating a GUI in the original version of JCircus, but it was not deadlock-free;

slide-22
SLIDE 22

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Deadlock-free GUI

Figure : Example

slide-23
SLIDE 23

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Integration with CRefine CRefine is a tool that automates the application of laws to refine specifications; The integration demanded the migration of JCircus to CZT’s newest parser of Circus;

slide-24
SLIDE 24

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Extensions to JCircus

Integration with CRefine

Figure : Example

slide-25
SLIDE 25

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Performance Analysis

Multi-synchronisation

Figure : Example

slide-26
SLIDE 26

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Performance Analysis

Complex Communications

Figure : Example

slide-27
SLIDE 27

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Performance Analysis

Alphabetized Parallelism

Figure : Example

slide-28
SLIDE 28

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Conclusions and Future Work

Conclusions and Future Work Translation of Hiding; Translation of Schema types; Optimization of complex communications;

slide-29
SLIDE 29

Introduction Circus JCSP JCircus Extensions to JCircus Performance Analysis Conclusions and Future Work Conclusions and Future Work

Questions?