1 = Roadmap = 2 3 There are plenty of potential improvements that could be made to the software. 4 These could potentially constitute a roadmap of sorts. 5 6 == Better Error Handling == 7 8 Errors are not very informative and could be reported and handled better. 9 10 == Better Input Validation == 11 12 The code generally assumes that some forms of input will make sense in the 13 output. Moreover, some characteristics of the output might result in deficient 14 program behaviour. For instance, where the opcodes of individual interfaces 15 combined into a compound interface conflict, the resulting code will not be 16 able to deliver messages to all of the conflicting operations, and the tool 17 should really be detecting such conditions. 18 19 == Tidier Code Generation == 20 21 Having written the software in C, very basic techniques have been used to 22 generate code, and these have also had some impact on the output itself. 23 Ideally, more sophisticated templating would be used to make the workings of 24 the code generation more obvious. 25 26 == Reimplementation in Another Language == 27 28 It might be interesting to reimplement the tool in Python and to use a similar 29 parsing toolkit. [[http://www.dabeaz.com/ply/|PLY]] would be a potentially 30 usable candidate. 31 32 == More Abstract Type Handling == 33 34 Types employed in interface descriptions are currently mostly propagated to 35 generated code without any attempt to understand them. Other interface 36 description languages permit the definition and use of structured types.