Abstract
We present a high-level ASM model of C# threads and the .NET memory model. We focus on purely managed, fully portable threading features of C#. The sequential model interleaves the computation steps of the currently running threads and is suitable for uniprocessors. The parallel model addresses problems of true concurrency on multiprocessor systems. The models provide a sound basis for the development of multi-threaded applications in C#. The thread and memory models complete the abstract operational semantics of C# in [2].
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Awhad, V., Wallace, C.: A unified formal specification and analysis of the new Java memory models. In: ASM 2003. LNCS, vol. 2589, pp. 166–185. Springer, Heidelberg (2003)
Börger, E., Fruja, G., Gervasi, V., Stärk, R.F.: A high-level modular definition of the semantics of C#. Theoretical Computer Science (2004)
Börger, E., Stärk, R.F.: Abstract State Machines—A Method for High-Level System Design and Analysis. Springer, Heidelberg (2003)
C# Language Specification. Standard ECMA–334 (2001), Web pages at http://www.ecma-international.org/
Common Language Infrastructure (CLI). Standard ECMA–335 (2001), Web pages at http://www.ecma-international.org/
Foundations of Software Engineering Group, Microsoft Research. AsmL (2001), Web pages at http://research.microsoft.com/foundations/AsmL/
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java(tm) Language Specification., 2nd edn. Addison Wesley, Reading (2000)
Gurevich, Y.: Evolving algebras 1993: Lipari guide. In: Börger, E. (ed.) Specification and Validation Methods, pp. 9–36. Oxford University Press, Oxford (1993)
Hejlsberg, A., Wiltamuth, S., Golde, P.: C# Language Specification. Addison-Wesley, Reading (2003)
Java(TM) Memory Model and Thread Specification Revision, Web pages at http://www.jcp.org/en/jsr/detail?id=133
Microsoft.NET Framework 1.1 Software Development Kit, Download from http://msdn.microsoft.com/netframework/howtoget/
The Mono project, Web pages, at http://www.go-mono.com/
Morrison, V.: The DOTNET Memory Model (2002), dotnet@discuss.develop.com mailing list
Richter, J.: Safe thread synchronization. MSDN Magazine,NET column (January 2003)
Robison, G.: Memory consistency &.NET. Dr. Dobb’s Journal (April 2003)
Rotor – Shared Source Common Language Infrastructure (SSCLI), Web pages at http://msdn.microsoft.com/net/sscli/ and http://www.sscli.net/
Stärk, R.F., Schmid, J., Börger, E.: ava and the Java Virtual Machine— Definition, Verification, Validation. Springer, Heidelberg (2001)
Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly, Sebastopol (2003)
von Praun, C., Gross, T.: Static conflict analysis for multi-threaded objectoriented programs. In: PLDI 2003, pp. 115–128 (June 2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stärk, R.F., Börger, E. (2004). An ASM Specification of C# Threads and the .NET Memory Model. In: Zimmermann, W., Thalheim, B. (eds) Abstract State Machines 2004. Advances in Theory and Practice. ASM 2004. Lecture Notes in Computer Science, vol 3052. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24773-9_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-24773-9_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22094-7
Online ISBN: 978-3-540-24773-9
eBook Packages: Springer Book Archive