lots of change and add notes
[cdsspec-compiler.git] / notes / impl.txt
index 67eeb673347e14224fa8e85820875fad4dce8039..12e364bda1758a4c9fb0e9405a887cb2cb17cf03 100644 (file)
 3. Happens-before initialization
   This concerns the place where we pass to the specanalysis the happens-before
   rules????
+
+4. To make implementation easier and the spec cleaner, we make a difference C
+  and C++ programs. Since C does not support template and class, we require
+  users to provide an entry point where we can initialize the sequential
+  variables. By default, it's a C++ program, and everything is wrapped in an
+  inner class because it can have easy initialization and template support.
+
+5. We add @Interface_define construct in the specification. Basically,
+  @Interface construct can be used in both interface declaration and interface
+  definition, if they are not separated. However, if they are, then @Interface
+  is used for the interface declaration and @Interface_define is for the
+  interface definition. This is redundant information, but it makes the
+  implementation much easier because we don't need to parse the C/C++ program.