Skip to content

Commit 61cc44b

Browse files
author
admin
committed
style fixes, citation additions, fixed warnings
1 parent 06749e6 commit 61cc44b

12 files changed

+186
-35
lines changed

Chapters/chap1_introduction.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ \section{Process Algebra}
8484
As with functions in the $\lambda$-calculus, processes are the basic unit of a program in the \picalc.
8585
Any bit of functionality can be referred to as a process, with no specification of the granularity.
8686

87-
In 1978 C.A.R. Hoare introduced an early process algebra called CSP. Another major step came in the 1980's when Robin Milner introduced his Calculus of Communicating Systems (\!\inidx{CCS}).
87+
In 1978 C.A.R. Hoare introduced an early process algebra called CSP\cite{hoar78}. Another major step came in the 1980's when Robin Milner introduced his Calculus of Communicating Systems (\!\inidx{CCS})\cite{miln82}.
8888
The CCS modeled systems as groups of communicating processes interacting via shared channels, and drastically eased the difficulty of modeling indirectly invoked concurrent operations.
8989
However, the CCS still would have had trouble with our mobile phone network, because it did not provide a way for processes to gain and lose their communication channels.
9090

Chapters/chap2.tex

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
%!TEX root = /Users/admin/Desktop/Documents/Academic/MA 470 -THESIS/THESIS/thesis.tex
22

3-
\chapter{The \Picalc}\label{the picalc}
3+
\chapter{The Asynchronous \Picalc}\label{the picalc}
44
In this chapter, we will give the syntax of the \emph{asynchronous} \picalc\ and a discussion of its features.
55
We will loosely follow the style of a recent presentation given in \cite{henn07}.
66
Following this, we will introduce a notion of equivalence of terms in the language.
@@ -144,7 +144,7 @@ \section{Structural Equivalence}
144144
A natural question at this point is, given two \picalc\ terms, how can we determine if they are equivalent? Intuitively, we want them to be equivalent if they \emph{act} the same, but actually defining this equivalence relation can be a bit subtle.
145145
In exploring this issue, we will first look at identifier substitution, giving rules for when we can safely interchange identifiers without creating a different term.
146146
Following this, we will develop the notion of \emph{contexts} and then use it to build an equivalence relation among processes.\index{equivalence}
147-
\subsection{Identifier Substitution and $\alpha$-equivalence}\label{secSubst}
147+
\subsection{Identifier Substitution and $\alpha$-Equivalence}\label{secSubst}
148148
As a first step in our notion of equivalence, we might assert that the way identifiers are named shouldn't change how they act.
149149
However, this doesn't mean we can start interchanging symbols with carefree abandon.
150150
In a component process, some terms might be important for how the process acts in a larger system.
@@ -320,7 +320,7 @@ \section{Reduction Semantics}\label{secreducationsemantics}
320320
\begin{align}\label{exscopeextr_eqn2}
321321
\new{c}(\receive{d}{x}\send{x}{}\comp \send{d}{c} \comp \receive{c}{}\pstop)
322322
\end{align}
323-
Since (\ref{exscopeextr_eqn1}) is equivalent to (\ref{exscopeextr_eqn2}), we can apply (R-STRUCT) to deduce that if \label{exscopeextr_eqn2} reduces to some $Q$, then (\ref{exscopeextr_eqn1}) will.
323+
Since (\ref{exscopeextr_eqn1}) is equivalent to (\ref{exscopeextr_eqn2}), we can apply (R-STRUCT) to deduce that if \ref{exscopeextr_eqn2} reduces to some $Q$, then (\ref{exscopeextr_eqn1}) will.
324324
To find this $Q$, we can apply (R-COMM), which we can do inside of the restriction operator thanks to the reduction relation's contextuality, and apply a substitution to (\ref{exscopeextr_eqn2}), resulting in:
325325
\begin{align}
326326
\new{c}(\send{c}{} \comp \receive{c}{}\pstop)

Chapters/chap3.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ \section{The Synchronous \Picalc}\label{Synchronous picalc}
104104
\caption{\emph{Structural equivalence axioms in the synchronous \picalc}}\label{spicalcaxioms}
105105
\end{center}\end{insettable}
106106

107-
\section{Computation in the Synchronous \Picalc}
107+
\section{Computation in The Synchronous \Picalc}
108108
We are now ready to give a description of the computation behavior.
109109
As we might expect, it does not differ hugely from computation in the asynchronous calculus.
110110
In the reduction rules, the only changes are to make room for the summation operator.

Chapters/chap4.tex

+3-3
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ \section{Separation Results}\label{Separation Results}
7575
How can we reconcile the requirements of implementing a distributed system with Palamidessi's result, which indicates that there are important problems that cannot be solved without the full generality of the synchronous calculus?
7676
Is such a calculus even implementable on distributed systems?
7777
We will look below at two encodings that attempt to do so in the proceeding sections.
78-
Both encodings based on those given by by Uwe Nestmann in \ref{nest00}.
78+
Both encodings based on those given by by Uwe Nestmann in \cite{nestm00}.
7979

8080
\section{Encoding Choice}\label{failedencoding}
8181
Our first encoding limits the source language a bit: we do not allow processes in a given summation to be a mix of terms with receive prefixes and send prefixes.
@@ -147,7 +147,7 @@ \section{A `Bakery' Algorithm}
147147
Another route is to violate symmetry by comparing process ids.
148148
In this case, processes can make asymmetrical decisions by simply comparing their ids and deciding accordingly.
149149

150-
Better yet is a symmetric --- though still not uniform --- variation on Lamport's classic Bakery algorithm \todo{citation for lamport} by given in \cite{nest00}.
150+
Better yet is a symmetric --- though still not uniform --- variation on Lamport's classic Bakery algorithm \todo{citation for lamport} by given in \cite{nestm00}.
151151
Instead of statically encoding the asymmetry in process ids, Lamport's algorithm has processes dynamically obtain a number from a number server much as a patron might when entering the queue at a bakery counter.
152152
Because this asymmetry is dynamically determined, the real-world implications on fairness are acceptable but the processes can always elect a leader.
153153
Requiring a number server also breaks uniformity, since it requires a top-level number server process, but again in a real-world distributed system the cost of running a single number server to provide ids to processes is not serious.
@@ -187,4 +187,4 @@ \section{A `Bakery' Algorithm}
187187
\end{split}\end{equation}%note: it was really late when i did this. sorry....
188188
Because the order of the conditions is reversed, we've had to reverse the order of the else statements too. The case of successfully getting both the remote and local locks is the same as in (l,r). If the process only gets the remote lock it tells the remote sender to keep trying and continues to make the remote lock available. If on the other hand it fails to get the remote lock, it restarts the receiver and makes sure to tell the remote sender its failed.
189189

190-
Note that Nestmann's `implementation' of the synchronous \picalc\ does not pay attention to the efficiency questions that would be crucial in a real system. Perhaps its worst property is that in the $n=m$ case there is a possible divergence. If two terms (a sender and a receiver) in the same summation are communicating with one another, our $n=m$ case has them both retry. Thus, they might continue trying forever. Though this represents potentially divergent behavior, it is important to note that this is not the same as a live-lock: the processes will run forever without progressing, but only because they are both in a summation that is unable to progress anyway. However, it still represents a violation of reasonability since it is possible (though unlikely) that the two might continue communicating forever, never allowing for the computation step of sending the leader votes to the output channel $o$\footnote{Though we will not show it here, Nestmann does goes on in \ref[nest00] to give the same encoding, using a slightly enhanced target language, that does not have this divergence problem.}. Hence, while Nestmann's encoding violates both of Palamidessi's criteria to some extent, it nevertheless provides the full behavior of the synchronous in a way that could easily be implemented on a distributed system using only asynchronous primitives.
190+
Note that Nestmann's `implementation' of the synchronous \picalc\ does not pay attention to the efficiency questions that would be crucial in a real system. Perhaps its worst property is that in the $n=m$ case there is a possible divergence. If two terms (a sender and a receiver) in the same summation are communicating with one another, our $n=m$ case has them both retry. Thus, they might continue trying forever. Though this represents potentially divergent behavior, it is important to note that this is not the same as a live-lock: the processes will run forever without progressing, but only because they are both in a summation that is unable to progress anyway. However, it still represents a violation of reasonability since it is possible (though unlikely) that the two might continue communicating forever, never allowing for the computation step of sending the leader votes to the output channel $o$\footnote{Though we will not show it here, Nestmann does goes on in \cite{nestm00} to give the same encoding, using a slightly enhanced target language, that does not have this divergence problem.}. Hence, while Nestmann's encoding violates both of Palamidessi's criteria to some extent, it nevertheless provides the full behavior of the synchronous in a way that could easily be implemented on a distributed system using only asynchronous primitives.

Chapters/chap5_concl.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ \chapter{Conclusions}
1515
The creators of Pict, the Join-calculus, and other implementations based on the \picalc\ all decided to have their primitives support only asynchronous communication, while synchronous communication is made available overtop of this via a library or higher-level language.
1616
This these greatly simplifies implementation, resulting in a cleaner, more efficient core language.
1717
The summation operator in particular is difficult and expensive to fully simulate.
18-
In the implementation of Pict, for example, David Turner notes \cite{turner96} that ``the additional costs imposed by summation are unacceptable.''.
18+
In the implementation of Pict, for example, David Turner notes \cite{turn96} that ``the additional costs imposed by summation are unacceptable.''.
1919
Turner goes on to say that \emph{essential} uses of summation are infrequent in practice.
2020

2121
Speaking in an interview on developing the \picalc, Robin Milner notes \cite{miln03}:

Chapters/front_matter.tex

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
%!TEX root = /Users/will/Documents/Academic/MA 470 -THESIS/THESIS/thesis.tex
2-
\chapter*{Acknowledgments}
3-
I want to thank my hamsters, Boris Becker, and this bottle of Merlot.
4-
52
\chapter*{Preface}
63
\section*{A Word About The Format of This Thesis}
7-
One of the pedagogical aims of this thesis is to be clear and reader-assistive during its presentation. To that end, I have taken several liberties in the formatting of this thesis. Figures, equations, definitions, theorems and examples all share one numbering scheme in hopes that it will make them easier to locate. Where important \defmargin{definitions} appear, they are clad in italics and sit in a box on the margin to make them easier to find. When \refmargin{definitions} definitions or equations are referred to later in the text, an assistive link will appear in the margin to avoid index-fingering. In addition, the wired reader will find a searchable pdf version of the text at the following url:
4+
One of the pedagogical aims of this thesis is to be clear and reader-assistive during its presentation. To that end, I have taken several liberties in the formatting of this thesis. Figures, equations, definitions, theorems and examples all share one numbering scheme in hopes that it will make them easier to locate. Where important \defmargin{definitions} appear, they are clad in italics and sit in a box on the margin to make them easier to find. When\refmargin{definitions} definitions or equations are referred to later in the text, an assistive link will appear in the margin to avoid index-fingering. In addition, the wired reader will find a searchable pdf version of the text at the following url:
85
\begin{center}
96
\emph{http://wcrawford.org/thesis}
107
\end{center}
11-
All references in this pdf are hyper-textual (clickable).
8+
All references in this pdf are hyper-textual (clickable).
9+
10+
\section*{Acknowledgments}
11+
I want to thank my hamsters, Boris Becker, and this bottle of Merlot.

picommands.tex

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
\ensuremath{\text{rec }{#1}.}%
6767
}
6868
\newcommand{\defequals}{%
69-
\ensuremath{\overset{\tiny{def}}{=}}%
69+
\ensuremath{\overset{\mbox{\tiny{def}}}{=}}%
7070
}
7171
\newcommand{\encode}[1]{%
7272
\ensuremath{\llbracket{#1}\rrbracket}%

thesis.bbl

100755100644
+53-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
\begin{thebibliography}{Hen07}
1+
\begin{thebibliography}{SWP99}
22

33
\bibitem[Ber03]{miln03}
44
Martin Berger.
@@ -9,11 +9,49 @@ I.~Castellani, editor.
99
\newblock {\em Models of Distribution and Mobility: State of the Art}. MIKADO
1010
Global Computer Project, August 2002.
1111

12+
\bibitem[FG00]{fourn00}
13+
C.~Fournet and G.~Gonthier.
14+
\newblock The join calculus: a language for distributed mobile programming,
15+
2000.
16+
1217
\bibitem[Hen07]{henn07}
1318
Matthew Hennessy.
1419
\newblock {\em A Distributed Pi-Calculus}.
1520
\newblock Cambridge University Press, 2007.
1621

22+
\bibitem[Hoa78]{hoar78}
23+
C.~A.~R. Hoare.
24+
\newblock Communicating sequential processes.
25+
\newblock {\em Commun. ACM}, 21(8):666--677, 1978.
26+
27+
\bibitem[HP00]{heres00}
28+
Oltea~Mihaela Herescu and Catuscia Palamidessi.
29+
\newblock Probabilistic asynchronous $\pi$-calculus.
30+
\newblock {\em Lecture Notes in Computer Science}, 1784:146--??, 2000.
31+
32+
\bibitem[HT92]{hond92}
33+
Kohei Honda and Mario Tokoro.
34+
\newblock On asynchronous communication semantics.
35+
\newblock In Mario Tokoro, Oscar Nierstrasz, and Peter Wegner, editors, {\em
36+
Proceedings of the {ECOOP}'91 Workshop on Object-Based Concurrent Computing},
37+
volume 612, pages 21--51. Springer-Verlag, 1992.
38+
39+
\bibitem[Lam74]{lamp74}
40+
Leslie Lamport.
41+
\newblock A new solution of dijkstra's concurrent programming problem.
42+
\newblock {\em Commun. ACM}, 17(8):453--455, 1974.
43+
44+
\bibitem[Lum99]{lump99}
45+
Markus Lumpe.
46+
\newblock {\em A π-calculus based approach to software composition}.
47+
\newblock PhD thesis, University of Bern, , Institute of Computer Science and
48+
Applied Mathematics, 1999.
49+
50+
\bibitem[Mil82]{miln82}
51+
R.~Milner.
52+
\newblock {\em A Calculus of Communicating Systems}.
53+
\newblock Springer-Verlag New York, Inc., Secaucus, NJ, USA, 1982.
54+
1755
\bibitem[Mil92]{miln92}
1856
Robin Milner.
1957
\newblock Functions as processes.
@@ -46,9 +84,22 @@ Davide Sangiorgi and David Walker.
4684
\newblock {\em The $\pi$-calculus:A Theory of Mobile Processes}.
4785
\newblock Cambridge University Press, 2001.
4886

49-
\bibitem[Tur96]{turner96}
87+
\bibitem[SWP99]{sewell99}
88+
Peter Sewell, Pawe{\l}~T. Wojciechowski, and Benjamin~C. Pierce.
89+
\newblock Location-independent communication for mobile agents: {A} two-level
90+
architecture.
91+
\newblock {\em Lecture Notes in Computer Science}, 1686:1+, 1999.
92+
93+
\bibitem[Tur96]{turn96}
5094
David~N. Turner.
5195
\newblock {\em The Polymorphic Pi-Calculus: Theory and Implementation}.
5296
\newblock PhD thesis, 1996.
5397

98+
\bibitem[WS99]{wojci99}
99+
Pawel Wojciechowski and Peter Sewell.
100+
\newblock Nomadic pict: Language and infrastructure design for mobile agents.
101+
\newblock In {\em First International Symposium on Agent Systems and
102+
Applications ({ASA}'99)/Third International Symposium on Mobile Agents
103+
({MA}'99)}, Palm Springs, CA, USA, 1999.
104+
54105
\end{thebibliography}

0 commit comments

Comments
 (0)