MSc (Conversion) Individual Project Proposal 1993 _______________________________________________________ Proposer: Iain Stewart, room 348, ext 4982 Title: A Language With Units and Dimensions Outline: In a language where numerical calculations are done, the real-life quantities very often have dimensions (eg, length, acceleration, viscosity) and units in these dimensions (say metres of length, foot-poundals of energy, or whatever). But in the machine, they are usually all just stored as REAL. This puts a large burden of consistency checking on users of the language. For example, you could accidentally add metres to kilograms, which is simply wrong. Or you could add metres to feet, which is meaningful but will give the wrong answer (because you should have remembered to convert one to the other!). Since everything is just type REAL, the machine will not complain. So the idea of the project is to design and implement a language with units and dimensions as part of the type-structure---so that never again do people make these errors! Since as far as I know this has never been done before, the project should be taken as a "concept study", and it will be quite enough to implement a very cut-down language, perhaps with just a main program and no procedures, or a very simple functional interpreter if you prefer functional languages. The main point is to see if a nice, natural syntax and semantics for units and dimensions is feasible.