OpenSCENARIO DSL ← OpenSCENARIO 2.x
ASAM对OSC2.0的推出,主要是为了更精准地聚焦于需要的仿真场景,而把其他的部分模糊、泛化,以此克服1.x系列使用xml描述的不必要的繁琐。
而最近的一次会议之后,大家意识到旧的1.x因为符合大家的习惯依然有着巨大的需求,而2.0也需要完善、发展与普及。
因此OSC 1.x系列被更名为OSC XML系列,而OSC 2.x系列被更名为OSC DSL系列。
这篇笔记,主要将针对OSCDSL的设计思想和语法做一个简单的记录。
因为目前仅有几篇来自CASAM的介绍文章,大部分术语译名都由我自己决定。
参考:
总览
取自文档的介绍(Introduction)一节。
理念
OSCDSL以下列理念设计:
- 领域特定语言(DSL,domain-specific language)。顾名思义,它是一种编程语言,但仅在特定领域使用,语法也仅包含这相关的内容。
- 高度抽象描述(high-level abstract descriptions)。就像前文所述,它可以聚焦于特定的场景特点,而完成相对抽象的场景描述。
- 编程语言(programming language)。为了能被集成进实际的项目或软件中,它被设计成编程语言的样子,以便调用等逻辑处理。
- 声明式(declarative language)。它会声明什么该发生,而不是怎么发生。并借助约束条件来完成这点。
- 基于约束条件(constraint-based language)。通过对参数设定值或者范围,它得以定义场景。
- 面向切片语言(AOP,aspect-oriented programming language)。修改特定的内容不会影响整个场景,因此很适合下述目的:
- 修改整个或部分行为。
- 修改所有或部分实例的行为。
- 修改行为以适应特定测试目的。
导读
不同章节包含的内容不同,本篇笔记重点会对“标准”相关的内容做记录。
- 1.Scope
- 2.
- 3.Terms and definitions
- 4.Abbreviations
- 5.
- 6.Conceptual overview
- 7.Language reference manual
- 8.Domain model reference
- 9.User guide
此外,OSCDSL也支持包括外部函数调用等扩展功能,会在后续提到。