Dangling pointers arise when an object is deleted or deallocated but a pointer still references that memory location, leading to undefined behavior, crashes, or security vulnerabilities. The article explains causes, consequences, and common prevention methods like setting pointers to NULL after deallocation.
#computer-science
30 items
The page describes and provides C source code for two simple hash functions for strings: the djb2 hash (a variant of Dan Bernstein's algorithm starting with hash 5381) and the sdbm hash (used in the sdbm database library). Both functions are presented as effective, general-purpose hashing algorithms for string keys.
Van Wijngaarden grammar is a two-level grammar formalism for defining programming language syntax. It uses metarules to generate production rules, enabling context-sensitive constraints like type checking. It was notably used to define ALGOL 68.
The paper introduces "Program-as-Weights," a novel programming paradigm for defining and computing fuzzy functions. It proposes representing programs as weighted structures that map inputs to outputs with degrees of membership, offering a new approach to handling uncertainty in computation.
A Hacker News discussion asks whether AI's growing ability to handle software implementation will shift computer science's focus toward deciding what to build rather than how to build it, and whether CS education and practice will adapt accordingly.
This paper examines Alfred Tarski's foundational contributions to computer science, particularly his work on model theory, decision procedures, and semantics, which influenced areas such as database theory, programming language semantics, and automated theorem proving.
A van Emde Boas tree is a data structure that implements an associative array with integer keys, supporting operations like insert, delete, and search in O(log log M) time, where M is the universe size. It is commonly used for priority queues and other operations requiring fast predecessor/successor queries.
The author is working on a book titled Functional Programming Strategies, as shared on Hacker News. The book focuses on functional programming concepts and approaches.
The paper introduces a core calculus for documents, formalizing document construction, transformation, and rendering operations based on combinators like doc, nest, line, group, and sep. It provides a denotational semantics grounded in an algebraic structure of documents and proves properties like confluence and normalization for the calculus.
The article discusses how local reasoning (examining individual components) can be used to verify global properties in complex systems, drawing on examples from programming languages and formal verification to illustrate the principles.
Vitalik Buterin introduces obfuscation as a powerful cryptographic primitive that could theoretically enable any computation to be hidden while still being executable, describing it as the "final boss" of cryptography. The post explains the concept, its potential applications, and the challenges involved in achieving practical obfuscation, noting significant theoretical progress.
The website "Counterexamples in Type Systems" collects examples of programming language type systems that are unsound, meaning they accept programs that crash or violate type safety at runtime.
Icon
1.0Icon is a high-level, general-purpose programming language introduced in the 1970s by Ralph Griswold. It features a unique goal-directed evaluation model and powerful string- and list-processing capabilities, notably using success and failure rather than Boolean logic for control flow. The language influenced later scripting languages like Python and JavaScript.
Alan Mathison Turing (1912–1954) was a pioneering British mathematician, logician, and computer scientist. He formalized the concepts of algorithm and computation with the Turing machine, played a key role in breaking Nazi codes during WWII, and laid foundational work for artificial intelligence. The IT History Society honors his transformative contributions to computing and technology.
A new tool called Core Rankings for DBLP Profiles provides rankings for computer science researchers based on their publication records in DBLP, helping assess academic impact and research output.
Dr. Alan Kay clarifies that object-oriented programming, which he coined, is fundamentally about messaging, not classes or objects themselves. He emphasizes that the core idea is encapsulated, communicating components that act like biological cells or networked computers, a vision often lost in modern interpretations like C++ and Java.
The article recommends ten foundational technical papers that every programmer should read, including works on Lisp evaluation, garbage collection, lazy evaluation, type systems, and distributed computing, arguing that studying classic research deepens one's understanding of programming beyond daily practice.
The article argues that traditional compiler education, which often focuses on parsing and code generation for toy languages, is outdated. It calls for a revolution in how compilers are taught, emphasizing modern approaches like incremental compilation, intermediate representations, and practical tooling used in real-world production compilers.
This book explores control structures in programming languages, covering topics such as sequencing, conditionals, loops, recursion, exceptions, continuations, and concurrency from a formal semantics perspective.
The Garbage Collection Handbook (2nd Edition) is a comprehensive reference on automatic memory management, covering algorithms, implementation techniques, and the art of garbage collection in modern computing systems.
The Periodic Table of Computing is a visual and interactive reference that organizes fundamental concepts in computer science, programming, and mathematics. It arranges topics into categories such as algorithms, data structures, and number systems, similar to how the chemical periodic table organizes elements.
John von Neumann's unfinished manuscript "The Computer and the Brain" explores the similarities and differences between digital computers and the human brain, comparing their logical and structural components. Published posthumously in 1958, the work remains influential in the fields of cybernetics, neuroscience, and early artificial intelligence.
This video presents LXM, a new family of pseudorandom number generators that are both splittable and fast, offering improved performance and statistical quality compared to existing splittable PRNGs.
This video provides an overview of Petri net theory, covering the basic concepts of places, transitions, tokens, and firing rules used to model concurrent, asynchronous, and distributed systems.
Formal verification is often misunderstood by software engineers as impractical. Modern tools have become more accessible for real-world use, catching subtle bugs that traditional testing misses to improve software reliability.
The personal library of computer scientist Edsger Dijkstra, containing books, papers, and correspondence spanning his career, is housed and archived in Leuven, Belgium. The collection reflects his influential work on algorithms, programming, and formal verification.
A crossword puzzle that tests knowledge of key ideas from notable computer science research papers.
This MSc thesis investigates the limitations of generalized synchronization in dynamical systems. It explores conditions under which generalized sync can be established, maintained, or broken, analyzing theoretical boundaries and practical constraints. The work contributes to understanding synchronization phenomena in complex networks.
The Periodic Table of Computing is a visual and interactive reference that organizes fundamental concepts in computer science into categories like hardware, software, algorithms, data, networking, and theory, similar to the chemical periodic table. Each element represents a key term or idea in computing.
This video visually demonstrates 15 different sorting algorithms, including bubble sort, selection sort, insertion sort, merge sort, and quick sort, all visualized with colored bars completing their sorting processes within a 6-minute runtime.