Язык описания шаблонов тестовых программ » History » Version 8
Alexander Kamkin, 09/25/2011 01:14 PM
1 | 4 | Alexander Kamkin | h1. Язык M4TEST описания шаблонов тестовых программ |
---|---|---|---|
2 | 1 | Alexander Kamkin | |
3 | 8 | Alexander Kamkin | Язык M4TEST (Macro for TEST programs language) предназначен для компактного и переиспользуемого описания тестов для микропроцессоров и других программируемых устройств. Язык представляет собой смесь базового языка ассемблера (АЯ) и управляющего языка высокого уровня (УЯ). УЯ можно рассматривать как препроцессор, поскольку результатом выполнения его конструкций является текст на АЯ. Кроме того, никто не запрещает пользоваться стандартными препроцессорами (например, препроцессором языка программирования С или макропроцессора m4). |
4 | 1 | Alexander Kamkin | |
5 | 2 | Alexander Kamkin | Шаблон - это последовательность операторов. |
6 | |||
7 | 1 | Alexander Kamkin | <pre> |
8 | Template ::= Statement* |
||
9 | </pre> |
||
10 | |||
11 | 2 | Alexander Kamkin | Операторы делятся на два класса: реальные операторы (операторы, которые порождают код) и мета операторы (операторы, которые используются для управления генерацией кода). |
12 | |||
13 | 1 | Alexander Kamkin | <pre> |
14 | 2 | Alexander Kamkin | Statement ::= RealStatement | MetaStatement |
15 | 1 | Alexander Kamkin | </pre> |
16 | |||
17 | <pre> |
||
18 | 2 | Alexander Kamkin | InstructionStatement ::= (Instruction | InstructionClass) (@ Situation)? |
19 | 1 | Alexander Kamkin | </pre> |
20 | |||
21 | 2 | Alexander Kamkin | Формат инструкции зависит от ассемблера. Обычно он имеет следующий вид: |
22 | |||
23 | 1 | Alexander Kamkin | <pre> |
24 | ConcreteInstruction ::= Identifier (Parameter (, Parameter)+)? |
||
25 | </pre> |
||
26 | |||
27 | <pre> |
||
28 | InstructionClass ::= Identifier (Parameter (, Parameter)+)? |
||
29 | 2 | Alexander Kamkin | </pre> |
30 | |||
31 | <pre> |
||
32 | MetaStatement ::= MetaVariableDeclaration | |
||
33 | MetaVariableAssignment | |
||
34 | MetaIfStatement | |
||
35 | MetaForStatement | |
||
36 | MetaWhileStatement | |
||
37 | ... |
||
38 | |||
39 | 1 | Alexander Kamkin | </pre> |