The IEC 61499 standard proposes a component-oriented approach for specifying industrial-process measurement and control systems using function blocks. Unfortunately, the standard does not provide rigorous semantics for the execution of function blocks, resulting in different behaviours on different implementations. The differences arise mostly as a result of the various event handling and scheduling mechanisms employed. To overcome such ambiguities, this paper proposes synchronous semantics for function block execution by translating function block programs into Esterel, a well-known synchronous language. The mathematical foundation of synchronous languages will not only precisely define the execution semantics, but also open up the pathway for formal verification of function blocks