0%

OpenSCENARIO DSL笔记

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也支持包括外部函数调用等扩展功能,会在后续提到。

术语和定义