19.11.2014 Views

The Fortress Language Specification - CiteSeerX

The Fortress Language Specification - CiteSeerX

The Fortress Language Specification - CiteSeerX

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

17.7 Coercions for Tuple and Arrow Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />

17.8 Automatic Widening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

18 Dimensions and Units 146<br />

19 Tests and Properties 149<br />

19.1 <strong>The</strong> Purpose of Tests and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />

19.2 Test Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />

19.3 Other Test Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

19.4 Running Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

19.5 Test Suites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />

19.6 Property Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />

20 Type Inference 153<br />

20.1 What Is Inferred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

20.2 Type Inference Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

20.3 Finding “Closest Expressible Types” for Inferred Types . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />

21 Memory Model 156<br />

21.1 Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156<br />

21.2 Programming Discipline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />

21.3 Read and Write Atomicity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

21.4 Ordering Dependencies among Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

22 Components and APIs 162<br />

22.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

22.2 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163<br />

22.3 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

22.4 Tests in Components and APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166<br />

22.5 Type Inference for Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167<br />

22.6 Initialization Order for Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167<br />

22.7 Basic <strong>Fortress</strong> Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167<br />

22.8 Advanced Features of <strong>Fortress</strong> Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!