Nanotechnology: opportunities and challenges

machines and process calculi The first model to capture the complex interplay between non-determinism and concurrency in distributed systems was Petri Nets [Pet], these nets were designed information flow in natural as well as man-made systems. In the early eighties, algebraic process calculi [BHR][Mil] were designed to model interactive systems hierarchically, and to model their behaviour abstractly. The Chemical Abstract Machine [BeB] captured the spatial structure of systems. The pi calculus [MPW] and mobile ambient calculus [CaG] made a further step in modelling systems that can reconfigure both their spatial arrangement and their connectivity. These models have influenced the design of programming and specification languages, for example LOTOS, occam and Handel-C, and Ada. They have been developed to model systems stochastically, and to deal with hybrid discrete/continuous systems. Recently their theory has been seen to extend to graphical models that are a priori suitable for populations of agents such as nanites.