From 44824a4fb793e405fc289d03e42ddbb71fcfb6a8 Mon Sep 17 00:00:00 2001 From: Adrian Quark Date: Sat, 8 Nov 2008 17:15:46 +0000 Subject: [PATCH] Updated user guide --- Website/userguide/html/all.html | 138 ++++++++++++++++++---------- Website/userguide/html/apa.html | 2 +- Website/userguide/html/apb.html | 2 +- Website/userguide/html/apbs02.html | 2 +- Website/userguide/html/apbs03.html | 71 ++++++++++---- Website/userguide/html/ch02.html | 2 +- Website/userguide/html/ch02s02.html | 33 ++++--- Website/userguide/html/ch02s03.html | 4 +- Website/userguide/html/ch03.html | 20 ++-- Website/userguide/html/index.html | 2 +- Website/userguide/pdf/all.pdf | Bin 247598 -> 249505 bytes 11 files changed, 174 insertions(+), 102 deletions(-) diff --git a/Website/userguide/html/all.html b/Website/userguide/html/all.html index db975e5ee..618ee2247 100644 --- a/Website/userguide/html/all.html +++ b/Website/userguide/html/all.html @@ -1,4 +1,4 @@ -Orc User Guide

Orc User Guide


Table of Contents

Introduction
1. The Orc Programming Language
1.1. Introduction
1.2. Cor: A Functional Subset
1.2.1. Constants
1.2.2. Operators
1.2.3. Conditionals
1.2.4. Variables
1.2.5. Data Structures
1.2.6. Patterns
1.2.7. Functions
1.2.8. Comments
1.3. Orc: Orchestrating services
1.3.1. Communicating with external services
1.3.2. The concurrency combinators of Orc
1.3.3. Revisiting Cor expressions
1.3.4. Time
1.4. Advanced Features of Orc
1.4.1. Special call forms
1.4.2. Extensions to pattern matching
1.4.3. Datatypes
1.4.4. New forms of declarations
2. Programming Methodology
2.1. Syntactic and Stylistic Conventions
2.1.1. Parallel combinator
2.1.2. Sequential combinator
2.1.3. Pruning combinator
2.1.4. Declarations
2.2. Programming Idioms
2.2.1. Fork-join
2.2.2. Parallel Or
2.2.3. Finite Sequential Composition
2.2.4. Timeout
2.2.5. Priority
2.2.6. Metronome
2.2.7. Priority Poll
2.2.8. Lists
2.2.9. Streams
2.2.10. Arrays
2.2.11. Loops
2.2.12. Mutable Storage
2.2.13. Parallel Matching
2.2.14. Routing
2.2.15. Interruptible
2.3. Larger Examples
2.3.1. Dining Philosophers
2.3.2. Hygienic Dining Philosophers
2.3.3. Readers/Writers
3. Accessing and Creating External Services
3.1. Java Integration
3.1.1. Dot Operator
3.1.2. Direct Calls
3.1.3. Method Resolution
3.1.4. Orc Values in Java
3.1.5. Java Values in Orc
3.1.6. Cooperative Scheduling
A. Complete Syntax of Orc
B. Standard Library
B.1. Overview
B.2. Notation
B.3. Reference
B.3.1. core.inc: Fundamental sites and operators.
B.3.2. data.inc: General-purpose supplemental data structures.
B.3.3. idioms.inc: Higher-order Orc programming idioms.
B.3.4. list.inc: Operations on lists.
B.3.5. text.inc: Operations on strings.
B.3.6. time.inc: Real and logical time.
B.3.7. util.inc: Miscellaneous utility functions.

Introduction

+Orc User Guide

Orc User Guide


Table of Contents

Introduction
1. The Orc Programming Language
1.1. Introduction
1.2. Cor: A Functional Subset
1.2.1. Constants
1.2.2. Operators
1.2.3. Conditionals
1.2.4. Variables
1.2.5. Data Structures
1.2.6. Patterns
1.2.7. Functions
1.2.8. Comments
1.3. Orc: Orchestrating services
1.3.1. Communicating with external services
1.3.2. The concurrency combinators of Orc
1.3.3. Revisiting Cor expressions
1.3.4. Time
1.4. Advanced Features of Orc
1.4.1. Special call forms
1.4.2. Extensions to pattern matching
1.4.3. Datatypes
1.4.4. New forms of declarations
2. Programming Methodology
2.1. Syntactic and Stylistic Conventions
2.1.1. Parallel combinator
2.1.2. Sequential combinator
2.1.3. Pruning combinator
2.1.4. Declarations
2.2. Programming Idioms
2.2.1. Fork-join
2.2.2. Parallel Or
2.2.3. Finite Sequential Composition
2.2.4. Timeout
2.2.5. Priority
2.2.6. Metronome
2.2.7. Priority Poll
2.2.8. Lists
2.2.9. Streams
2.2.10. Arrays
2.2.11. Loops
2.2.12. Mutable Storage
2.2.13. Parallel Matching
2.2.14. Routing
2.2.15. Interruptible
2.3. Larger Examples
2.3.1. Dining Philosophers
2.3.2. Hygienic Dining Philosophers
2.3.3. Readers/Writers
3. Accessing and Creating External Services
3.1. Java Integration
3.1.1. Dot Operator
3.1.2. Direct Calls
3.1.3. Method Resolution
3.1.4. Orc Values in Java
3.1.5. Java Values in Orc
3.1.6. Cooperative Scheduling
A. Complete Syntax of Orc
B. Standard Library
B.1. Overview
B.2. Notation
B.3. Reference
B.3.1. core.inc: Fundamental sites and operators.
B.3.2. data.inc: General-purpose supplemental data structures.
B.3.3. idioms.inc: Higher-order Orc programming idioms.
B.3.4. list.inc: Operations on lists.
B.3.5. text.inc: Operations on strings.
B.3.6. time.inc: Real and logical time.
B.3.7. util.inc: Miscellaneous utility functions.

Introduction

Orc is a programming language designed to make distributed and concurrent programs simple and intuitive to write. Orc expresses orchestration, a type of structured concurrency. It emphasizes the @@ -1263,7 +1263,7 @@ Note that these declarations still obey the rules of lexical scope. Also, Orc does not detect shared declarations; if the same file is included twice, its declarations occur twice. -

Chapter 2. Programming Methodology

+

Chapter 2. Programming Methodology

In Chapter 1, we described the syntax and semantics of the Orc language. Now, we turn our attention to how the language is used in practice, with guidelines on style and programming methodology, including a number of common concurrency patterns. @@ -1778,7 +1778,7 @@

 {- Create a cell, try to write to it twice, and read it -}
 {- The read will block until a write occurs, and only one write will succeed. -}
-val c = Cell()
+val r = Cell()
   Rtimer(1000) >> r.write(2) >> println("Wrote 2") >> stop
 | Rtimer(1000) >> r.write(3) >> println("Wrote 3") >> stop
 | r.read()
@@ -1801,7 +1801,7 @@
 but lower precedence than any of the other operators.

Here is a previous example rewritten using this syntactic sugar:

 {- Create a cell, try to write to it twice, and read it -}
 {- The read will block until a write occurs, and only one write will succeed. -}
-val c = Cell()
+val r = Cell()
   Rtimer(1000) >> r := 2 >> println("Wrote 2") >> stop
 | Rtimer(1000) >> r := 3 >> println("Wrote 3") >> stop
 | r?
@@ -1905,14 +1905,17 @@
 val c = Buffer()
 repeat(c.get) << 
     F >x> c.put(x) >> stop 
-  | Rtimer(1000)
+  | Rtimer(1000) >> c.closenb()
 
 

This program allows F to execute for one second, and then terminates it. Each value published by F is silently routed through the channel c so that it does not terminate F. After one second, the signal published by the -timeout terminates F. -

2.2.14.1.2. Test Pruning

+timeout closes the channel and terminates F.

If the channel c is being written to elsewhere in the +program (for example, to collect results from multiple computations), +then >> c.closenb() should be omitted, so that F will +be terminated but repeat(c.get) will continue to wait for +values to be put in the channel.

2.2.14.1.2. Test Pruning

We can also decide to terminate based on the values published. This expression executes F until it publishes a negative number, and then terminates it:

@@ -1921,13 +1924,13 @@
   F >x> 
     (if x >= 0 
         then c.put(x) >> stop
-        else c.close() >> signal)
+        else c.closenb())
 

Each value published by F is tested. If it is non-negative, it is placed on channel c (silently) and read by repeat(c.get). -If it is negative, the channel is closed and a signal is published, causing +If it is negative, the channel is closed, publishing a signal and causing the termination of F. -

2.2.14.1.3. Exceptions

+

2.2.14.1.3. Exceptions

Orc does not have a native exception handling mechanism. However, we can use routing to directly interrupt an expression by writing to a write-once cell. We set up the expression like a timeout, but instead of @@ -1941,9 +1944,9 @@ val err = Cell() repeat(c.get) << F >x> c.put(x) >> stop - | err.read() + | err.read() >> c.closenb() -

2.2.14.1.4. Publication Limit

+

2.2.14.1.4. Publication Limit

We can limit an expression to n publications, rather than just one. Here is an expression which executes F until it publishes 5 values, and then terminates it. @@ -1956,14 +1959,14 @@ F >x> c.put(x) >> stop | done.read() -

2.2.14.2. Modified Otherwise

+

2.2.14.2. Modified Otherwise

We can use routing to create a modified version of the otherwise combinator. We'll run F until it completes, and then run G, regardless of whether F published any values or not. We write this modified F ; G as follows:

 val c = Buffer()
 repeat(c.get) | (F >x> c.put(x) >> stop ; c.close() >> G)  
-

2.2.14.3. Modified Pruning

+

2.2.14.3. Modified Pruning

Similarly, we can use routing to modify the pruning combinator. Instead of terminating the right side after the first value is published, we would like to continue running it, ignoring its remaining publications. We write this modified F <x< G @@ -1972,7 +1975,7 @@ val c = Cell() (F <x< c.read()) | (G >x> c.write(x)) -

2.2.15. Interruptible

+

2.2.15. Interruptible

Let's write a function interruptible that executes functions in an interruptible way. interruptible(g) runs g, which is assumed to take no arguments, and silences its publications. It immediately publishes another function, which we can call at any time to @@ -1980,7 +1983,7 @@

Here is a naive implementation that doesn't quite work:

-def interrputible(f) =
+def interruptible(f) =
   val c = new Cell()
   (lambda () = c.write(signal))
     << (f() >> stop | c.read())
@@ -1997,7 +2000,7 @@
 

The solution is to bind the variable differently:

-def interrputible(f) =
+def interruptible(f) =
   val c = new Cell()
   (lambda () = c.write(signal))
     << (f() >> stop | c.read())
@@ -2011,7 +2014,7 @@
 avoid terminating that execution accidentally. Since Orc is a structured concurrent language,
 every process is contained with some other process; kill the containing process, and the
 contained processes die too.
-

2.3. Larger Examples

2.3.1. Dining Philosophers

+

2.3. Larger Examples

2.3.1. Dining Philosophers

The dining philosophers problem is a well known and intensely studied problem in concurrent programming. For a detailed description, see the Wikipedia entry @@ -2221,7 +2224,7 @@ philosopher receives a request for a fork, it knows who requested it and therefore which fork to relinquish. Likewise when a philosopher receives a fork, it knows who sent it and therefore which fork was received. -

2.3.3. Readers/Writers

+

2.3.3. Readers/Writers

Here we present an Orc solution to the readers-writers problem. Briefly, the readers-writers problem involves concurrent access to a mutable resource. Multiple readers can access the resource @@ -2298,7 +2301,7 @@ To ensure that a writer has exclusive access, grant waits for the c to become zero before granting the lock to the writer, and then waits for c to become zero again before granting any more requests. -

Chapter 3. Accessing and Creating External Services

3.1. Java Integration

+

Chapter 3. Accessing and Creating External Services

3.1. Java Integration

Java classes can be imported into Orc as sites using the class @@ -2338,7 +2341,7 @@ {- call a non-static method -} i.toString() -

3.1.2. Direct Calls

+

3.1.2. Direct Calls

When x evaluates to a Java object (but not a Java class), the syntax x(...) is equivalent to x.apply(...).

@@ -2375,11 +2378,11 @@ method; the first matching method (according to some unspecified order) is chosen. Note also that we do not support varargs methods explicitly, but instead varargs may be passed as an array of the appropriate type. -

3.1.4. Orc Values in Java

+

3.1.4. Orc Values in Java

Any value in an Orc program may be treated as a Java object and passed to Java methods. Orc literals have the following Java types:

string
java.lang.String
boolean
java.lang.Boolean
integer
java.math.BigInteger
float
java.math.BigDecimal
tuple
orc.runtime.values.TupleValue
function
orc.runtime.values.Closure
list
orc.runtime.values.ListValue
-

3.1.5. Java Values in Orc

+

3.1.5. Java Values in Orc

Java objects may be used directly as values anywhere in an Orc program. Primitive Java values cannot be used directly in an Orc program, but are automatically boxed (and unboxed) as necessary. @@ -2389,7 +2392,7 @@ types. "Widest" is defined by the following relation, where ">" means "is wider than": BigDecimal > Double > Float > BigInteger > Long > Integer > Short > Byte -

3.1.6. Cooperative Scheduling

3.1.6.1. Overview

+

3.1.6. Cooperative Scheduling

3.1.6.1. Overview

In order to support massive concurrency efficiently in Java, Orc uses cooperative threading. Orc programs are broken into discrete steps which are executed by a fixed-size thread pool. This approach works for Orc @@ -2416,7 +2419,7 @@ Kilim to allow site authors to write sites with internal concurrency and blocking behavior which don't use Java threads and cooperate with the Orc engine. -

3.1.6.2. Kilim Tutorial

+

3.1.6.2. Kilim Tutorial

For a full introduction to Kilim, see A Thread of One's Own, by Sriram Srinivasan. In the following, we will cover just enough to get you started writing Orc sites using Kilim. @@ -2426,7 +2429,7 @@ Pausable

This checked exception marks methods which may block -[1]. You should never catch +[1]. You should never catch this exception, and you should always declare it even if you have already declared throws Exception or throws Throwable. In all other respects it follows the normal rules for checked exceptions: an override can only throw it if the @@ -2482,7 +2485,7 @@ val b = Buffer() Rtimer(1000) >> b.put("1 second later") >> null | b.get() -

3.1.6.3. When you must block

+

3.1.6.3. When you must block

Sometimes blocking is unavoidable, for example if a site must perform blocking IO. For such cases, Orc provides a utility method orc.runtime.Kilim#runThreaded(Callable) which farms work out to a thread pool. The advantage of doing this over spawning your own @@ -2492,7 +2495,7 @@ concurrently and can't use Mailboxes, there won't be enough threads for them all and execution will deadlock. This situation is sufficiently rare that runThreaded is usually the correct approach. -

3.1.6.4. Compiling Kilim Sites

+

3.1.6.4. Compiling Kilim Sites

Code which uses Kilim annotations must be processed after compiling and before running, with the Kilim "weaver". For example, if your .class files are in ./build, you would run the weaver like this: @@ -2501,11 +2504,11 @@ kilim.tools.Weaver -d ./build ./build

The Orc source distribution includes an ant kilim task in build.xml to do exactly this. -



[1] Originally Kilim used annotations to mark pausable methods. It turned +



[1] Originally Kilim used annotations to mark pausable methods. It turned out that javac would sometimes manipulate code in ways which violate the invariants regarding use of the annotation. Annotations also have the disadvantage that the invariants on their use are not checked automatically by -tools like Eclipse.

Appendix A. Complete Syntax of Orc

+tools like Eclipse.

Appendix A. Complete Syntax of Orc

Table A.1. Complete Syntax of Orc

E::=  Expression @@ -2610,7 +2613,7 @@

Where relevant, syntactic constructs are ordered by precedence, from highest to lowest. For example, among expressions, calls have higher precedence than any of the combinators, which in turn have higher precedence than conditionals. -

Appendix B. Standard Library

B.1. Overview

+

Appendix B. Standard Library

B.1. Overview

The standard library is a set of declarations implicitly available to all Orc programs. In this section we give an informal description of the standard library, including the type of each declaration and a short explanation of its use. @@ -2621,7 +2624,7 @@ class declarations. Therefore the Orc standard library aims only to provide convenience for the most common Orc idioms, not the complete set of features needed for general-purpose programming. -

B.2. Notation

+

B.2. Notation

Each declaration in the standard library includes a type signature as part of its documentation. The notation for type signatures, summarized here, is based on a formal type system for Orc currently under preparation. @@ -2675,7 +2678,7 @@ Subtyping constraints are used to constrain the types of polymorphic type variables, and are written A <: X, meaning A must be a subtype of X. -

B.3. Reference

B.3.1. core.inc: Fundamental sites and operators.

Fundamental sites and operators.

These declarations include both prefix and infix sites (operators). For +

B.3. Reference

B.3.1. core.inc: Fundamental sites and operators.

Fundamental sites and operators.

These declarations include both prefix and infix sites (operators). For consistency, all declarations are written in prefix form, with the site name followed by the operands. When the site name is surrounded in parentheses, as in (+), it denotes an infix operator.

For a more complete description of the built-in operators and their syntax, see @@ -2859,7 +2862,7 @@

def max(A,A) :: A, A <: Comparable

Return the greater of the arguments. If the arguments -are equal, return the second argument.

B.3.2. data.inc: General-purpose supplemental data structures.

General-purpose supplemental data structures.

+are equal, return the second argument.

B.3.2. data.inc: General-purpose supplemental data structures.

General-purpose supplemental data structures.

Semaphore

site Semaphore(Integer) :: Semaphore @@ -2906,7 +2909,11 @@

site Buffer() :: Buffer<A> -

Create a new buffer (FIFO channel) of unlimited size.

Example: +

Create a new buffer (FIFO channel) of unlimited size. A buffer supports +get, put and close operations.

A buffer may be either empty or non-empty, and either open or closed. When +empty and open, calls to get block. When empty and closed, calls +to get halt. When closed, calls to put halt. In all +other cases, calls return normally.

Example:

 -- Publishes: 10
 val b = Buffer()
@@ -2916,7 +2923,9 @@
                                     get
                                     

site Buffer<A>.get() :: A -

Get an item from the buffer. If no items are available, block until one becomes available.

Recall that the type signature site Buffer<A>.get() :: A means that + +

Get an item from the buffer. If the buffer is open and no items are available, +block until one becomes available. If the buffer is closed and no items are available, halt.

Recall that the type signature site Buffer<A>.get() :: A means that when the get method is called on a buffer holding an arbitrary element type A, it will return a value of the same type.

getnb @@ -2926,7 +2935,8 @@ put

site Buffer<A>.put(A) :: Signal -

Put an item in the buffer.

+ +

Put an item in the buffer. If the buffer is closed, halt.

close

site Buffer<A>.close() :: Signal @@ -2958,9 +2968,13 @@ site BoundedBuffer(Integer) :: BoundedBuffer<A>

Create a new buffer (FIFO channel) with the given number of slots. -Putting an item into the buffer fills a slot, and removing an item opens a slot. +Putting an item into the buffer fills a slot, and getting an item opens a slot. A buffer with zero slots is equivalent to a -synchronous channel.

Example: +synchronous channel.

A bounded buffer may be empty, partly filled, or full, and either open or +closed. When empty and open, calls to get block. When empty and +closed, calls to get halt. When full and open, calls to +put block. When closed, calls to put halt. In all +other cases, calls return normally.

Example:

 -- Publishes: "Put 1" "Got 1" "Put 2" "Got 2"
 val c = BoundedBuffer(1)
@@ -2974,7 +2988,9 @@
                                     get
                                     

site BoundedBuffer<A>.get() :: A -

Get an item from the buffer. If no items are available, block until one becomes available.

+ +

Get an item from the buffer. If the buffer is open and no items are available, +block until one becomes available. If the buffer is closed and no items are available, halt.

getnb

site BoundedBuffer<A>.getnb() :: A @@ -2982,11 +2998,15 @@ put

site BoundedBuffer<A>.put(A) :: Signal -

Put an item in the buffer. If no slots are open, block until one becomes open.

+ +

Put an item in the buffer. If no slots are open, block until one becomes open. +If the buffer is closed, halt.

putnb

site BoundedBuffer<A>.putnb(A) :: Signal -

Put an item in the buffer. If no slots are open, halt.

+ +

Put an item in the buffer. If no slots are open, halt. +If the buffer is closed, halt.

close

site BoundedBuffer<A>.close() :: Signal @@ -3309,11 +3329,11 @@

Create a new dictionary (a mutable map from field names to values), initially empty. The first time each field of the dictionary is accessed (using dot -notation), the record creates and returns a new empty Ref which will also be returned on +notation), the dictionary creates and returns a new empty Ref which will also be returned on subsequent accesses of the same field. Dictionaries allow you to easily create -simple data structures.

Example: +object-like data structures.

Example:

--- Publishes: 1 2
+-- Prints: 1 2
 val d = Dictionary()
   println(d.one?) >>
   println(d.two?) >>
@@ -3321,7 +3341,23 @@
 | d.one := 1 >>
   d.two := 2 >>
   stop
-

+ +

To create a multi-level dictionary, you must explicitly create sub-dictionaries +for each field. For example: +

+-- Prints: 2
+val d = Dictionary()
+d.one := Dictionary() >>
+d.one?.two := 2 >>
+println(d.one?.two?) >>
+stop
+ +

Note that you cannot write d.one.two: because d.one +is a reference to a dictionary, and not simply a dictionary, you must +dereference before accessing its fields, as in d.one? >x> x.two. +For readers familiar with the C language, this is the same reason you must +write s->field instead of s.field when +s is a pointer to a struct.

fst

def fst((A,B)) :: A @@ -3333,7 +3369,7 @@ swap

def swap((A,B)) :: (B,A) -

Swap the elements of a pair.

B.3.3. idioms.inc: Higher-order Orc programming idioms.

Higher-order Orc programming idioms. +

Swap the elements of a pair.

B.3.3. idioms.inc: Higher-order Orc programming idioms.

Higher-order Orc programming idioms. Many of these are standard functional-programming combinators borrowed from Haskell or Scheme.

apply @@ -3455,7 +3491,7 @@
 -- Publishes: [signal, signal, signal, signal, signal]
 collect(defer(signals, 5))
-

B.3.4. list.inc: Operations on lists.

Operations on lists. +

B.3.4. list.inc: Operations on lists.

Operations on lists. Many of these functions are similar to those in the Haskell prelude, but operate on the elements of a list in parallel.

each @@ -3696,7 +3732,7 @@ maximum

def maximum([A]) :: A, A <: Comparable -

Return the maximum element of a non-empty list.

B.3.5. text.inc: Operations on strings.

Operations on strings.

+

Return the maximum element of a non-empty list.

B.3.5. text.inc: Operations on strings.

Operations on strings.

cat

site cat(Top, ...) :: String @@ -3750,7 +3786,7 @@

def unwords([String]) :: String

Concatenate a sequence of strings with a single space between -each string.

B.3.6. time.inc: Real and logical time.

Real and logical time.

+each string.

B.3.6. time.inc: Real and logical time.

Real and logical time.

Rtimer

site Rtimer(Integer) :: Signal @@ -3778,7 +3814,7 @@

def metronome(Integer) :: Signal

Publish a signal at regular intervals, indefinitely. The period is given by the -argument, in milliseconds.

B.3.7. util.inc: Miscellaneous utility functions.

Miscellaneous utility functions.

+argument, in milliseconds.

B.3.7. util.inc: Miscellaneous utility functions.

Miscellaneous utility functions.

random

site random() :: Integer diff --git a/Website/userguide/html/apa.html b/Website/userguide/html/apa.html index 7da695235..13d8c4534 100644 --- a/Website/userguide/html/apa.html +++ b/Website/userguide/html/apa.html @@ -1,4 +1,4 @@ -Appendix A. Complete Syntax of Orc

Appendix A. Complete Syntax of Orc

+Appendix A. Complete Syntax of Orc

Appendix A. Complete Syntax of Orc

Table A.1. Complete Syntax of Orc

E::=  Expression diff --git a/Website/userguide/html/apb.html b/Website/userguide/html/apb.html index cff382494..606be11af 100644 --- a/Website/userguide/html/apb.html +++ b/Website/userguide/html/apb.html @@ -1,4 +1,4 @@ -Appendix B. Standard Library

Appendix B. Standard Library

B.1. Overview

+Appendix B. Standard Library

Appendix B. Standard Library

B.1. Overview

The standard library is a set of declarations implicitly available to all Orc programs. In this section we give an informal description of the standard library, including the type of each declaration and a short explanation of its use. diff --git a/Website/userguide/html/apbs02.html b/Website/userguide/html/apbs02.html index ca117c57a..109b09162 100644 --- a/Website/userguide/html/apbs02.html +++ b/Website/userguide/html/apbs02.html @@ -1,4 +1,4 @@ -B.2. Notation

B.2. Notation

+B.2. Notation

B.2. Notation

Each declaration in the standard library includes a type signature as part of its documentation. The notation for type signatures, summarized here, is based on a formal type system for Orc currently under preparation. diff --git a/Website/userguide/html/apbs03.html b/Website/userguide/html/apbs03.html index 31b262108..bbefcd1e5 100644 --- a/Website/userguide/html/apbs03.html +++ b/Website/userguide/html/apbs03.html @@ -1,4 +1,4 @@ -B.3. Reference

B.3. Reference

B.3.1. core.inc: Fundamental sites and operators.

Fundamental sites and operators.

These declarations include both prefix and infix sites (operators). For +B.3. Reference

B.3. Reference

B.3.1. core.inc: Fundamental sites and operators.

Fundamental sites and operators.

These declarations include both prefix and infix sites (operators). For consistency, all declarations are written in prefix form, with the site name followed by the operands. When the site name is surrounded in parentheses, as in (+), it denotes an infix operator.

For a more complete description of the built-in operators and their syntax, see @@ -182,7 +182,7 @@

def max(A,A) :: A, A <: Comparable

Return the greater of the arguments. If the arguments -are equal, return the second argument.

B.3.2. data.inc: General-purpose supplemental data structures.

General-purpose supplemental data structures.

+are equal, return the second argument.

B.3.2. data.inc: General-purpose supplemental data structures.

General-purpose supplemental data structures.

Semaphore

site Semaphore(Integer) :: Semaphore @@ -229,7 +229,11 @@

site Buffer() :: Buffer<A> -

Create a new buffer (FIFO channel) of unlimited size.

Example: +

Create a new buffer (FIFO channel) of unlimited size. A buffer supports +get, put and close operations.

A buffer may be either empty or non-empty, and either open or closed. When +empty and open, calls to get block. When empty and closed, calls +to get halt. When closed, calls to put halt. In all +other cases, calls return normally.

Example:

 -- Publishes: 10
 val b = Buffer()
@@ -239,7 +243,9 @@
                                     get
                                     

site Buffer<A>.get() :: A -

Get an item from the buffer. If no items are available, block until one becomes available.

Recall that the type signature site Buffer<A>.get() :: A means that + +

Get an item from the buffer. If the buffer is open and no items are available, +block until one becomes available. If the buffer is closed and no items are available, halt.

Recall that the type signature site Buffer<A>.get() :: A means that when the get method is called on a buffer holding an arbitrary element type A, it will return a value of the same type.

getnb @@ -249,7 +255,8 @@ put

site Buffer<A>.put(A) :: Signal -

Put an item in the buffer.

+ +

Put an item in the buffer. If the buffer is closed, halt.

close

site Buffer<A>.close() :: Signal @@ -281,9 +288,13 @@ site BoundedBuffer(Integer) :: BoundedBuffer<A>

Create a new buffer (FIFO channel) with the given number of slots. -Putting an item into the buffer fills a slot, and removing an item opens a slot. +Putting an item into the buffer fills a slot, and getting an item opens a slot. A buffer with zero slots is equivalent to a -synchronous channel.

Example: +synchronous channel.

A bounded buffer may be empty, partly filled, or full, and either open or +closed. When empty and open, calls to get block. When empty and +closed, calls to get halt. When full and open, calls to +put block. When closed, calls to put halt. In all +other cases, calls return normally.

Example:

 -- Publishes: "Put 1" "Got 1" "Put 2" "Got 2"
 val c = BoundedBuffer(1)
@@ -297,7 +308,9 @@
                                     get
                                     

site BoundedBuffer<A>.get() :: A -

Get an item from the buffer. If no items are available, block until one becomes available.

+ +

Get an item from the buffer. If the buffer is open and no items are available, +block until one becomes available. If the buffer is closed and no items are available, halt.

getnb

site BoundedBuffer<A>.getnb() :: A @@ -305,11 +318,15 @@ put

site BoundedBuffer<A>.put(A) :: Signal -

Put an item in the buffer. If no slots are open, block until one becomes open.

+ +

Put an item in the buffer. If no slots are open, block until one becomes open. +If the buffer is closed, halt.

putnb

site BoundedBuffer<A>.putnb(A) :: Signal -

Put an item in the buffer. If no slots are open, halt.

+ +

Put an item in the buffer. If no slots are open, halt. +If the buffer is closed, halt.

close

site BoundedBuffer<A>.close() :: Signal @@ -632,11 +649,11 @@

Create a new dictionary (a mutable map from field names to values), initially empty. The first time each field of the dictionary is accessed (using dot -notation), the record creates and returns a new empty Ref which will also be returned on +notation), the dictionary creates and returns a new empty Ref which will also be returned on subsequent accesses of the same field. Dictionaries allow you to easily create -simple data structures.

Example: +object-like data structures.

Example:

--- Publishes: 1 2
+-- Prints: 1 2
 val d = Dictionary()
   println(d.one?) >>
   println(d.two?) >>
@@ -644,7 +661,23 @@
 | d.one := 1 >>
   d.two := 2 >>
   stop
-

+ +

To create a multi-level dictionary, you must explicitly create sub-dictionaries +for each field. For example: +

+-- Prints: 2
+val d = Dictionary()
+d.one := Dictionary() >>
+d.one?.two := 2 >>
+println(d.one?.two?) >>
+stop
+ +

Note that you cannot write d.one.two: because d.one +is a reference to a dictionary, and not simply a dictionary, you must +dereference before accessing its fields, as in d.one? >x> x.two. +For readers familiar with the C language, this is the same reason you must +write s->field instead of s.field when +s is a pointer to a struct.

fst

def fst((A,B)) :: A @@ -656,7 +689,7 @@ swap

def swap((A,B)) :: (B,A) -

Swap the elements of a pair.

B.3.3. idioms.inc: Higher-order Orc programming idioms.

Higher-order Orc programming idioms. +

Swap the elements of a pair.

B.3.3. idioms.inc: Higher-order Orc programming idioms.

Higher-order Orc programming idioms. Many of these are standard functional-programming combinators borrowed from Haskell or Scheme.

apply @@ -778,7 +811,7 @@
 -- Publishes: [signal, signal, signal, signal, signal]
 collect(defer(signals, 5))
-

B.3.4. list.inc: Operations on lists.

Operations on lists. +

B.3.4. list.inc: Operations on lists.

Operations on lists. Many of these functions are similar to those in the Haskell prelude, but operate on the elements of a list in parallel.

each @@ -1019,7 +1052,7 @@ maximum

def maximum([A]) :: A, A <: Comparable -

Return the maximum element of a non-empty list.

B.3.5. text.inc: Operations on strings.

Operations on strings.

+

Return the maximum element of a non-empty list.

B.3.5. text.inc: Operations on strings.

Operations on strings.

cat

site cat(Top, ...) :: String @@ -1073,7 +1106,7 @@

def unwords([String]) :: String

Concatenate a sequence of strings with a single space between -each string.

B.3.6. time.inc: Real and logical time.

Real and logical time.

+each string.

B.3.6. time.inc: Real and logical time.

Real and logical time.

Rtimer

site Rtimer(Integer) :: Signal @@ -1101,7 +1134,7 @@

def metronome(Integer) :: Signal

Publish a signal at regular intervals, indefinitely. The period is given by the -argument, in milliseconds.

B.3.7. util.inc: Miscellaneous utility functions.

Miscellaneous utility functions.

+argument, in milliseconds.

B.3.7. util.inc: Miscellaneous utility functions.

Miscellaneous utility functions.

random

site random() :: Integer diff --git a/Website/userguide/html/ch02.html b/Website/userguide/html/ch02.html index f2c341e21..824e9f440 100644 --- a/Website/userguide/html/ch02.html +++ b/Website/userguide/html/ch02.html @@ -1,4 +1,4 @@ -Chapter 2. Programming Methodology

Chapter 2. Programming Methodology

+Chapter 2. Programming Methodology

Chapter 2. Programming Methodology

In Chapter 1, we described the syntax and semantics of the Orc language. Now, we turn our attention to how the language is used in practice, with guidelines on style and programming methodology, including a number of common concurrency patterns. diff --git a/Website/userguide/html/ch02s02.html b/Website/userguide/html/ch02s02.html index 9baad3da2..1b8337d26 100644 --- a/Website/userguide/html/ch02s02.html +++ b/Website/userguide/html/ch02s02.html @@ -338,7 +338,7 @@

 {- Create a cell, try to write to it twice, and read it -}
 {- The read will block until a write occurs, and only one write will succeed. -}
-val c = Cell()
+val r = Cell()
   Rtimer(1000) >> r.write(2) >> println("Wrote 2") >> stop
 | Rtimer(1000) >> r.write(3) >> println("Wrote 3") >> stop
 | r.read()
@@ -361,7 +361,7 @@
 but lower precedence than any of the other operators.

Here is a previous example rewritten using this syntactic sugar:

 {- Create a cell, try to write to it twice, and read it -}
 {- The read will block until a write occurs, and only one write will succeed. -}
-val c = Cell()
+val r = Cell()
   Rtimer(1000) >> r := 2 >> println("Wrote 2") >> stop
 | Rtimer(1000) >> r := 3 >> println("Wrote 3") >> stop
 | r?
@@ -465,14 +465,17 @@
 val c = Buffer()
 repeat(c.get) << 
     F >x> c.put(x) >> stop 
-  | Rtimer(1000)
+  | Rtimer(1000) >> c.closenb()
 
 

This program allows F to execute for one second, and then terminates it. Each value published by F is silently routed through the channel c so that it does not terminate F. After one second, the signal published by the -timeout terminates F. -

2.2.14.1.2. Test Pruning

+timeout closes the channel and terminates F.

If the channel c is being written to elsewhere in the +program (for example, to collect results from multiple computations), +then >> c.closenb() should be omitted, so that F will +be terminated but repeat(c.get) will continue to wait for +values to be put in the channel.

2.2.14.1.2. Test Pruning

We can also decide to terminate based on the values published. This expression executes F until it publishes a negative number, and then terminates it:

@@ -481,13 +484,13 @@
   F >x> 
     (if x >= 0 
         then c.put(x) >> stop
-        else c.close() >> signal)
+        else c.closenb())
 

Each value published by F is tested. If it is non-negative, it is placed on channel c (silently) and read by repeat(c.get). -If it is negative, the channel is closed and a signal is published, causing +If it is negative, the channel is closed, publishing a signal and causing the termination of F. -

2.2.14.1.3. Exceptions

+

2.2.14.1.3. Exceptions

Orc does not have a native exception handling mechanism. However, we can use routing to directly interrupt an expression by writing to a write-once cell. We set up the expression like a timeout, but instead of @@ -501,9 +504,9 @@ val err = Cell() repeat(c.get) << F >x> c.put(x) >> stop - | err.read() + | err.read() >> c.closenb() -

2.2.14.1.4. Publication Limit

+

2.2.14.1.4. Publication Limit

We can limit an expression to n publications, rather than just one. Here is an expression which executes F until it publishes 5 values, and then terminates it. @@ -516,14 +519,14 @@ F >x> c.put(x) >> stop | done.read() -

2.2.14.2. Modified Otherwise

+

2.2.14.2. Modified Otherwise

We can use routing to create a modified version of the otherwise combinator. We'll run F until it completes, and then run G, regardless of whether F published any values or not. We write this modified F ; G as follows:

 val c = Buffer()
 repeat(c.get) | (F >x> c.put(x) >> stop ; c.close() >> G)  
-

2.2.14.3. Modified Pruning

+

2.2.14.3. Modified Pruning

Similarly, we can use routing to modify the pruning combinator. Instead of terminating the right side after the first value is published, we would like to continue running it, ignoring its remaining publications. We write this modified F <x< G @@ -532,7 +535,7 @@ val c = Cell() (F <x< c.read()) | (G >x> c.write(x)) -

2.2.15. Interruptible

+

2.2.15. Interruptible

Let's write a function interruptible that executes functions in an interruptible way. interruptible(g) runs g, which is assumed to take no arguments, and silences its publications. It immediately publishes another function, which we can call at any time to @@ -540,7 +543,7 @@

Here is a naive implementation that doesn't quite work:

-def interrputible(f) =
+def interruptible(f) =
   val c = new Cell()
   (lambda () = c.write(signal))
     << (f() >> stop | c.read())
@@ -557,7 +560,7 @@
 

The solution is to bind the variable differently:

-def interrputible(f) =
+def interruptible(f) =
   val c = new Cell()
   (lambda () = c.write(signal))
     << (f() >> stop | c.read())
diff --git a/Website/userguide/html/ch02s03.html b/Website/userguide/html/ch02s03.html
index 1e79ab3fd..092df87b4 100644
--- a/Website/userguide/html/ch02s03.html
+++ b/Website/userguide/html/ch02s03.html
@@ -1,4 +1,4 @@
-2.3. Larger Examples

2.3. Larger Examples

2.3.1. Dining Philosophers

+2.3. Larger Examples

2.3. Larger Examples

2.3.1. Dining Philosophers

The dining philosophers problem is a well known and intensely studied problem in concurrent programming. For a detailed description, see the Wikipedia entry @@ -208,7 +208,7 @@ philosopher receives a request for a fork, it knows who requested it and therefore which fork to relinquish. Likewise when a philosopher receives a fork, it knows who sent it and therefore which fork was received. -

2.3.3. Readers/Writers

+

2.3.3. Readers/Writers

Here we present an Orc solution to the readers-writers problem. Briefly, the readers-writers problem involves concurrent access to a mutable resource. Multiple readers can access the resource diff --git a/Website/userguide/html/ch03.html b/Website/userguide/html/ch03.html index b5f8219ff..f29dac8d3 100644 --- a/Website/userguide/html/ch03.html +++ b/Website/userguide/html/ch03.html @@ -1,4 +1,4 @@ -Chapter 3. Accessing and Creating External Services

Chapter 3. Accessing and Creating External Services

3.1. Java Integration

+Chapter 3. Accessing and Creating External Services

-

3.1.2. Direct Calls

+

3.1.2. Direct Calls

When x evaluates to a Java object (but not a Java class), the syntax x(...) is equivalent to x.apply(...).

@@ -75,11 +75,11 @@ method; the first matching method (according to some unspecified order) is chosen. Note also that we do not support varargs methods explicitly, but instead varargs may be passed as an array of the appropriate type. -

3.1.4. Orc Values in Java

+

3.1.4. Orc Values in Java

Any value in an Orc program may be treated as a Java object and passed to Java methods. Orc literals have the following Java types:

string
java.lang.String
boolean
java.lang.Boolean
integer
java.math.BigInteger
float
java.math.BigDecimal
tuple
orc.runtime.values.TupleValue
function
orc.runtime.values.Closure
list
orc.runtime.values.ListValue
-

3.1.5. Java Values in Orc

+

3.1.5. Java Values in Orc

Java objects may be used directly as values anywhere in an Orc program. Primitive Java values cannot be used directly in an Orc program, but are automatically boxed (and unboxed) as necessary. @@ -89,7 +89,7 @@ types. "Widest" is defined by the following relation, where ">" means "is wider than": BigDecimal > Double > Float > BigInteger > Long > Integer > Short > Byte -

3.1.6. Cooperative Scheduling

3.1.6.1. Overview

+

3.1.6. Cooperative Scheduling

3.1.6.1. Overview

In order to support massive concurrency efficiently in Java, Orc uses cooperative threading. Orc programs are broken into discrete steps which are executed by a fixed-size thread pool. This approach works for Orc @@ -116,7 +116,7 @@ Kilim to allow site authors to write sites with internal concurrency and blocking behavior which don't use Java threads and cooperate with the Orc engine. -

3.1.6.2. Kilim Tutorial

+

3.1.6.2. Kilim Tutorial

For a full introduction to Kilim, see A Thread of One's Own, by Sriram Srinivasan. In the following, we will cover just enough to get you started writing Orc sites using Kilim. @@ -126,7 +126,7 @@ Pausable

This checked exception marks methods which may block -[1]. You should never catch +[1]. You should never catch this exception, and you should always declare it even if you have already declared throws Exception or throws Throwable. In all other respects it follows the normal rules for checked exceptions: an override can only throw it if the @@ -182,7 +182,7 @@ val b = Buffer() Rtimer(1000) >> b.put("1 second later") >> null | b.get() -

3.1.6.3. When you must block

+

3.1.6.3. When you must block

Sometimes blocking is unavoidable, for example if a site must perform blocking IO. For such cases, Orc provides a utility method orc.runtime.Kilim#runThreaded(Callable) which farms work out to a thread pool. The advantage of doing this over spawning your own @@ -192,7 +192,7 @@ concurrently and can't use Mailboxes, there won't be enough threads for them all and execution will deadlock. This situation is sufficiently rare that runThreaded is usually the correct approach. -

3.1.6.4. Compiling Kilim Sites

+

3.1.6.4. Compiling Kilim Sites

Code which uses Kilim annotations must be processed after compiling and before running, with the Kilim "weaver". For example, if your .class files are in ./build, you would run the weaver like this: @@ -201,7 +201,7 @@ kilim.tools.Weaver -d ./build ./build

The Orc source distribution includes an ant kilim task in build.xml to do exactly this. -



[1] Originally Kilim used annotations to mark pausable methods. It turned +



[1] Originally Kilim used annotations to mark pausable methods. It turned out that javac would sometimes manipulate code in ways which violate the invariants regarding use of the annotation. Annotations also have the disadvantage that the invariants on their use are not checked automatically by diff --git a/Website/userguide/html/index.html b/Website/userguide/html/index.html index 6a2800657..f444d175b 100644 --- a/Website/userguide/html/index.html +++ b/Website/userguide/html/index.html @@ -1 +1 @@ -Orc User Guide

Orc User Guide


Table of Contents

Introduction
1. The Orc Programming Language
1.1. Introduction
1.2. Cor: A Functional Subset
1.2.1. Constants
1.2.2. Operators
1.2.3. Conditionals
1.2.4. Variables
1.2.5. Data Structures
1.2.6. Patterns
1.2.7. Functions
1.2.8. Comments
1.3. Orc: Orchestrating services
1.3.1. Communicating with external services
1.3.2. The concurrency combinators of Orc
1.3.3. Revisiting Cor expressions
1.3.4. Time
1.4. Advanced Features of Orc
1.4.1. Special call forms
1.4.2. Extensions to pattern matching
1.4.3. Datatypes
1.4.4. New forms of declarations
2. Programming Methodology
2.1. Syntactic and Stylistic Conventions
2.1.1. Parallel combinator
2.1.2. Sequential combinator
2.1.3. Pruning combinator
2.1.4. Declarations
2.2. Programming Idioms
2.2.1. Fork-join
2.2.2. Parallel Or
2.2.3. Finite Sequential Composition
2.2.4. Timeout
2.2.5. Priority
2.2.6. Metronome
2.2.7. Priority Poll
2.2.8. Lists
2.2.9. Streams
2.2.10. Arrays
2.2.11. Loops
2.2.12. Mutable Storage
2.2.13. Parallel Matching
2.2.14. Routing
2.2.15. Interruptible
2.3. Larger Examples
2.3.1. Dining Philosophers
2.3.2. Hygienic Dining Philosophers
2.3.3. Readers/Writers
3. Accessing and Creating External Services
3.1. Java Integration
3.1.1. Dot Operator
3.1.2. Direct Calls
3.1.3. Method Resolution
3.1.4. Orc Values in Java
3.1.5. Java Values in Orc
3.1.6. Cooperative Scheduling
A. Complete Syntax of Orc
B. Standard Library
B.1. Overview
B.2. Notation
B.3. Reference
B.3.1. core.inc: Fundamental sites and operators.
B.3.2. data.inc: General-purpose supplemental data structures.
B.3.3. idioms.inc: Higher-order Orc programming idioms.
B.3.4. list.inc: Operations on lists.
B.3.5. text.inc: Operations on strings.
B.3.6. time.inc: Real and logical time.
B.3.7. util.inc: Miscellaneous utility functions.
\ No newline at end of file +Orc User Guide

Orc User Guide


Table of Contents

Introduction
1. The Orc Programming Language
1.1. Introduction
1.2. Cor: A Functional Subset
1.2.1. Constants
1.2.2. Operators
1.2.3. Conditionals
1.2.4. Variables
1.2.5. Data Structures
1.2.6. Patterns
1.2.7. Functions
1.2.8. Comments
1.3. Orc: Orchestrating services
1.3.1. Communicating with external services
1.3.2. The concurrency combinators of Orc
1.3.3. Revisiting Cor expressions
1.3.4. Time
1.4. Advanced Features of Orc
1.4.1. Special call forms
1.4.2. Extensions to pattern matching
1.4.3. Datatypes
1.4.4. New forms of declarations
2. Programming Methodology
2.1. Syntactic and Stylistic Conventions
2.1.1. Parallel combinator
2.1.2. Sequential combinator
2.1.3. Pruning combinator
2.1.4. Declarations
2.2. Programming Idioms
2.2.1. Fork-join
2.2.2. Parallel Or
2.2.3. Finite Sequential Composition
2.2.4. Timeout
2.2.5. Priority
2.2.6. Metronome
2.2.7. Priority Poll
2.2.8. Lists
2.2.9. Streams
2.2.10. Arrays
2.2.11. Loops
2.2.12. Mutable Storage
2.2.13. Parallel Matching
2.2.14. Routing
2.2.15. Interruptible
2.3. Larger Examples
2.3.1. Dining Philosophers
2.3.2. Hygienic Dining Philosophers
2.3.3. Readers/Writers
3. Accessing and Creating External Services
3.1. Java Integration
3.1.1. Dot Operator
3.1.2. Direct Calls
3.1.3. Method Resolution
3.1.4. Orc Values in Java
3.1.5. Java Values in Orc
3.1.6. Cooperative Scheduling
A. Complete Syntax of Orc
B. Standard Library
B.1. Overview
B.2. Notation
B.3. Reference
B.3.1. core.inc: Fundamental sites and operators.
B.3.2. data.inc: General-purpose supplemental data structures.
B.3.3. idioms.inc: Higher-order Orc programming idioms.
B.3.4. list.inc: Operations on lists.
B.3.5. text.inc: Operations on strings.
B.3.6. time.inc: Real and logical time.
B.3.7. util.inc: Miscellaneous utility functions.
\ No newline at end of file diff --git a/Website/userguide/pdf/all.pdf b/Website/userguide/pdf/all.pdf index e4b1e743974d5606930974a8609278d45c35e28e..68056d1b036eda29bfb9250139e4ac6e85987e2b 100644 GIT binary patch delta 57158 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 Gr~7|2!kte5