We currently have a pre-compiler written in C++ and need a really good coder to do some changes and modifications. This is a multi-phased project. The source code will be provided and any supporting test programs to test the compiler. The compiler currently works but is lacking some functionality and some error reporting code.
When I refer to the "compiler", I am refering to the parsing and intermediate code tranlastion code. The actual back end of the compiler is a an existing general compiler which will compile C++ into machine code.
The current compiler runs as a custom windows API. There is no UI. It is executed from a test program written in VB. After the initial parsing is complete, the compiler does open up the command window during operation (something that needs to be eliminated.) The source code that is being sent to the compiler is written in a language similar to pascal but very simplistic. The source code is proprietary to our company and only the finally bidder will be sent the manual describing the use of the source code.
The compiler will compile user defined functions for the source code as a seperate file. User defined functions are then used in the main application being compiled. The intermediate file output is a C++ program which is then run through Microsoft's compiler. The final output is a DLL which can only be run using a custom windows API.
When the final output is compiled (referred to as a "strategy") it is run using the API from a VB test program. The strategy requires several input parameters. The strategy then reads a data source file (currently a text file), goes through a lengthy calculation process and then outputs 5 seperate text files to the local disk.
Statement of Work:
1. Modify the compiler so that the strategies will read from a proprietary data source and not from a text file. This data source is a metastock data source.
2. Modify the compiler so that the strategy will output the results of the progam back to the calling program.
3. Improve the error handling routine. Currently there are just a few errors return codes such that a number of errors are returned under the same condition. Also, when the compiler has a problem, the error codes returned are very limited.
4. The handling of user defined functions may need to be reviewed to ensure that it is totally functional and the proper error codes are being generated.
5. Review the code and replace any obsolete/legacy #include statements with current versions.
6. Correct any coding issues if the compiler does not compile properly. Currently there is an issue with the compiler handling a user defined function within a user defined function.
7. Part of the precompiler is a chuck of code used as a wrapper. The wrapper is the largest part of the final code that will be compiled. The wrapper does not change but is currently used as a namespace. It is in a non-compiled state and therefore takes most of the time in the compile process. I would be more effecient to make this wrapper a compiled part of the code which doesn't need to be compiled each time a strategy is compiled. This will reduce compiling time down by more than 90% or more.
8. After making the code efficient the next step would be to convert this to a C# application. Possibly a second step to the project.
Timeframe:I estimate that a good programmer can accomplish this work in 10 to 20 hours.