Project

General

Profile

Язык описания шаблонов тестовых программ » History » Version 7

Alexander Kamkin, 09/25/2011 01:13 PM

1 4 Alexander Kamkin
h1. Язык M4TEST описания шаблонов тестовых программ
2 1 Alexander Kamkin
3 7 Alexander Kamkin
Язык M4TEST (*M*acro 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>