Chords are a concurrency mechanism of object-oriented languages inspired by the join of the Join Calculus. They represent the combination of object-based program structuring and the chemical metaphor for concurrency. Several modern languages feature chords, among which are Polyphonic C-sharp and C-omega. Their proponents say that their use will raise the level of abstraction concurrent programs are written in, hence increasing the likelihood of producing correct programs.
We present SCHOOL, the Small Chorded Object-Oriented Language, a featherweight model which aims to capture the essence of the concurrent behaviours of chords. Our model serves as a generalisation of chorded behaviours found in existing experimental languages such as Polyphonic C-sharp. Furthermore, we study the interaction of chords with fields by extending SCHOOL to include fields, resulting in fSCHOOL. Fields are orthogonal to chords in terms of concurrent behaviours. We show that adding fields to SCHOOL does not change its expressiveness by means of an encoding between the two languages.
We observe that most implementations of concurrency in programming languages assume fair scheduling. Two primary notions of fairness are weak and strong, and hence studying the way these two notions apply to chorded languages serves as a basis for scheduler specification. We therefore define weak and strong fairness for SCHOOL which allows us to classify executions as admissible or inadmissible under the two notions of fairness. We develop two abstract schedulers in the form of high-level selection rules imposed on the underlying language, which allow us to admit exactly the weakly- and strongly-fair executions. We also present worst-case calculations for the delay of individual processes.
Supervised by Prof. Susan Eisenbach and Prof. Sophia Drossopoulou; examined by Dr. Maribel Fernandez and Dr. Sebastian Hunt.
pubs.doc.ic.ac.uk: built & maintained by Ashok Argent-Katwala.