Goals for xtcc - the Data Processing backend:
- One of the main reasons for writing a new data processing software was to address some of the frustrating issues I faced with Quantum.
- I wanted to get rid of the 200 chars per line restriction - a source of many core dumps and unexpected behavious
- Edit restriction like a prefined limit on the number of edit statements
- Label number for loops and branching statements - that too an upper bound of 500 statements
- Subroutines could not be called from a loop
- Weak type checking
- Record length limit of 32768
- ... the list goes on
- Layout independence from column numbers. Ideally I would like the data map to be embedded in the data file. The burden of dealing with column nos should rest on the compiler not the DP
- There is a lot of scope for computer assisted table checking. For example while processing data - we have a raw column number - it is easy to program a function to check the base of the table vs non-blank holecounts. In fact I had this working in a interpreter prior to the compiler.
- Print tables to a variety of formats including html and pdf
- Designed for performance. Data file will be in binary format
- Automatically detect incorrectly formed data files - and stop data processing,
Goals for qscript:
- Easy to use questionnaire scripting language - with support for C like data types.
- Map should be modifiable even after data has been entered
- Statements which can reserve columns for future use
- Hidden questions which can be exposed after coding is done - during data entry on 2nd pass it will only prompt for hidden questions
- Print a pdf questionnaire from the script with routing instructions
Data conversion S/W goals - The glue between the backend and front end
- Ability to convert data files from one architecture to another - ex: i386 to SPARC
- Convert data from qscript to xtcc backend format
-
dpassist Goals - This may seem a bit cryptic but will elaborate more when there is something to demonstrate
- If just a binary data file is present - the program should setup axes based on the data types in the embedded map
- If a qscript file and data file are both present - program should output a detailed axes with stub information, include files and filter conditions