是否有正式/传统的方式来描述数据/命令交换协议?例如,对于编程语言,有多种方法来描述语法和语义(如:http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form)。正式描述协议的方式
我正在寻找的方法是相当实用的(与学术相反)。我需要一些日常用于数据交换描述的同时处理规范,只是为了向其他人传达/清晰地传达想法。所以,如果有些东西不被认为是事实上的标准,但是有用的 - 它也可以。
我看了一下UML序列图和“通信协议规范和验证的正式方法”,由卡尔A.阳光,1979年。前一种方法没有描述“有效载荷”(至少从我所理解的内容中),而后一种方法是一种描述考虑因素而非方法的教育性论文(尽管我仍在阅读本文)。
在此先感谢
BNF是模拟协议一个糟糕的方式。它并没有模拟值得一提的状态。 (你可能能够定义字符串来回,但大多数BNF是上下文无关的,这意味着“没有太多的过去的记忆(左上下文)”,它可能用于模型消息结构。但是你可能想要一个更复杂的模型涉及到约束;检查XML Schemas是一个更复杂的数据建模工具,它是BNF的一个超集。 – 2014-12-08 18:17:49
我怀疑Wirth将协议的定义限制为EBNF可以捕获的协议的定义,不仅限于他禁止声明之前使用他的编程语言中的规则和类型声明,但是...点好了(我一定会看看XSD ... :-) – 2014-12-09 01:16:09