ACM Queue - Programming Languages http://queue.acm.org/listing.cfm?item_topic=Programming Languages&qc_type=topics_list&filter=Programming Languages&page_title=Programming Languages&order=desc Catch-23: The New C Standard Sets the World on Fire http://queue.acm.org/detail.cfm?id=3588242 Programming Languages 2023年3月29日 15:44:10 GMT Terence Kelly, Yekai Pan 3588242 The Elephant in the Room: It's time to get the POSIX elephant off our necks. http://queue.acm.org/detail.cfm?id=3570921 Programming Languages 2022年12月07日 10:33:44 GMT George V. Neville-Neil 3570921 ACID: My Personal: How could I miss such a simple thing? http://queue.acm.org/detail.cfm?id=3469647 Programming Languages 2021年6月03日 14:13:28 GMT Pat Helland 3469647 Optimizations in C++ Compilers: A practical journey http://queue.acm.org/detail.cfm?id=3372264 There's a tradeoff to be made in giving the compiler more information: it can make compilation slower. Technologies such as link time optimization can give you the best of both worlds. Optimizations in compilers continue to improve, and upcoming improvements in indirect calls and virtual function dispatch might soon lead to even faster polymorphism. Programming Languages 2019年11月12日 15:18:04 GMT Matt Godbolt 3372264 Garbage Collection as a Joint Venture: A collaborative approach to reclaiming memory in heterogeneous software systems http://queue.acm.org/detail.cfm?id=3325132 Cross-component tracing is a way to solve the problem of reference cycles across component boundaries. This problem appears as soon as components can form arbitrary object graphs with nontrivial ownership across API boundaries. An incremental version of CCT is implemented in V8 and Blink, enabling effective and efficient reclamation of memory in a safe manner. Programming Languages 2019年4月09日 15:33:59 GMT Ulan Degenbaev, Michael Lippautz, Hannes Payer 3325132 C Is Not a Low-level Language: Your computer is not a fast PDP-11. http://queue.acm.org/detail.cfm?id=3212479 In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn't been the case for decades. Programming Languages 2018年4月30日 15:18:18 GMT David Chisnall 3212479 Thou Shalt Not Depend on Me: A look at JavaScript libraries in the wild http://queue.acm.org/detail.cfm?id=3205288 Most websites use JavaScript libraries, and many of them are known to be vulnerable. Understanding the scope of the problem, and the many unexpected ways that libraries are included, are only the first steps toward improving the situation. The goal here is that the information included in this article will help inform better tooling, development practices, and educational efforts for the community. Programming Languages 2018年4月04日 12:55:55 GMT Tobias Lauinger, Abdelberi Chaabane, Christo Wilson 3205288 Uninitialized Reads: Understanding the proposed revisions to the C language http://queue.acm.org/detail.cfm?id=3041020 Most developers understand that reading uninitialized variables in C is a defect, but some do it anyway. What happens when you read uninitialized objects is unsettled in the current version of the C standard (C11).3 Various proposals have been made to resolve these issues in the planned C2X revision of the standard. Consequently, this is a good time to understand existing behaviors as well as proposed revisions to the standard to influence the evolution of the C language. Given that the behavior of uninitialized reads is unsettled in C11, prudence dictates eliminating uninitialized reads from your code. Programming Languages 2017年1月16日 17:07:44 GMT Robert C. Seacord 3041020 Why Logical Clocks are Easy: Sometimes all you need is the right language. http://queue.acm.org/detail.cfm?id=2917756 Any computing system can be described as executing sequences of actions, with an action being any relevant change in the state of the system. For example, reading a file to memory, modifying the contents of the file in memory, or writing the new contents to the file are relevant actions for a text editor. In a distributed system, actions execute in multiple locations; in this context, actions are often called events. Examples of events in distributed systems include sending or receiving messages, or changing some state in a node. Not all events are related, but some events can cause and influence how other, later events occur. For example, a reply to a received mail message is influenced by that message, and maybe by prior messages received. Programming Languages 2016年4月12日 20:37:21 GMT Carlos Baquero, Nuno Preguiça 2917756 Spicing Up Dart with Side Effects: A set of extensions to the Dart programming language, designed to support asynchrony and generator functions http://queue.acm.org/detail.cfm?id=2747873 The Dart programming language has recently incorporated a set of extensions designed to support asynchrony and generator functions. Because Dart is a language for Web programming, latency is an important concern. To avoid blocking, developers must make methods asynchronous when computing their results requires nontrivial time. Generator functions ease the task of computing iterable sequences. Programming Languages 2015年3月19日 15:43:01 GMT Erik Meijer, Kevin Millikin, Gilad Bracha 2747873

AltStyle によって変換されたページ (->オリジナル) /