System-on-Chip and other complex distributed hardware/software systems contain heterogeneous components. High-level modeling
of such systems require frameworks that provide designers with the ability to express concepts of models of computation (MoC)s
as modeling constructs. Many system-level modeling frameworks and corresponding modeling notations such as Ptolemy II and
SystemC-H facilitate multi-MoC modeling but are based on imperative programming languages (C++, Java, etc). In such frameworks,
the computation and communication aspects between the components of models get intertwined thereby hindering its amenability
to formal analysis. In this work, we illustrate function-based semantic definitions of MoCs, which are formulated in a functional
framework called
SML-Sys. We illustrate through a number of examples how to create system models using this functional programming paradigm.
Keywords Functional programming - Model of computation - Heterogeneity - Modeling fidelity - Modeling expressiveness