far will facilitate reconfiguration of systems when
hardware environment changes.
9 CONCLUSIONS AND FUTURE
WORK
It has been shown in this paper that a distributed en-
vironment may be more suitable for a system where
processes rarely communicate. Frequent communica-
tions between the participating nodes in a distributed
system may degrade the overall performance of the
entire system. Clear separation of semantics and de-
ployment of a program helps to adapt the program to
different architectures. In practice, this may help to
preserve software investment. As we have seen the
feasibility of our approach, we hope implement other
aspects of the project and conduct further tests on dif-
ferent architectures, including the multi-core architec-
tures.
ACKNOWLEDGEMENTS
We are grateful to the faculty of Engineering and
Computer Science, Concordia University for support-
ing in part the work described in this paper.
REFERENCES
Andrews, R. G. (2000). Foundations of Multithreaded, Par-
allel, and Distributed Programming. Addison-Wesley.
Armstrong, J., Virding, R., Wikstrom, C., and Williams, M.
(2004). Concurrent Programming in ERLANG. Pren-
tice Hall, second edition.
Bagrodia, R. (1989). Synchronization of Asynchronous
Processes in CSP. ACM Transaction on Programming
Languages and Systems, 11(4):585–597.
Bal, H. E., Steiner, J. G., and Tanenbaum, A. S. (1989).
Programming Languages for Distributed Computing
Systems. ACM Computing Surveys, 21(3):261–322.
Barnes, F. and Welch, P. (2003). Prioritized Dynamic Com-
municating and Mobile Processes. IEE Proceedings -
Software, 150(2):121–136.
Barnes, F. R. and Welch, P. H. (2004). Communicating mo-
bile processes. In East, I., Martin, J., Welch, P., Duce,
D., and Green, M., editors, Communicating Process
Architectures, pages 201–218. IOS Press.
Bernstein, A. J. (1980). Output Guards and Non-
determinisn in CSP. ACM Transaction on Program-
ming Languages and Systems, 2(2):234–238.
Brinch Hansen, P. (1987). Joyce - A Programming Lan-
guage for Distributed Systems. Software Practice &
Experience, 17(1):29–50.
Buckley, G. N. and Silberschatz, A. (1983). An Effective
Implememtation for The Generalized Input-Output
Construct of CSP. ACM Transaction on Programming
Languages and Systems, 5(2):223–235.
Dijkstra, E. W. (1968). Cooperating Sequential Pro-
cesses. In Genuys, F., editor, Programming Lan-
guages: NATO Advanced Study Institute, pages 43–
112. Academic Press.
Grogono, P., Lameed, N., and Shearing, B. (2007). Modu-
larity + Concurrency = Manageability. Technical Re-
port TR E–04, Department of Computer Science and
Software Engineering, Concordia University.
Harris, T. and Fraser, K. (2003). Language Support for
Lightweight Transactions. ACM SIGPLAN Notices,
38(11):388–402.
Hewitt, C. (1976). Viewing Control Structures as Pattern of
Passing Messages. Technical Report AIM-410, De-
partment of Artificial Intelligence, MIT.
Hewitt, C. and Baker, H. (1977). Actors and Continuous
Functionals. Technical Report MIT/LCS/TR-194, De-
partment of Artificial Intelligence, MIT.
Hoare, C. A. R. (1978). Communication Sequential Pro-
cesses. Communications of the ACM, 21(8):666–677.
Hoare, C. A. R. (2004). Communicating Sequential Pro-
cesses. Prentice Hall International, third edition.
Lee, E. A. (2006). The Problem With Threads. IEEE Com-
puter, 39(5):33–42.
Milner, R. (1980). A Calculus of Communicating Systems.
Springer.
Olukotun, K. and Hammond, L. (2005). The Future of Mi-
croprocessors. ACM Queue, 3(7):26–34.
Roy, P. V. (2004). General Overview of Mozart/Oz. Slides
for a talk given at the Second International Mozart/Oz
Conference (MOZ 2004).
Salzer, J. H. (1965). M. I. T. Project MAC. Technical
Report MAC-TR-16, Department of Artificial Intel-
ligence, MIT.
Schneider, F. B. (1982). Synchronisation in Distributed Pro-
grams. ACMTransaction on Programming Languages
and Systems, 4(2):125–148.
Silberschatz, A. (1979). Communication and Synchroniza-
tion in Distributed Programs. IEEE Transaction on
Software Engineering, 5(6):542–546.
Sutter, H. (2005a). The Free Lunch Is Over - A
Fundamental Turn Toward Concurrency in Soft-
ware. Dr. Dobb’s Journal, 30(3). Available on-
line at http://www.gotw.ca/publications/concurrency-
ddj.htm.
Sutter, H. (2005b). The Trouble With Locks. Dr. Dobb’s
Journal.
Varela, C. and Agha, G. (2001). Programming Dynamically
Reconfigurable Open Systems with SALSA. ACM
SIG PLAN Notices, 36(12):20–34.
ICSOFT 2008 - International Conference on Software and Data Technologies
70