A method (100) of translating an imperative language function into a
parameterized hardware component can include the steps of using (102)
formal imperative function arguments to represent at least one among a
component input port and a component parameter and distinguishing (104)
between formal imperative function arguments intended as component
parameters from formal imperative function arguments intended as
component input ports. The method can generate (106) hardware description
by providing a framework where imperative language functions can be
translated into hardware components by being instantiated, combined and
simulated. Arbitrary code can be associated (108) to a function-importing
block as parameterization code and enabling an assignment of arbitrary
code to actual imperative function arguments. The arbitrary code can be
executed (110) in an interpreter that analyzes assigned variables by name
and compares variable names with the formal argument identifiers in an
imported function.