70 likes | 170 Views
Ham Compiler Progress. Robert Pointon Hume Meeting Heriot-Watt. Hume Tools. phamc: hume to ham (Haskell program). ham2c: ham compiler (C program). Naïve macro expansion… Config files to specify architecture. Runtime system for ham. Compiled for a specific architecture.
E N D
Ham Compiler Progress Robert Pointon Hume Meeting Heriot-Watt
Hume Tools • phamc: hume to ham (Haskell program). • ham2c: ham compiler (C program). • Naïve macro expansion… • Config files to specify architecture. • Runtime system for ham. • Compiled for a specific architecture. • humec: pulls everything together. % humec pump.hume Executable ‘pump’.
hamc progress • Expansion of opcodes. 90% • Generate wiring consume/checking. • Generate I/O interfacing. 90% • Generate basic scheduling code. • Make easy to use with the Renesas tools, i.e. Windows executable.
Todo - short term • Complete Renesas version. • Gather some initial results comparing hamc, hami, and the hume interpreter. • What to use as benchmark programs? • Profile hamc implementation. • Write a report/paper?
Todo - long term • Boxes • Phamc to provide type info for ham opcodes. • Specialization of code. • Wires • Reuse of wire values/heaps. • Foreign Language Interface. • Scheduling improvements. • Alternatives to naïve opcode expansion. • Using more info from various analyses.