esa / opengeode

OpenGEODE - a free SDL editor
https://opengeode.net
GNU Lesser General Public License v3.0
69 stars 20 forks source link

type of channel. #63

Closed maxime-esa closed 3 years ago

maxime-esa commented 4 years ago

My third question is about the type of channel.

Q3: Is it a nodelaying channel at the current version (between process and ENV)? If I use a delaying channel, what is the generated Ada code?

In fact, I find OpenGEODE only accepts a subset of SDL92 and some features of SDL2000, for instance, structure information is missing (TASTE does it). There is no information about the type of channel within the source OpenGEODE code.

Q4: do you have a detailed BNF for OpenDEODE? Within the source project, sdl92.g includes many details but some of them are useless, for instance, we only have one block and one process. ogAST.py also says the system's blocks & channels are list type... If the BNF document is missing, I could try to write one and maybe you could give me some suggestions when you're free.

I also check some test examples, it's really helpful for me to understand how to design SDL model within OpenGEODE. Thanks!

Originally posted by @nuaaysh in https://github.com/esa/opengeode/issues/62#issuecomment-646924471

maxime-esa commented 4 years ago

@nuaaysh I created a separate issue to avoid mixing the questions that are unrelated

Q3: The channel has no type indeed. The code generates one procedure for each input signal, but it is left to the runtime environment to provide the actual communication mechanism (inter-thread communication) - this is what TASTE does. What are you looking for in addition?

Q4: sdl92 is the grammar that is used to generate the parser with ANTLR3. It is the formal reference for the SDL language subset used in TASTE. Are you missing anything there ?

nuaaysh commented 4 years ago

Thanks for your reply!

About Q3, I have checked the TASTE tool, it provides periodic, sporadic information. From some example provided by TASTE, I find generated C/Ada functions are different if the ports are different. So, for TASTE, the SDL models just like Ada or C code, are used to express functionality. While the OpenGEODE focuses on the EFSM part and code generation.

About Q4, yeah, I made a mistake, the SDL92.g includes all information I need.