In an earlier post I mentioned that one goal of the new introductory curriculum at Carnegie Mellon is to teach parallelism as the general case of computing, rather than an esoteric, specialized subject for advanced students. Many people are incredulous when I tell them this, because it immediately conjures in their mind the myriad complexities…
I recently diagnosed the root cause of a concurrency bug, CR6822370,
and thought it sufficiently interesting to share the details. (CR 6822370 actually represents a
cluster of bugs that are now thought to be related by a common underlying issue).
Briefly, we have a lost wakeup bug in the native C++ Parker::park() platform-specific
infrastructure code that implements java.util.concurrent.LockSupport.park().
The lost wakeup arises from a race that itself arises because of architectural
reordering that in turn occurs because of missing memory barrier instructions.
The lost wakeup may manifest as various 'hangs' or instances of progress failure.
Think writing a compiler is difficult? It is—unless you use Parrot, a complete compiler construction kit. With Parrot, crafting a new programming language is as easy as authoring a new website.
Program performance is always a concern, even in this era of high-performance hardware. This article, the first in a two-part series, guides you around the many pitfalls associated with benchmarking Java code. Part 2 covers the statistics of benchmarking and offers a framework for performing Java benchmarking. Because almost all new languages are virtual machine-based, the general principles the article describes have broad significance for the programming community at large.
A. Roy, S. Hand, и T. Harris. Proceedings of the 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, стр. 227--238. ACM, (09.03.2011)
H. Burchell, O. Larose, S. Kaleba, и S. Marr. Proceedings of the 20th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes, стр. 1--14. ACM, (октября 2023)
A. Georges, L. Eeckhout, и D. Buytaert. Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, стр. 367--384. ACM, (октября 2008)
E. Berger, S. Stern, и J. Pizzorno. 17th USENIX Symposium on Operating Systems Design and Implementation (OSDI 23), Boston, MA, USENIX Association, (июля 2023)
Y. Zheng, L. Bulej, и W. Binder. Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, стр. 433--450. ACM, (октября 2015)
T. Mytkowicz, A. Diwan, M. Hauswirth, и P. Sweeney. Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, стр. 187--197. ACM, (июня 2010)
G. Bracha, и D. Ungar. Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, ACM, (октября 2004)
T. Verwaest, C. Bruni, D. Gurtner, A. Lienhard, и O. Niestrasz. Proceedings of the ACM International Conference on Object-Oriented Programming Systems Languages and Applications, стр. 774--789. ACM, (октября 2010)
F. Niephaus, T. Felgentreff, и R. Hirschfeld. Proceedings of the 13th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, стр. 30--35. ACM, (июля 2018)
T. Proebsting. Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL \textquotesingle95, ACM Press, (1995)
T. Ugawa, S. Marr, и R. Jones. Proceedings of the 14th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages, стр. 11. ACM, (05.12.2022)
M. Yasugi, Y. Matsuda, и T. Ugawa. Proceedings of the 11th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering - PASTE \textquotesingle13, ACM, (2013)
I. Arapakis, X. Bai, и B. Cambazoglu. Proceedings of the 37th international ACM SIGIR conference on Research &$\mathsemicolon$ development in information retrieval, ACM, (июля 2014)
M. Eysholdt, и H. Behrens. Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion - SPLASH \textquotesingle10, ACM, (2010)
P. Klint, T. van der Storm, и J. Vinju. 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation, стр. 168--177. (сентября 2009)
L. Kats, и E. Visser. Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, том 45 из OOPSLA'10, стр. 444--463. ACM, (октября 2010)
M. Qunaibit, S. Brunthaler, Y. Na, S. Volckaert, и M. Franz. 32nd European Conference on Object-Oriented Programming (ECOOP 2018), том 109 из Leibniz International Proceedings in Informatics (LIPIcs), стр. 16:1--16:29. Dagstuhl, Germany, Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, (2018)
I. Piumarta, и F. Riccardi. Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation - PLDI \textquotesingle98, ACM Press, (1998)
S. Brunthaler. Electronic Notes in Theoretical Computer Science, 253 (5):
3-14(2009)Proceedings of the Fourth Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE 2009).
J. Dean, C. Chambers, и D. Grove. Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation - PLDI \textquotesingle95, ACM Press, (1995)
Z. Zhao, B. Wu, M. Zhou, Y. Ding, J. Sun, X. Shen, и Y. Wu. Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, стр. 745--762. Association for Computing Machinery, (2014)
G. Richards, A. Gal, B. Eich, и J. Vitek. Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, стр. 677–694. ACM, (2011)
A. Goens, A. Brauckmann, S. Ertel, C. Cummins, H. Leather, и J. Castrillon. Proceedings of the 3rd ACM SIGPLAN International Workshop on Machine Learning and Programming Languages, стр. 38–46. New York, NY, USA, Association for Computing Machinery, (2019)
G. Ottoni, и B. Liu. 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), стр. 340-350. Los Alamitos, CA, USA, IEEE Computer Society, (марта 2021)
T. Yuan, G. Li, J. Lu, C. Liu, L. Li, и J. Xue. 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), стр. 187-199. Los Alamitos, CA, USA, IEEE Computer Society, (марта 2021)