SystemC is the de facto standard for modeling embedded systems. It allows system design at various levels of abstractions, provides typical object-orientation features and incorporates timing and concurrency concepts. A SystemC program is typically processed by a SystemC front-end in order to verify, debug and/or optimize the architecture. Designing a SystemC front-end is a difficult task and existing approaches suffer from limitations. In this paper, we present a new approach that addresses most of these limitations. We detail this approach, based on an executable intermediate representation. We introduce PinaVM, a new, open-source SystemC front-end and implementation of our contributions. We give experimental results on this tool. Categories and Subject Descriptors SD B.4.4 [Models]: Formal--Input/Output and Data Communications; I.6.4 [Validation and Analysis]: Model-Simulation and Modeling; D.2.4 [Verification]: Program-Software Engineering General Terms Keywords Modelisation, Vali...