- ParaSail has no global variables, so how does that work?
- how iterators, streams and for-loops are interrelated in ParaSail;
- using a single compare primitive ("=?") in ParaSail to implement "==", "!=", "<=", ">=", etc.
- ParaSail's implicit parallelism and structured synchronization;
- ParaSail private interfaces and interface namespace hierarchy;
- ParaSail's use of region-based storage management rather than object-at-a-time garbage collection;
- ParaSail's use of compile-time checks (mostly), run-time checks (goal is to never need them), and exceptions (only when complexity or race-conditions make them necessary);
- how attributes like taintedness (i.e. might this data come from a malicious source?) or physical units (e.g. meters/second, years, ...) can be "layered" onto existing types, along with appropriate pre- and postconditions, to provide additional security, safety, or correctness checking. Add-on attributes can also be associated with statements or other ParaSail constructs, such as an attribute indicating whether a given statement or operation is potentially blocking (that is, it might wait indefinitely on some queue or some other synchronization structure), or the total amount of stack space required by a given statement or operation.
Saturday, October 3, 2009
ParaSail Topics to come
The prior entries gave an overview of ParaSail. Over the next few weeks I hope to write additional entries about: