Contents
Part I Lucid Synchrone
Chapter 1 An introduction to Lucid Synchrone
1.1 The core language
1.1.1 Point-wise Operations
1.1.2 Delays
1.1.3 Global declarations
1.1.4 Combinatorial Functions
1.1.5 Sequential Functions
1.1.6 Anonymous Functions
1.1.7 Local definitions and Mutually Recursive Definition
1.1.8 Shared Memory and Initialization
1.1.9 Causality check
1.1.10 Initialization check
1.2 Multi-clock systems
1.2.1 Sampling: the operator
when
1.2.2 Combining Sampled Streams: the operator
merge
1.2.3 Oversampling
1.2.4 Clock constraints and error messages
1.2.5 Equality and scope restrictions in the use of clocks
1.3 Static Values
1.4 Data-types, Pattern matching
1.4.1 Type definitions
1.4.2 Pattern matching
1.4.3 Local Definitions
1.4.4 Implicit Definition of Shared Variables
1.5 Valued Signals
1.5.1 Signals as Clock Abstraction
1.5.2 Testing the Presence and Signal Matching
1.6 State Machines
1.6.1 Strong Preemption
1.6.2 Weak Preemption
1.6.3 ABRO and Modular Reseting
1.6.4 Local Definitions in a State
1.6.5 Communication between States and Shared Memory
1.6.6 The Particular Role of the Initial State
1.6.7 Resume a Local State
1.7 Parameterized State Machines
1.8 State Machines and Signals
1.8.1 Pattern Matching over Signals
1.8.2 The derived operator
await/do
1.9 Alternative Syntax for Control Structures
1.10 Higher-order Reactive Features
1.10.1 Composing Functions
1.10.2 Combinators
1.10.3 Streams of Functions and Functions of Streams
1.10.4 Instantiating Streams of Functions
1.11 Non reactive higher-order features
Chapter 2 Complete Examples
2.1 The Inverted Pendulum
2.2 The Heater
2.3 The Coffee Machine
2.4 The Recursive Wired Buffer
Part II Reference manual
Chapter 3 The language
3.1 Lexical conventions
3.2 Values
3.2.1 Basic values
3.2.2 Tuples, records, sum types
3.3 Global names
3.3.1 Naming values
3.3.2 Referring to named values
3.4 Types
3.5 Clocks
3.6 Constants
3.7 Patterns
3.8 Signal Patterns
3.9 Expressions
3.9.1 Simple expressions
3.9.2 Operators
3.9.3 Control Structures
3.10 Definitions
3.11 Type definition
3.12 Module implementation
3.13 Scalar Interfaces and Importing values
3.13.1 Making a Node from an Imported Value
Chapter 4
lucyc
- The batch compiler
Chapter 5 The simulator
5.1 Restrictions
5.2 Availability